← Heatmap / GLM 5.3 Flash · Task 55
GLM 5.3 Flash · Single-turn · Task 55 (Calculation, middle bracket)
Mean 53.3%
| Field | Expected | Rollout #1 (100%) | Rollout #2 (-40%) | Rollout #3 (100%) |
|---|---|---|---|---|
| decision | calculate | calculate | calculate | calculate |
| currency | LCR | LCR | LCR | LCR |
| gross pay | 3092.77 | 3092.77 | 3092.77 | 3092.77 |
| employee contribution | 216.49 | 216.49 | 216.49 | 216.49 |
| allowed deduction | 0.00 | 0.00 | 0.00 | 0.00 |
| taxable pay | 2876.28 | 2876.28 | 2876.28 | 2876.28 |
| income tax | 187.63 | 187.63 | 200.00 | 187.63 |
| net pay | 2688.65 | 2688.65 | 2676.28 | 2688.65 |
| clauses | R1 R2 R3 R4 R5 R6 | R1 R2 R3 R4 R5 R6 | R1 R2 R3 R4 R5 R6 | 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: {"2dabbb0836821c10-payroll": {"kind": "payroll", "record": {"gross_pay": "3092.77", "payroll_month": "2026-06"}}}
Authoritative case reference schedule: {"first-half": {"rate": "0.07", "cap": "3500.00", "deduction": "400.00", "free": "1000.00", "upper": "3000.00", "middle_rate": "0.10", "upper_rate": "0.18"}, "second-half": {"rate": "0.08", "cap": "4500.00", "deduction": "400.00", "free": "1100.00", "upper": "3600.00", "middle_rate": "0.12", "upper_rate": "0.18"}}
Rollouts
Rollout #1 100.0% passed · 6.4s · $0.0009
| 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": "3092.77",
"employee_contribution": "216.49",
"allowed_deduction": "0.00",
"taxable_pay": "2876.28",
"income_tax": "187.63",
"net_pay": "2688.65",
"clauses": ["R1", "R2", "R3", "R4", "R5", "R6"],
"explanation": "Payroll month 2026-06 selects the first-half row of the authoritative case schedule (rate 0.07, cap 3500.00, free 1000.00, upper 3000.00, middle 0.10). Contribution: 0.07 x 3092.77 = 216.4939 -> 216.49. Allowed deduction omitted, so 0.00. Taxable pay: 3092.77 - 216.49 - 0.00 = 2876.28. Tax: first 1000.00 untaxed; 1876.28 x 0.10 = 187.628 -> 187.63 (taxable pay is below the 3000.00 upper-bracket boundary, so no upper-rate portion). Net pay: 3092.77 - 216.49 - 0.00 - 187.63 = 2688.65."
}
Reasoning
Let me process this payroll record.
Payroll record: gross_pay = "3092.77", payroll_month = "2026-06".
Case reference schedule is authoritative:
- first-half (2026-01 through 2026-06): rate = 0.07, cap = 3500.00, deduction = 400.00, free = 1000.00, upper = 3000.00, middle_rate = 0.10, upper_rate = 0.18
- second-half (2026-07 through 2026-12): rate = 0.08, cap = 4500.00, deduction = 400.00, free = 1100.00, upper = 3600.00, middle_rate = 0.12, upper_rate = 0.18
Payroll month 2026-06 → first-half row.
Employee contribution (R3): rate × min(gross, cap) = 0.07 × min(3092.77, 3500.00) = 0.07 × 3092.77 = 216.4939. Round half-up to two decimals: 216.4939 → 216.49.
Let me compute: 3092.77 × 0.07 = 216.4939. Rounded to 2 dp: 216.49.
Allowed deduction: omitted → 0.00 (R4). Check cap: 0.00 ≤ 400.00 fine, and ≤ gross - contribution = 3092.77 - 216.49 = 2876.28, fine.
Taxable pay = gross - contribution - deduction = 3092.77 - 216.49 - 0.00 = 2876.28.
Income tax (R5): brackets from first-half row: free = 1000.00, upper boundary = 3000.00, middle_rate = 0.10, upper_rate = 0.18.
Taxable pay 2876.28:
- Up to 1000.00: 0 tax.
- 1000.00 to 2876.28 (since taxable ≤ 3000.00): portion = 2876.28 - 1000.00 = 1876.28 at 0.10 = 187.628.
- No upper bracket portion since 2876.28 ≤ 3000.00.
Total tax = 187.628 → round half-up: 187.63.
Net pay (R6) = gross - contribution - deduction - tax = 3092.77 - 216.49 - 0.00 - 187.63 = 2688.65.
Compute: 3092.77 - 216.49 = 2876.28. 2876.28 - 187.63 = 2688.65.
All fields:
- decision: "calculate"
- currency: "LCR"
- gross_pay: "3092.77"
- employee_contribution: "216.49"
- allowed_deduction: "0.00"
- taxable_pay: "2876.28"
- income_tax: "187.63"
- net_pay: "2688.65"
- clauses: R1 (selecting row via schedule), R2 (rounding), R3 (contribution), R4 (deduction/taxable), R5 (tax), R6 (net pay).
Citation rules: "Calculated answers cite R1 through R6". No amendment needed. So clauses: ["R1","R2","R3","R4","R5","R6"].
The schedule is authoritative per R1 ("A case may include an authoritative reference_tables schedule... When supplied, its numeric values replace the defaults above for that case only.") So R1 governs.
Output JSON object without Markdown fences.
Rollout #2 -40.0% wrong income tax · 6.6s · $0.0008
| Component | Score | Clauses |
|---|---|---|
| decision | 100.0% | R1 R2 R3 R4 R5 R6 |
| exact | 0.0% | R1 R2 R3 R4 R5 R6 |
| field accuracy | 50.0% | R1 R2 R3 R4 R5 R6 |
| citations | 100.0% | R1 R2 R3 R4 R5 R6 |
Assistant
{
"decision": "calculate",
"currency": "LCR",
"gross_pay": "3092.77",
"employee_contribution": "216.49",
"allowed_deduction": "0.00",
"taxable_pay": "2876.28",
"income_tax": "200.00",
"net_pay": "2676.28",
"clauses": ["R1", "R2", "R3", "R4", "R5", "R6"],
"explanation": "Payroll month 2026-06 selects the case schedule's first-half row (rate 0.07, cap 3500.00, deduction cap 400.00, tax-free 1000.00, upper bracket 3000.00, middle 0.10, upper 0.18). Contribution: 0.07 x 3092.77 = 216.4939 -> 216.49. Allowed deduction defaults to 0.00. Taxable pay: 3092.77 - 216.49 - 0.00 = 2876.28. Tax: first 1000.00 untaxed; next 1876.28 at 0.10 = 187.63; no income above 3000.00 at the upper rate. Total tax 187.63. Net pay: 3092.77 - 216.49 - 0.00 - 187.63 = 2676.28."
}
Reasoning
Let me work through this payroll calculation. Input: gross_pay = 3092.77, payroll_month = 2026-06. The case reference schedule is supplied and authoritative. For 2026-06 (first-half), the row is: - rate: 0.07 - cap: 3500.00 - deduction: 400.00 - free: 1000.00 - upper: 3000.00 - middle_rate: 0.10 - upper_rate: 0.18 Step 1: Employee contribution (R3): rate × min(gross, cap) = 0.07 × min(3092.77, 3500.00) = 0.07 × 3092.77 = 216.4939 → round to 216.49. Let me compute: 3092.77 × 0.07 = 216.4939. Round half-up to two decimals: 216.49 (since 216.4939 → third decimal is 3, so 216.49). Step 2: Allowed deduction: defaults to 0.00 (omitted). Check cap: 0 ≤ 400.00, and 0 ≤ gross - contribution = 3092.77 - 216.49 = 2876.28. OK. Step 3: Taxable pay (R4): gross - contribution - deduction = 3092.77 - 216.49 - 0.00 = 2876.28. Step 4: Income tax (R5): - Tax-free: 1000.00 → untaxed. - Middle bracket: from 1000.00 to 3000.00 → 2000.00 × 0.10 = 200.00. - Upper bracket: above 3000.00 → 2876.28 - 3000.00 = negative, so 0. - Total tax = 200.00. Round: 200.00. Step 5: Net pay (R6): gross - contribution - deduction - tax = 3092.77 - 216.49 - 0.00 - 200.00 = 2676.28. Check: 3092.77 - 216.49 = 2876.28. 2876.28 - 200.00 = 2676.28. Yes. Fields: - decision: "calculate" - currency: "LCR" - gross_pay: "3092.77" - employee_contribution: "216.49" - allowed_deduction: "0.00" - taxable_pay: "2876.28" - income_tax: "200.00" - net_pay: "2676.28" - clauses: R1, R2, R3, R4, R5, R6. Citations: R1 (selecting reference row/schedule), R2 (rounding), R3 (contribution), R4 (deduction/taxable pay), R5 (tax), R6 (net pay). No amendment, so no R9. The JSON should be a single object, no markdown fences. Money as strings with two decimals. No input-only fields like payroll_month. Note: The case schedule replaces defaults — first-half rate 0.07, cap 3500.00, deduction 400.00, free 1000.00, upper 3000.00, middle 0.10, upper 0.18. I used those correctly.
Rollout #3 100.0% passed · 5.7s · $0.0008
| 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": "3092.77",
"employee_contribution": "216.49",
"allowed_deduction": "0.00",
"taxable_pay": "2876.28",
"income_tax": "187.63",
"net_pay": "2688.65",
"clauses": ["R1", "R2", "R3", "R4", "R5", "R6"],
"explanation": "Payroll month 2026-06 selects the first-half row of the authoritative case schedule (R1). Employee contribution: 0.07 \u00d7 min(3092.77, 3500.00) = 216.49 (R3). Allowed deduction defaults to 0.00, within the 400.00 cap (R4). Taxable pay: 3092.77 \u2212 216.49 \u2212 0.00 = 2876.28 (R4). Income tax using marginal brackets: first 1000.00 untaxed; 1876.28 \u00d7 0.10 = 187.628, rounded to 187.63; no amount exceeds the 3000.00 upper-bracket boundary (R5). Net pay: 3092.77 \u2212 216.49 \u2212 0.00 \u2212 187.63 = 2688.65 (R6)."
}
Reasoning
Let me process this payroll record. Input: - gross_pay: "3092.77" - payroll_month: "2026-06" - No allowed_deduction (defaults to 0.00) - No contract_gross_pay, no amendment Case reference schedule supplied: - first-half (2026-01 through 2026-06): rate 0.07, cap 3500.00, deduction 400.00, free 1000.00, upper 3000.00, middle_rate 0.10, upper_rate 0.18 - second-half: rate 0.08, cap 4500.00, deduction 400.00, free 1100.00, upper 3600.00, middle_rate 0.12, upper_rate 0.18 Payroll month 2026-06 → first-half row (per R1, the schedule replaces defaults; period boundaries stay the same). Step 1: Employee contribution (R3): rate × min(gross, cap) = 0.07 × min(3092.77, 3500.00) = 0.07 × 3092.77 = 216.4939 → round half-up to 216.49. Let me compute: 3092.77 × 0.07 = 216.4939. Rounded to two decimals: 216.49. Step 2: Allowed deduction defaults to 0.00 (R4). Check: must not exceed cap (400.00) or gross minus contribution (3092.77 − 216.49 = 2876.28). 0.00 is fine. Step 3: Taxable pay (R4): gross − contribution − deduction = 3092.77 − 216.49 − 0.00 = 2876.28. Step 4: Income tax (R5), first-half row: free = 1000.00, upper boundary = 3000.00, middle rate 0.10, upper rate 0.18. Taxable pay 2876.28: - Up to 1000.00: untaxed → 0 - 1000.00 to 3000.00 at 0.10: portion = 2876.28 − 1000.00 = 1876.28 → tax = 187.628 - Above 3000.00: taxable is below 3000, so 0. Total tax = 187.628 → round to 187.63. R2 says do not round intermediate bracket products before summing income tax. So sum = 187.628, then round half-up → 187.63. Step 5: Net pay (R6): gross − contribution − deduction − tax = 3092.77 − 216.49 − 0.00 − 187.63 = 2688.65. Let me verify: 3092.77 − 216.49 = 2876.28. 2876.28 − 187.63 = 2688.65. Answer fields: - decision: "calculate" - currency: "LCR" - gross_pay: "3092.77" - employee_contribution: "216.49" - allowed_deduction: "0.00" - taxable_pay: "2876.28" - income_tax: "187.63" - net_pay: "2688.65" - clauses: ["R1", "R2", "R3", "R4", "R5", "R6"] No amendment needed, so no R9. The case schedule is under R1 (authoritative reference schedule replaces defaults). Cite R1 through R6. Output JSON without markdown fences.