Trap · limit boundary · patient PT013

A dose exactly at the limit

A daily dose equal to the maximum is within it. Flagging it is a false alarm on a correct order.

The patient's rows

Exactly what the agent sees for PT013, copied from the chart. The value this mistake misreads is underlined.

patients.csv
patient_idage_yearssexweightweight_unit
PT01370F60kg
labs.csv
patient_idcreatininecreatinine_unitcollected_at
PT0130.9mg/dL2026-10-31T04:21
meds.csv
order_idpatient_iddrugdose_mgfrequencystart_timestatus
RX4803PT013Bremazotan500OD2026-10-21T09:11active
RX9491PT013Exalmizide250 (the value this mistake misreads)QDS2026-10-18T12:40active

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

Flags daily dose ≥ limit, where the instruction says strictly greater.

Weight
60 read as kg → 60 kg
Creatinine
0.9 mg/dL (2026-10-31T04:21) read as mg/dL → 0.90 mg/dL
CrCl
(140 − 70) × 60 ÷ (72 × 0.90) × 0.85 = 55.1 mL/min
OrderDaily doseLimitFlagged
RX4803Bremazotan500 × 1 = 500 mg400 mgCrCl ≥ 50yes
RX9491Exalmizide250 × 4 = 1000 mg1000 mgCrCl 35-70yes (the value this mistake misreads)

Output line: {"crcl_ml_min":55.1,"flagged_order_ids":["RX4803","RX9491"]}

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
60 read as kg → 60 kg
Creatinine
0.9 mg/dL (2026-10-31T04:21) read as mg/dL → 0.90 mg/dL
CrCl
(140 − 70) × 60 ÷ (72 × 0.90) × 0.85 = 55.1 mL/min
OrderDaily doseLimitFlagged
RX4803Bremazotan500 × 1 = 500 mg400 mgCrCl ≥ 50yes
RX9491Exalmizide250 × 4 = 1000 mg1000 mgCrCl 35-70no

Output line: {"crcl_ml_min":55.1,"flagged_order_ids":["RX4803"]}

The test that catches it

The careless output, graded by the task's real test file. This is what pytest printed.

  • Flagged set exact · PT013test_flagged_orders_exact[PT013]

    AssertionError: PT013: flagged ['RX4803', 'RX9491'] vs expected ['RX4803']
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']}"

No other patient's answer moves under this mistake, so this one failure is the whole signal.