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.

patients.csv
patient_idage_yearssexweightweight_unit
PT00572M176 (the value this mistake misreads)lb (the value this mistake misreads)
labs.csv
patient_idcreatininecreatinine_unitcollected_at
PT0051.6mg/dL2026-10-31T06:12
meds.csv
order_idpatient_iddrugdose_mgfrequencystart_timestatus
RX6102PT005Bremazotan300OD2026-10-31T23:06active

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)
OrderDaily doseLimitFlagged
RX6102Bremazotan300 × 1 = 300 mg400 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
OrderDaily doseLimitFlagged
RX6102Bremazotan300 × 1 = 300 mg200 mgCrCl 25-50yes

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']
tests/test_outputs.py
@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%})"
tests/test_outputs.py
@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.