Source: https://guthlabs.ai/docs/instruments/serial-dilution-calculator/implementation/

instrument implementation / implementation-contract

# Serial Dilution Calculator implementation

A source-bound implementation contract for Serial Dilution Calculator; deployment and executable qualification remain separate.

Status: **VERIFIED_CLEAN**Lifecycle: **implementation-contract**

## Binding contract

This record describes what an executable surface must bind and validate. It does not claim that a public calculator, package, or production route is deployed.

**Record owner**: Guth Instruments

**Lifecycle**: verified-clean

**Evidence ID**: t4-074

**Effect**: Computation or source lookup only

## Input and validation requirements

- Division by zero occurs if stock concentration C1 is zero in V1=(C2V2)/C1.

- DF=0 makes C0/DF^n undefined for n>0; DF must be positive, and an actual dilution generally requires DF>1.

- DF=1 produces no dilution and should be rejected or clearly labeled as a no-op.

- Negative concentrations, volumes, dilution factors, or non-integer negative step counts must be rejected.

- A target concentration greater than the starting concentration yields V1>V2 and is not a dilution; concentration-increasing operations require a different protocol.

- Rounding transfer volumes can change the achieved concentration, especially for small volumes or large dilution factors.

- The instrument is a planning aid only; sterile technique, material compatibility, mixing, carryover, evaporation, and protocol-specific minimum pipetting volumes are not represented.

## Required corrections

No binding erratum is attached to this unique-name record. Implementers must still preserve the declared units, domain, and failure behavior.

## Inspectable interface fixture

The sample below is evidence for interface and validation tests, not a production implementation.

````
{
  "inputs": {
    "stock_concentration": "50 mg/mL",
    "target_concentration": "2 mg/mL",
    "final_volume": "25 mL"
  },
  "expected_outputs": {
    "stock_volume": "1 mL",
    "diluent_volume": "24 mL",
    "final_concentration": "2 mg/mL"
  },
  "working": "C1V1=C2V2. V1=(C2×V2)/C1=(2 mg/mL×25 mL)/(50 mg/mL)=50/50 mL=1 mL. V_diluent=V2−V1=25 mL−1 mL=24 mL. Check: 50 mg/mL×1 mL=50 mg; 2 mg/mL×25 mL=50 mg."
}
````

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/serial-dilution-calculator/>)[02**Mechanism**](<https://guthlabs.ai/docs/instruments/serial-dilution-calculator/mechanism/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/serial-dilution-calculator/qualification/>)

## Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

- `VERIFIED_LEDGER.json`

- `evidence-tranche4/tranche4-results.json`
