{
 "about": {
  "method": "dose-per-cell-arithmetic@1.0.0",
  "recordedOn": "2026-10-18",
  "script": "pipeline/lab-calculators/dose_plan_reference_3.py",
  "scriptSha256": "5e3f1a1b23a0f76bcd51b704bdd62d4abbf6d9f0234c3814cca6f40994c39697",
  "source": "Contract 10; CSO memo of 17 October 2026, Section 3 (mandatory cases 1-8)",
  "tolerances": {
   "values": "within 1e-9 relative",
   "refusals": "exact"
  },
  "environment": {
   "image": "local",
   "python": "3.9.6",
   "platform": "macOS-27.2-arm64-arm-64bit"
  },
  "crossCheck": {
   "tool": "fractions",
   "version": "stdlib",
   "ran": true,
   "result": "Exact fraction identities and hand anchors asserted"
  }
 },
 "oracle": {
  "name": "Python fractions and decimal",
  "version": "3.9.6"
 },
 "count": 35,
 "recordedOn": "2026-10-18",
 "cases": [
  {
   "name": "case-01a-identity-anchor-ml",
   "about": "Identity anchor: 10^6 viable cells x 3 TU/cell, titre 10^8 TU/mL -> 3e6 TU, 3e-5 L (30 µL)",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "TU",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "ok",
    "rows": [
     {
      "key": "requiredQuantity",
      "value": 3000000.0,
      "fraction": "3000000",
      "unit": "TU"
     },
     {
      "key": "requiredStockVolume",
      "value": 3e-05,
      "fraction": "3/100000",
      "unit": "L"
     },
     {
      "key": "enteredDose",
      "value": 3.0,
      "fraction": "3",
      "unit": "TU per viable cell"
     },
     {
      "key": "allocationStatus",
      "value": "not-assessed",
      "unit": ""
     }
    ],
    "qualifications": [
     "planned"
    ]
   }
  },
  {
   "name": "case-01b-identity-anchor-ul",
   "about": "Identity anchor: titre 10^5 TU/µL gives identical 3e-5 L (30 µL)",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "TU",
    "titreValue": 100000.0,
    "titreUnit": "µL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "ok",
    "rows": [
     {
      "key": "requiredQuantity",
      "value": 3000000.0,
      "fraction": "3000000",
      "unit": "TU"
     },
     {
      "key": "requiredStockVolume",
      "value": 3e-05,
      "fraction": "3/100000",
      "unit": "L"
     },
     {
      "key": "enteredDose",
      "value": 3.0,
      "fraction": "3",
      "unit": "TU per viable cell"
     },
     {
      "key": "allocationStatus",
      "value": "not-assessed",
      "unit": ""
     }
    ],
    "qualifications": [
     "planned"
    ]
   }
  },
  {
   "name": "case-01c-identity-anchor-l",
   "about": "Identity anchor: titre 10^11 TU/L gives identical 3e-5 L (30 µL)",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "TU",
    "titreValue": 100000000000.0,
    "titreUnit": "L",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "ok",
    "rows": [
     {
      "key": "requiredQuantity",
      "value": 3000000.0,
      "fraction": "3000000",
      "unit": "TU"
     },
     {
      "key": "requiredStockVolume",
      "value": 3e-05,
      "fraction": "3/100000",
      "unit": "L"
     },
     {
      "key": "enteredDose",
      "value": 3.0,
      "fraction": "3",
      "unit": "TU per viable cell"
     },
     {
      "key": "allocationStatus",
      "value": "not-assessed",
      "unit": ""
     }
    ],
    "qualifications": [
     "planned"
    ]
   }
  },
  {
   "name": "case-02-probe-class-titre-per-ul",
   "about": "Review probe class: titre 10^8 TU/µL -> 3e-8 L (0.03 µL)",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "TU",
    "titreValue": 100000000.0,
    "titreUnit": "µL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "ok",
    "rows": [
     {
      "key": "requiredQuantity",
      "value": 3000000.0,
      "fraction": "3000000",
      "unit": "TU"
     },
     {
      "key": "requiredStockVolume",
      "value": 3e-08,
      "fraction": "3/100000000",
      "unit": "L"
     },
     {
      "key": "enteredDose",
      "value": 3.0,
      "fraction": "3",
      "unit": "TU per viable cell"
     },
     {
      "key": "allocationStatus",
      "value": "not-assessed",
      "unit": ""
     }
    ],
    "qualifications": [
     "planned"
    ]
   }
  },
  {
   "name": "case-03a-basis-pfu",
   "about": "Self-consistent PFU basis: 5e5 cells x 2 PFU/cell, titre 1e7 PFU/mL -> 1e6 PFU, 1e-4 L",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "PFU",
    "cellCount": 500000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "PFU",
    "titreValue": 10000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "PFU",
    "doseValue": 2.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "ok",
    "rows": [
     {
      "key": "requiredQuantity",
      "value": 1000000.0,
      "fraction": "1000000",
      "unit": "PFU"
     },
     {
      "key": "requiredStockVolume",
      "value": 0.0001,
      "fraction": "1/10000",
      "unit": "L"
     },
     {
      "key": "enteredDose",
      "value": 2.0,
      "fraction": "2",
      "unit": "PFU per viable cell"
     },
     {
      "key": "allocationStatus",
      "value": "not-assessed",
      "unit": ""
     }
    ],
    "qualifications": [
     "planned"
    ]
   }
  },
  {
   "name": "case-03b-basis-ifu",
   "about": "Self-consistent IFU basis: 2e5 cells x 5 IFU/cell, titre 5e6 IFU/mL -> 1e6 IFU, 2e-4 L",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "IFU",
    "cellCount": 200000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "IFU",
    "titreValue": 5000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "IFU",
    "doseValue": 5.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "ok",
    "rows": [
     {
      "key": "requiredQuantity",
      "value": 1000000.0,
      "fraction": "1000000",
      "unit": "IFU"
     },
     {
      "key": "requiredStockVolume",
      "value": 0.0002,
      "fraction": "1/5000",
      "unit": "L"
     },
     {
      "key": "enteredDose",
      "value": 5.0,
      "fraction": "5",
      "unit": "IFU per viable cell"
     },
     {
      "key": "allocationStatus",
      "value": "not-assessed",
      "unit": ""
     }
    ],
    "qualifications": [
     "planned"
    ]
   }
  },
  {
   "name": "case-03c-basis-vg",
   "about": "Self-consistent vg basis: 1e6 cells x 100 vg/cell, titre 1e10 vg/mL -> 1e8 vg, 1e-5 L",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "vg",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "vg",
    "titreValue": 10000000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "vg",
    "doseValue": 100.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "ok",
    "rows": [
     {
      "key": "requiredQuantity",
      "value": 100000000.0,
      "fraction": "100000000",
      "unit": "vg"
     },
     {
      "key": "requiredStockVolume",
      "value": 1e-05,
      "fraction": "1/100000",
      "unit": "L"
     },
     {
      "key": "enteredDose",
      "value": 100.0,
      "fraction": "100",
      "unit": "vg per viable cell"
     },
     {
      "key": "allocationStatus",
      "value": "not-assessed",
      "unit": ""
     }
    ],
    "qualifications": [
     "planned"
    ]
   }
  },
  {
   "name": "case-03d-basis-particles",
   "about": "Self-consistent particles basis: 1e6 cells x 50 particles/cell, titre 1e9 particles/mL -> 5e7 particles, 5e-5 L",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "particles",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "particles",
    "titreValue": 1000000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "particles",
    "doseValue": 50.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "ok",
    "rows": [
     {
      "key": "requiredQuantity",
      "value": 50000000.0,
      "fraction": "50000000",
      "unit": "particles"
     },
     {
      "key": "requiredStockVolume",
      "value": 5e-05,
      "fraction": "1/20000",
      "unit": "L"
     },
     {
      "key": "enteredDose",
      "value": 50.0,
      "fraction": "50",
      "unit": "particles per viable cell"
     },
     {
      "key": "allocationStatus",
      "value": "not-assessed",
      "unit": ""
     }
    ],
    "qualifications": [
     "planned"
    ]
   }
  },
  {
   "name": "case-03f-01-cross-basis-tu-pfu",
   "about": "Cross-basis mismatch: main/dose TU vs titre PFU -> dose-basis-mismatch",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "PFU",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-basis-mismatch"
   }
  },
  {
   "name": "case-03f-02-cross-basis-tu-ifu",
   "about": "Cross-basis mismatch: main/dose TU vs titre IFU -> dose-basis-mismatch",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "IFU",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-basis-mismatch"
   }
  },
  {
   "name": "case-03f-03-cross-basis-tu-vg",
   "about": "Cross-basis mismatch: main/dose TU vs titre vg -> dose-basis-mismatch",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "vg",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-basis-mismatch"
   }
  },
  {
   "name": "case-03f-04-cross-basis-tu-particles",
   "about": "Cross-basis mismatch: main/dose TU vs titre particles -> dose-basis-mismatch",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "particles",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-basis-mismatch"
   }
  },
  {
   "name": "case-03f-05-cross-basis-pfu-ifu",
   "about": "Cross-basis mismatch: main/dose PFU vs titre IFU -> dose-basis-mismatch",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "PFU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "IFU",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "PFU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-basis-mismatch"
   }
  },
  {
   "name": "case-03f-06-cross-basis-pfu-vg",
   "about": "Cross-basis mismatch: main/dose PFU vs titre vg -> dose-basis-mismatch",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "PFU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "vg",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "PFU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-basis-mismatch"
   }
  },
  {
   "name": "case-03f-07-cross-basis-pfu-particles",
   "about": "Cross-basis mismatch: main/dose PFU vs titre particles -> dose-basis-mismatch",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "PFU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "particles",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "PFU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-basis-mismatch"
   }
  },
  {
   "name": "case-03f-08-cross-basis-ifu-vg",
   "about": "Cross-basis mismatch: main/dose IFU vs titre vg -> dose-basis-mismatch",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "IFU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "vg",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "IFU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-basis-mismatch"
   }
  },
  {
   "name": "case-03f-09-cross-basis-ifu-particles",
   "about": "Cross-basis mismatch: main/dose IFU vs titre particles -> dose-basis-mismatch",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "IFU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "particles",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "IFU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-basis-mismatch"
   }
  },
  {
   "name": "case-03f-10-cross-basis-vg-particles",
   "about": "Cross-basis mismatch: main/dose vg vs titre particles -> dose-basis-mismatch",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "vg",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "particles",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "vg",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-basis-mismatch"
   }
  },
  {
   "name": "case-03g-cross-denominator-mismatch",
   "about": "Cell denominator total vs dose denominator viable -> dose-basis-mismatch",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1000000.0,
    "cellDenominator": "total",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "TU",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-basis-mismatch"
   }
  },
  {
   "name": "case-04a-zero-dose-calculated",
   "about": "Zero dose -> quantity 0, volume 0, qualification explicit-zero-dose",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "TU",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 0.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "ok",
    "rows": [
     {
      "key": "requiredQuantity",
      "value": 0.0,
      "fraction": "0",
      "unit": "TU"
     },
     {
      "key": "requiredStockVolume",
      "value": 0.0,
      "fraction": "0",
      "unit": "L"
     },
     {
      "key": "enteredDose",
      "value": 0.0,
      "fraction": "0",
      "unit": "TU per viable cell"
     },
     {
      "key": "allocationStatus",
      "value": "not-assessed",
      "unit": ""
     }
    ],
    "qualifications": [
     "planned",
     "explicit-zero-dose"
    ]
   }
  },
  {
   "name": "case-04b-missing-dose-refusal",
   "about": "Missing dose (null) -> dose-missing-dose",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "TU",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": null,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-missing-dose"
   }
  },
  {
   "name": "case-04c-negative-dose-refusal",
   "about": "Negative dose -2 -> dose-negative-dose",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "TU",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": -2.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-negative-dose"
   }
  },
  {
   "name": "case-05a-missing-titre-refusal",
   "about": "Titre null -> dose-missing-titre",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "TU",
    "titreValue": null,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-missing-titre"
   }
  },
  {
   "name": "case-05b-zero-titre-refusal",
   "about": "Titre 0 -> dose-non-positive-titre",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "TU",
    "titreValue": 0.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-non-positive-titre"
   }
  },
  {
   "name": "case-05c-titre-unit-nl-refusal",
   "about": "Titre unit nL (excluded) -> dose-titre-unit",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "TU",
    "titreValue": 100000000.0,
    "titreUnit": "nL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-titre-unit"
   }
  },
  {
   "name": "case-05d-titre-source-blank-refusal",
   "about": "Titre source blank -> dose-titre-source",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "TU",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-titre-source"
   }
  },
  {
   "name": "case-05e-titre-date-blank-refusal",
   "about": "Titre date blank -> dose-titre-source",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "TU",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "",
    "doseBasis": "TU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-titre-source"
   }
  },
  {
   "name": "case-05f-numeric-range-refusal",
   "about": "Extreme finite inputs (cell count 1e300, dose 1e20) produce overflow -> numeric-range",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1e+300,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "TU",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 1e+20,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "numeric-range"
   }
  },
  {
   "name": "case-06a-missing-cells-refusal",
   "about": "Cell count null -> dose-missing-cells",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": null,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "TU",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-missing-cells"
   }
  },
  {
   "name": "case-06b-zero-cells-refusal",
   "about": "Cell count 0 -> dose-non-positive-cells",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 0.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "TU",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-non-positive-cells"
   }
  },
  {
   "name": "case-06c-fractional-estimated-cells-accepted",
   "about": "Fractional estimated cells 2.5e5 accepted with explanation",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 250000.0,
    "cellDenominator": "viable",
    "cellStatus": "estimated",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "Estimated from doubling time of 24h after plating 1.25e5 cells 24h prior",
    "titreBasis": "TU",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "ok",
    "rows": [
     {
      "key": "requiredQuantity",
      "value": 750000.0,
      "fraction": "750000",
      "unit": "TU"
     },
     {
      "key": "requiredStockVolume",
      "value": 7.5e-06,
      "fraction": "3/400000",
      "unit": "L"
     },
     {
      "key": "enteredDose",
      "value": 3.0,
      "fraction": "3",
      "unit": "TU per viable cell"
     },
     {
      "key": "allocationStatus",
      "value": "not-assessed",
      "unit": ""
     }
    ],
    "qualifications": [
     "planned",
     "estimated-cell-count"
    ]
   }
  },
  {
   "name": "case-06d-estimated-cells-missing-explanation-refusal",
   "about": "Estimated cells without explanation -> dose-estimate-explanation",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "estimated",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "TU",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-estimate-explanation"
   }
  },
  {
   "name": "case-06e-missing-target-time-refusal",
   "about": "Target time blank -> dose-missing-target-time",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "",
    "estimateExplanation": "",
    "titreBasis": "TU",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "refused",
    "problem": "dose-missing-target-time"
   }
  },
  {
   "name": "case-07a-total-cells-denominator",
   "about": "Total cells denominator preserved in output unit 'TU per total cell'",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1000000.0,
    "cellDenominator": "total",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "TU",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 3.0,
    "doseDenominator": "total",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "ok",
    "rows": [
     {
      "key": "requiredQuantity",
      "value": 3000000.0,
      "fraction": "3000000",
      "unit": "TU"
     },
     {
      "key": "requiredStockVolume",
      "value": 3e-05,
      "fraction": "3/100000",
      "unit": "L"
     },
     {
      "key": "enteredDose",
      "value": 3.0,
      "fraction": "3",
      "unit": "TU per total cell"
     },
     {
      "key": "allocationStatus",
      "value": "not-assessed",
      "unit": ""
     }
    ],
    "qualifications": [
     "planned"
    ]
   }
  },
  {
   "name": "case-07b-viable-cells-denominator",
   "about": "Viable cells denominator preserved in output unit 'TU per viable cell'",
   "input": {
    "v": 1,
    "kind": "dose-plan",
    "basis": "TU",
    "cellCount": 1000000.0,
    "cellDenominator": "viable",
    "cellStatus": "measured",
    "cellSource": "Haemocytometer count",
    "cellObservationTime": "2026-10-17T10:00:00Z",
    "targetTime": "2026-10-17T14:00:00Z",
    "estimateExplanation": "",
    "titreBasis": "TU",
    "titreValue": 100000000.0,
    "titreUnit": "mL",
    "titreSource": "Vendor CoA",
    "titreDate": "2026-09-15",
    "doseBasis": "TU",
    "doseValue": 3.0,
    "doseDenominator": "viable",
    "stockLot": "Lot A1"
   },
   "expected": {
    "expect": "ok",
    "rows": [
     {
      "key": "requiredQuantity",
      "value": 3000000.0,
      "fraction": "3000000",
      "unit": "TU"
     },
     {
      "key": "requiredStockVolume",
      "value": 3e-05,
      "fraction": "3/100000",
      "unit": "L"
     },
     {
      "key": "enteredDose",
      "value": 3.0,
      "fraction": "3",
      "unit": "TU per viable cell"
     },
     {
      "key": "allocationStatus",
      "value": "not-assessed",
      "unit": ""
     }
    ],
    "qualifications": [
     "planned"
    ]
   }
  }
 ],
 "receiptIntegrityCases": [
  {
   "name": "case-08a-receipt-swapped-basis",
   "about": "Swapped/invalid basis on dose receipt fails receipt check",
   "mutation": "invalid-unit",
   "key": "requiredQuantity",
   "unit": "invalid-basis",
   "baseCase": "case-01a-identity-anchor-ml"
  },
  {
   "name": "case-08b-receipt-allocation-vessels",
   "about": "Allocation row (vessels) fails receipt check",
   "mutation": "add-row",
   "row": {
    "key": "vessels",
    "value": 10.0,
    "unit": ""
   },
   "baseCase": "case-01a-identity-anchor-ml"
  },
  {
   "name": "case-08c-receipt-allocation-overage",
   "about": "Allocation row (overagePercent) fails receipt check",
   "mutation": "add-row",
   "row": {
    "key": "overagePercent",
    "value": 5.0,
    "unit": "%"
   },
   "baseCase": "case-01a-identity-anchor-ml"
  },
  {
   "name": "case-08d-receipt-allocation-dead-volume",
   "about": "Allocation row (deadVolume) fails receipt check",
   "mutation": "add-row",
   "row": {
    "key": "deadVolume",
    "value": 0.5,
    "unit": "mL"
   },
   "baseCase": "case-01a-identity-anchor-ml"
  },
  {
   "name": "case-08e-receipt-unknown-method",
   "about": "Unknown method pin fails receipt check",
   "mutation": "unknown-method",
   "baseCase": "case-01a-identity-anchor-ml"
  },
  {
   "name": "case-08f-receipt-extraneous-row",
   "about": "Extraneous row fails receipt check",
   "mutation": "add-row",
   "row": {
    "key": "unexpectedKey",
    "value": 1.0,
    "unit": ""
   },
   "baseCase": "case-01a-identity-anchor-ml"
  },
  {
   "name": "case-08g-receipt-duplicate-row",
   "about": "Duplicate row fails receipt check",
   "mutation": "duplicate-row",
   "baseCase": "case-01a-identity-anchor-ml"
  }
 ]
}
