← Heatmap / GLM 5.3 Flash · Task 6
GLM 5.3 Flash · Single-turn · Task 6 (Calculation, upper bracket)
Mean 100.0%
| Field | Expected | Rollout #1 (100%) | Rollout #2 (100%) | Rollout #3 (100%) |
|---|---|---|---|---|
| decision | calculate | calculate | calculate | calculate |
| currency | LCR | LCR | LCR | LCR |
| gross pay | 3468.15 | 3468.15 | 3468.15 | 3468.15 |
| employee contribution | 138.73 | 138.73 | 138.73 | 138.73 |
| allowed deduction | 47.85 | 47.85 | 47.85 | 47.85 |
| taxable pay | 3281.57 | 3281.57 | 3281.57 | 3281.57 |
| income tax | 329.95 | 329.95 | 329.95 | 329.95 |
| net pay | 2951.62 | 2951.62 | 2951.62 | 2951.62 |
| 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: {"0eb088af1b0a1e64-payroll": {"kind": "payroll", "record": {"gross_pay": "3468.15", "payroll_month": "2026-06", "allowed_deduction": "47.85"}}}
Authoritative case reference schedule: {"first-half": {"rate": "0.04", "cap": "4500.00", "deduction": "400.00", "free": "1200.00", "upper": "2800.00", "middle_rate": "0.14", "upper_rate": "0.22"}, "second-half": {"rate": "0.07", "cap": "4500.00", "deduction": "400.00", "free": "1200.00", "upper": "3000.00", "middle_rate": "0.08", "upper_rate": "0.22"}}
Rollouts
Rollout #1 100.0% passed · 4.6s · $0.0007
| 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": "3468.15",
"employee_contribution": "138.73",
"allowed_deduction": "47.85",
"taxable_pay": "3281.57",
"income_tax": "329.95",
"net_pay": "2951.62",
"clauses": ["R1", "R2", "R3", "R4", "R5", "R6"],
"explanation": "Payroll month 2026-06 selects the first-half case schedule (rate 0.04, cap 4500.00, deduction cap 400.00, free 1200.00, upper 2800.00, middle 0.14, upper rate 0.22). Contribution: 0.04 \u00d7 3468.15 = 138.73. Allowed deduction 47.85 is within the 400.00 cap and within gross minus contribution (3329.42). Taxable pay: 3468.15 \u2212 138.73 \u2212 47.85 = 3281.57. Tax: 1600.00 \u00d7 0.14 + 481.57 \u00d7 0.22 = 224.00 + 105.9454 = 329.9454 \u2192 329.95. Net pay: 3468.15 \u2212 138.73 \u2212 47.85 \u2212 329.95 = 2951.62."
}
Reasoning
We need to process a payroll record for 2026-06 (first-half row per the case schedule). Case schedule first-half: rate 0.04, cap 4500.00, deduction 400.00, free 1200.00, upper 2800.00, middle_rate 0.14, upper_rate 0.22. Gross pay: 3468.15. Allowed deduction: 47.85. Employee contribution: rate 0.04 × min(gross, cap) = 0.04 × 3468.15 = 138.726 → round half up to 138.73. Check allowed deduction: must not exceed deduction cap (400.00) or gross pay minus rounded contribution: 3468.15 − 138.73 = 3329.42. 47.85 ≤ both, OK. Taxable pay: 3468.15 − 138.73 − 47.85 = 3281.57. Income tax: taxable 3281.57. Free = 1200.00. Upper begins at 2800.00. Portion 1200.00 → 2800.00: 1600.00 × 0.14 = 224.00. Portion above 2800.00: 3281.57 − 2800.00 = 481.57 × 0.22 = 105.9454 → but do not round intermediate products; sum then round: 224.00 + 105.9454 = 329.9454 → round half up = 329.95. Net pay: 3468.15 − 138.73 − 47.85 − 329.95 = ? 3468.15 − 138.73 = 3329.42. 3329.42 − 47.85 = 3281.57. 3281.57 − 329.95 = 2951.62. So net pay = 2951.62. Fields: decision calculate, currency LCR, gross_pay "3468.15", employee_contribution "138.73", allowed_deduction "47.85", taxable_pay "3281.57", income_tax "329.95", net_pay "2951.62". Clauses: R1 (schedule selection), R2 (rounding), R3 (contribution), R4 (deduction, taxable pay), R5 (tax), R6 (net pay/answer). No amendment present, no contract conflict. Output JSON only, no markdown fences.
Rollout #2 100.0% passed · 9.2s · $0.0010
| 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": "3468.15",
"employee_contribution": "138.73",
"allowed_deduction": "47.85",
"taxable_pay": "3281.57",
"income_tax": "329.95",
"net_pay": "2951.62",
"clauses": ["R1", "R2", "R3", "R4", "R5", "R6"],
"explanation": "Payroll month 2026-06 selects the case schedule's first-half row (rate 0.04, cap 4500.00, deduction cap 400.00, free 1200.00, upper 2800.00, middle 0.14, upper 0.22). Contribution: 0.04 \u00d7 3468.15 = 138.726 \u2192 138.73. Allowed deduction 47.85 is within the 400.00 cap and within gross pay minus contribution (3329.42). Taxable pay: 3468.15 \u2212 138.73 \u2212 47.85 = 3281.57. Tax: first 1200.00 untaxed; 1600.00 \u00d7 0.14 = 224.00; (3281.57 \u2212 2800.00) = 481.57 \u00d7 0.22 = 105.9454; total 329.9454 \u2192 329.95. Net pay: 3468.15 \u2212 138.73 \u2212 47.85 \u2212 329.95 = 2951.62."
}
Reasoning
Let me process this payroll record. Inputs: - gross_pay: "3468.15" - payroll_month: "2026-06" - allowed_deduction: "47.85" Payroll month 2026-06 is in first-half (2026-01 through 2026-06). The case provides an authoritative reference schedule, so I must use the first-half row from the schedule: first-half: rate = 0.04, cap = 4500.00, deduction = 400.00, free = 1200.00, upper = 2800.00, middle_rate = 0.14, upper_rate = 0.22 Step 1: Employee contribution (R3): min(gross_pay, cap) = min(3468.15, 4500.00) = 3468.15 contribution = 0.04 × 3468.15 = 138.726 Round to two decimals (round-half-up): 138.726 → 138.73 Wait: 138.726 rounds to 138.73 (since third decimal is 6, round up). Yes, 138.73. Step 2: Allowed deduction check (R4): allowed_deduction = 47.85 - Must not exceed deduction cap: 47.85 ≤ 400.00 ✓ - Must not exceed gross pay minus rounded contribution: 3468.15 − 138.73 = 3329.42; 47.85 ≤ 3329.42 ✓ Step 3: Taxable pay (R4): taxable = gross_pay − contribution − allowed_deduction = 3468.15 − 138.73 − 47.85 = 3281.57 Let me compute: 3468.15 − 138.73 = 3329.42; 3329.42 − 47.85 = 3281.57. Step 4: Income tax (R5): Brackets: - Tax-free amount: 1200.00 - Middle bracket: from 1200.00 to 2800.00 (upper bracket begins at 2800.00), rate 0.14 - Upper bracket: above 2800.00, rate 0.22 Taxable pay = 3281.57 Portion up to 1200.00: 1200.00 × 0 = 0 Portion 1200.00 to 2800.00: 2800.00 − 1200.00 = 1600.00 × 0.14 = 224.00 Portion above 2800.00: 3281.57 − 2800.00 = 481.57 × 0.22 = 105.9454 Total = 224.00 + 105.9454 = 329.9454 Round to two decimals: 329.9454 → 329.95 (round-half-up: third decimal is 5, wait 329.9454 — the third decimal is 5, fourth is 4. Rounding to two decimals: 329.9454 → look at 0.0054 portion... Actually 329.9454: two decimal places means we keep 329.94 or round to 329.95. The digit after the second decimal is 5 (329.94|54), so round half up → 329.95. Wait, let me be careful: 329.9454. The second decimal is 4, the remainder is 0.0054. Since 0.0054 > 0.005, rounds up to 329.95. Yes. Actually, more precisely: 329.9454 → the fractional part beyond two decimals is 0.0054, which is more than 0.005, so round up: 329.95. Hmm, but wait — 481.57 × 0.22: 481.57 × 0.22 = 105.9454. Let me verify: 481.57 × 0.22 = 481.57 × 22 / 100 = 10594.54 / 100 = 105.9454. Yes. Total tax = 224.00 + 105.9454 = 329.9454 → 329.95. Step 5: Net pay (R6): net = gross − contribution − allowed_deduction − tax = 3468.15 − 138.73 − 47.85 − 329.95 3468.15 − 138.73 = 3329.42 3329.42 − 47.85 = 3281.57 3281.57 − 329.95 = 2951.62 Net pay = 2951.62 Check: taxable_pay = 3281.57, income_tax = 329.95, net = taxable − tax = 3281.57 − 329.95 = 2951.62. ✓ Output fields: - decision: "calculate" - currency: "LCR" - gross_pay: "3468.15" - employee_contribution: "138.73" - allowed_deduction: "47.85" - taxable_pay: "3281.57" - income_tax: "329.95" - net_pay: "2951.62" - clauses: R1 (schedule selection / scope), R2 (rounding), R3 (contribution), R4 (deduction and taxable pay), R5 (income tax), R6 (net pay) Clauses: ["R1", "R2", "R3", "R4", "R5", "R6"] No amendment needed, no contract conflict. No R9 citation needed. Note: the schedule replaces defaults, so R1 covers that. The first-half schedule row applies to 2026-06. Let me double-check the contribution rounding: 0.04 × 3468.15 = 138.726. Round half up to two decimals: 138.73. Yes. Taxable pay check: 3468.15 − 138.73 − 47.85 = 3281.57. Correct. Tax brackets with taxable 3281.57: - Free: 1200.00 → 0 tax - Middle: (2800.00 − 1200.00) = 1600.00 at 0.14 = 224.00 - Upper: (3281.57 − 2800.00) = 481.57 at 0.22 = 105.9454 - Total: 329.9454 → 329.95 Net: 3468.15 − 138.73 − 47.85 − 329.95 = 2951.62. All good. Output JSON without markdown fences, one object.
Rollout #3 100.0% passed · 6.2s · $0.0007
| 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": "3468.15",
"employee_contribution": "138.73",
"allowed_deduction": "47.85",
"taxable_pay": "3281.57",
"income_tax": "329.95",
"net_pay": "2951.62",
"clauses": ["R1", "R2", "R3", "R4", "R5", "R6"],
"explanation": "Payroll month 2026-06 selects the case schedule's first-half row (rate 0.04, cap 4500.00, deduction cap 400.00, free 1200.00, upper 2800.00, middle 0.14, upper rate 0.22). Contribution: 0.04 x 3468.15 = 138.73. Allowed deduction 47.85 is within the 400.00 cap and below gross minus contribution (3329.42). Taxable pay: 3468.15 - 138.73 - 47.85 = 3281.57. Tax: first 1200.00 untaxed, 1600.00 at 0.14 = 224.00, plus 481.57 at 0.22 = 105.9454, summed then rounded to 329.95. Net pay: 3468.15 - 138.73 - 47.85 - 329.95 = 2951.62."
}
Reasoning
We need to process a payroll record under rulebook version 3, with an authoritative case reference schedule that overrides defaults. Input: - gross_pay: 3468.15 - payroll_month: 2026-06 → first-half row (2026-01 through 2026-06) - allowed_deduction: 47.85 Case schedule first-half: - rate: 0.04 - cap: 4500.00 - deduction: 400.00 - free: 1200.00 - upper: 2800.00 - middle_rate: 0.14 - upper_rate: 0.22 Calculations: 1. Employee contribution (R3): rate × min(gross, cap) = 0.04 × min(3468.15, 4500.00) = 0.04 × 3468.15 = 138.726 → round to 138.73. 2. Allowed deduction check (R4): must not exceed deduction cap (400.00) or gross pay minus rounded contribution = 3468.15 − 138.73 = 3329.42. 47.85 ≤ 400.00 and ≤ 3329.42. OK. 3. Taxable pay: gross − contribution − deduction = 3468.15 − 138.73 − 47.85 = 3281.57. Check: 3468.15 − 138.73 = 3329.42; 3329.42 − 47.85 = 3281.57. Yes. 4. Income tax (R5), marginal: - Tax-free: 1200.00 → untaxed. - Middle bracket: from 1200 to upper 2800: portion = 2800 − 1200 = 1600 at 0.14 = 224.00. - Upper bracket: above 2800: 3281.57 − 2800 = 481.57 at 0.22 = 105.9454 → but do not round intermediate products separately before summing. Sum: 224.00 + 105.9454 = 329.9454 → round half-up to 329.95. Wait, 481.57 × 0.22 = 105.9454. Total = 224 + 105.9454 = 329.9454 → rounds to 329.95. 5. Net pay: gross − contribution − deduction − tax = 3468.15 − 138.73 − 47.85 − 329.95 = ? 3468.15 − 138.73 = 3329.42 3329.42 − 47.85 = 3281.57 3281.57 − 329.95 = 2951.62. Net pay = 2951.62. Fields: - decision: "calculate" - currency: "LCR" - gross_pay: "3468.15" - employee_contribution: "138.73" - allowed_deduction: "47.85" - taxable_pay: "3281.57" - income_tax: "329.95" - net_pay: "2951.62" - clauses: R1, R2, R3, R4, R5, R6. Also maybe R1 for schedule selection. The schedule is authoritative per R1. Cite R1 through R6. Clauses: ["R1","R2","R3","R4","R5","R6"]. Explanation optional; can include a brief explanation. The instructions say an optional explanation string is permitted. I'll include a short one. Return one JSON object without markdown fences.