Trap · weight unit · patient PT005
Weight in lb read as kg
Clearance is inflated 2.2 times, so the patient keeps a full-function dose their kidneys can't clear.
The patient's rows
Exactly what the agent sees for PT005, copied from the chart. The value this mistake misreads is underlined.
| patient_id | age_years | sex | weight | weight_unit |
|---|---|---|---|---|
| PT005 | 72 | M | 176 (the value this mistake misreads) | lb (the value this mistake misreads) |
| patient_id | creatinine | creatinine_unit | collected_at |
|---|---|---|---|
| PT005 | 1.6 | mg/dL | 2026-10-31T06:12 |
| order_id | patient_id | drug | dose_mg | frequency | start_time | status |
|---|---|---|---|---|---|---|
| RX6102 | PT005 | Bremazotan | 300 | OD | 2026-10-31T23:06 | active |
Two readings of the same rows
Every step is shown. Where the careless reading goes wrong, the value is underlined.
What a careless agent computes
Reads 176 lb as 176 kg, skipping the × 0.4536 the unit column asks for.
- Weight
- 176 read as kg → 176 kg (the value this mistake misreads)
- Creatinine
- 1.6 mg/dL (2026-10-31T06:12) read as mg/dL → 1.60 mg/dL
- CrCl
- (140 − 72) × 176 ÷ (72 × 1.60) = 103.9 mL/min (the value this mistake misreads)
| Order | Daily dose | Limit | Flagged |
|---|---|---|---|
| RX6102Bremazotan | 300 × 1 = 300 mg | 400 mgCrCl ≥ 50 (the value this mistake misreads) | no (the value this mistake misreads) |
Output line: {"crcl_ml_min":103.9,"flagged_order_ids":[]}
The correct answer
Reads the unit, status, frequency and time columns as the instruction says, and flags only a daily dose strictly over the band's limit.
- Weight
- 176 read as lb → 79.8 kg
- Creatinine
- 1.6 mg/dL (2026-10-31T06:12) read as mg/dL → 1.60 mg/dL
- CrCl
- (140 − 72) × 79.8 ÷ (72 × 1.60) = 47.1 mL/min
| Order | Daily dose | Limit | Flagged |
|---|---|---|---|
| RX6102Bremazotan | 300 × 1 = 300 mg | 200 mgCrCl 25-50 | yes |
Output line: {"crcl_ml_min":47.1,"flagged_order_ids":["RX6102"]}
The tests that catch it
The careless output, graded by the task's real test file. This is what pytest printed.
CrCl within 1% · PT005test_clearance_within_one_percent[PT005]
AssertionError: PT005: CrCl 103.9 vs expected 47.1 (±1%)
Flagged set exact · PT005test_flagged_orders_exact[PT005]
AssertionError: PT005: flagged [] vs expected ['RX6102']
@pytest.mark.parametrize("pid", PATIENT_IDS)
def test_clearance_within_one_percent(by_patient, pid):
assert pid in by_patient, f"no output for {pid}"
got, want = by_patient[pid].get("crcl_ml_min"), EXPECTED[pid]["crcl_ml_min"]
assert isinstance(got, (int, float)) and not isinstance(got, bool)
assert abs(got - want) <= REL_TOL * abs(want), f"{pid}: CrCl {got} vs expected {want} (±{REL_TOL:.0%})"
@pytest.mark.parametrize("pid", PATIENT_IDS)
def test_flagged_orders_exact(by_patient, pid):
assert pid in by_patient, f"no output for {pid}"
got = by_patient[pid].get("flagged_order_ids")
assert isinstance(got, list)
assert set(got) == set(EXPECTED[pid]["flagged_order_ids"]), \
f"{pid}: flagged {sorted(got)} vs expected {EXPECTED[pid]['flagged_order_ids']}"
The same mistake also changes PT006, PT014, which share this trap family, and fails 4 more of their tests. No patient from another family moves.