← Heatmap / GLM 5.3 Flash · Task 21
GLM 5.3 Flash · Single-turn · Task 21 (Calculation, below tax-free line)
Mean 50.0%
| Field | Expected | Rollout #1 (100%) | Rollout #2 (-50%) | Rollout #3 (100%) |
|---|---|---|---|---|
| decision | calculate | calculate | (malformed) | calculate |
| currency | LCR | LCR | (malformed) | LCR |
| gross pay | 614.66 | 614.66 | (malformed) | 614.66 |
| employee contribution | 30.73 | 30.73 | (malformed) | 30.73 |
| allowed deduction | 175.67 | 175.67 | (malformed) | 175.67 |
| taxable pay | 408.26 | 408.26 | (malformed) | 408.26 |
| income tax | 0.00 | 0.00 | (malformed) | 0.00 |
| net pay | 408.26 | 408.26 | (malformed) | 408.26 |
| clauses | R1 R2 R3 R4 R5 R6 | R1 R2 R3 R4 R5 R6 | (malformed) | R1 R2 R3 R4 R5 R6 |
Prompt
Process this monthly payroll record under the supplied rulebook. Return the R6 or R7 JSON answer.
Source documents: {"e5a9428bd6b25f92-payroll": {"kind": "payroll", "record": {"gross_pay": "614.66", "payroll_month": "2026-09", "allowed_deduction": "175.67"}}}
Authoritative case reference schedule: {"first-half": {"rate": "0.04", "cap": "4000.00", "deduction": "400.00", "free": "900.00", "upper": "2800.00", "middle_rate": "0.14", "upper_rate": "0.22"}, "second-half": {"rate": "0.05", "cap": "4000.00", "deduction": "400.00", "free": "1000.00", "upper": "3600.00", "middle_rate": "0.12", "upper_rate": "0.24"}}
Rollouts
Rollout #1 100.0% passed · 3.6s · $0.0006
| Component | Score | Clauses |
|---|---|---|
| decision | 100.0% | R1 R2 R3 R4 R5 R6 |
| exact | 100.0% | R1 R2 R3 R4 R5 R6 |
| field accuracy | 100.0% | R1 R2 R3 R4 R5 R6 |
| citations | 100.0% | R1 R2 R3 R4 R5 R6 |
Assistant
{
"decision": "calculate",
"currency": "LCR",
"gross_pay": "614.66",
"employee_contribution": "30.73",
"allowed_deduction": "175.67",
"taxable_pay": "408.26",
"income_tax": "0.00",
"net_pay": "408.26",
"clauses": ["R1", "R2", "R3", "R4", "R5", "R6"],
"explanation": "Payroll month 2026-09 selects the second-half row of the authoritative case schedule (rate 0.05, cap 4000.00, deduction cap 400.00, free 1000.00, upper 3600.00, middle 0.12, upper rate 0.24). Employee contribution: 0.05 \u00d7 min(614.66, 4000.00) = 30.733 \u2192 30.73. Allowed deduction 175.67 is within the 400.00 cap and within 614.66 \u2212 30.73 = 583.93 available pay. Taxable pay: 614.66 \u2212 30.73 \u2212 175.67 = 408.26. Taxable pay does not exceed the 1000.00 tax-free amount, so income tax is 0.00. Net pay: 614.66 \u2212 30.73 \u2212 175.67 \u2212 0.00 = 408.26."
}
Reasoning
We need to process payroll for 2026-09, which is in the second half. The case reference schedule overrides defaults: second-half row: rate 0.05, cap 4000.00, deduction cap 400.00, free 1000.00, upper 3600.00, middle_rate 0.12, upper_rate 0.24. Gross pay: 614.66 Employee contribution: 0.05 * min(614.66, 4000.00) = 0.05 * 614.66 = 30.733 → round half up to 30.73. Allowed deduction: 175.67. Check cap: 400.00 — OK. Check gross pay minus contribution: 614.66 - 30.73 = 583.93. 175.67 ≤ 583.93 — OK. Taxable pay: 614.66 - 30.73 - 175.67 = 408.26. Income tax: taxable pay 408.26 ≤ free 1000.00 → tax = 0.00. Net pay: 614.66 - 30.73 - 175.67 - 0.00 = 408.26. Answer JSON with decision calculate, currency LCR, fields, clauses R1-R6 (R9 not needed since no conflict).
Rollout #2 -50.0% malformed · 2.6s · $0.0003
| Component | Score | Clauses |
|---|---|---|
| decision | 0.0% | R1 R2 R3 R4 R5 R6 |
| exact | 0.0% | R1 R2 R3 R4 R5 R6 |
| field accuracy | 0.0% | R1 R2 R3 R4 R5 R6 |
| citations | 0.0% | R1 R2 R3 R4 R5 R6 |
Assistant
```json
{
"decision": "calculate",
"currency": "LCR",
"gross_pay": "614.66",
"employee_contribution": "30.73",
"allowed_deduction": "175.67",
"taxable_pay": "408.26",
"income_tax": "0.00",
"net_pay": "408.26",
"clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]
}
```
Reasoning
The payroll month is 2026-09, which is in the second half of 2026. The authoritative case reference schedule supplies second-half values: rate 0.05, cap 4000.00, deduction 400.00, free 1000.00, upper 3600.00, middle_rate 0.12, upper_rate 0.24. Gross pay: 614.66 Employee contribution: 0.05 * min(614.66, 4000.00) = 0.05 * 614.66 = 30.733 → round to 30.73. Allowed deduction: 175.67. Check: must not exceed deduction cap 400.00 (ok) and gross pay minus rounded contribution: 614.66 - 30.73 = 583.93 (ok, 175.67 ≤ 583.93). Taxable pay: 614.66 - 30.73 - 175.67 = 408.26. Income tax: taxable pay 408.26 ≤ free 1000.00, so tax = 0.00. Net pay: 614.66 - 30.73 - 175.67 - 0.00 = 408.26. Return JSON with decision "calculate", currency "LCR", fields as strings, clauses R1-R6 (no amendment needed).
Rollout #3 100.0% passed · 4.5s · $0.0005
| Component | Score | Clauses |
|---|---|---|
| decision | 100.0% | R1 R2 R3 R4 R5 R6 |
| exact | 100.0% | R1 R2 R3 R4 R5 R6 |
| field accuracy | 100.0% | R1 R2 R3 R4 R5 R6 |
| citations | 100.0% | R1 R2 R3 R4 R5 R6 |
Assistant
{
"decision": "calculate",
"currency": "LCR",
"gross_pay": "614.66",
"employee_contribution": "30.73",
"allowed_deduction": "175.67",
"taxable_pay": "408.26",
"income_tax": "0.00",
"net_pay": "408.26",
"clauses": ["R1", "R2", "R3", "R4", "R5", "R6"],
"explanation": "Payroll month 2026-09 selects the second-half row of the authoritative case schedule (rate 0.05, cap 4000.00, deduction cap 400.00, tax-free 1000.00, upper 3600.00, middle 0.12, upper rate 0.24). Contribution: 0.05 \u00d7 min(614.66, 4000.00) = 30.733 \u2192 30.73 (R3, R2). Allowed deduction 175.67 is within the 400.00 cap and within gross minus contribution (583.93) (R4). Taxable pay: 614.66 \u2212 30.73 \u2212 175.67 = 408.26 (R4). Taxable pay does not exceed the 1000.00 tax-free amount, so income tax is 0.00 (R5). Net pay: 614.66 \u2212 30.73 \u2212 175.67 \u2212 0.00 = 408.26 (R6)."
}
Reasoning
Let me process this payroll record. Input: - gross_pay: "614.66" - payroll_month: "2026-09" - allowed_deduction: "175.67" Payroll month 2026-09 is in second-half (2026-07 through 2026-12). The case reference schedule is authoritative: - second-half: rate 0.05, cap 4000.00, deduction 400.00, free 1000.00, upper 3600.00, middle_rate 0.12, upper_rate 0.24 Employee contribution (R3): rate × min(gross, cap) = 0.05 × min(614.66, 4000.00) = 0.05 × 614.66 = 30.733 → round half-up to 30.73. Allowed deduction (R4): 175.67. Check: must not exceed deduction cap (400.00) — OK. Must not exceed gross pay minus rounded contribution: 614.66 − 30.73 = 583.93. 175.67 ≤ 583.93 — OK. Taxable pay: 614.66 − 30.73 − 175.67 = 408.26. Income tax (R5): taxable pay 408.26 vs tax-free amount 1000.00. 408.26 ≤ 1000.00, so all untaxed. Income tax = 0.00. Net pay (R6): 614.66 − 30.73 − 175.67 − 0.00 = 408.26. Let me verify: 614.66 − 30.73 = 583.93. 583.93 − 175.67 = 408.26. Yes. Fields: - decision: "calculate" - currency: "LCR" - gross_pay: "614.66" - employee_contribution: "30.73" - allowed_deduction: "175.67" - taxable_pay: "408.26" - income_tax: "0.00" - net_pay: "408.26" - clauses: R1 (selecting reference row / schedule), R2 (rounding), R3 (contribution), R4 (deduction and taxable pay), R5 (tax), R6 (net pay). No amendment needed, so no R9. The schedule replaces defaults (R1 says authoritative case reference schedule replaces defaults). Cite R1 for the schedule selection. Output JSON without markdown fences.