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.
| patient_id | age_years | sex | weight | weight_unit |
|---|---|---|---|---|
| PT013 | 70 | F | 60 | kg |
| patient_id | creatinine | creatinine_unit | collected_at |
|---|---|---|---|
| PT013 | 0.9 | mg/dL | 2026-10-31T04:21 |
| order_id | patient_id | drug | dose_mg | frequency | start_time | status |
|---|---|---|---|---|---|---|
| RX4803 | PT013 | Bremazotan | 500 | OD | 2026-10-21T09:11 | active |
| RX9491 | PT013 | Exalmizide | 250 (the value this mistake misreads) | QDS | 2026-10-18T12:40 | 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
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
| Order | Daily dose | Limit | Flagged |
|---|---|---|---|
| RX4803Bremazotan | 500 × 1 = 500 mg | 400 mgCrCl ≥ 50 | yes |
| RX9491Exalmizide | 250 × 4 = 1000 mg | 1000 mgCrCl 35-70 | yes (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
| Order | Daily dose | Limit | Flagged |
|---|---|---|---|
| RX4803Bremazotan | 500 × 1 = 500 mg | 400 mgCrCl ≥ 50 | yes |
| RX9491Exalmizide | 250 × 4 = 1000 mg | 1000 mgCrCl 35-70 | no |
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']
@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.