← Heatmap / GLM 5.3 Flash · Task 63
GLM 5.3 Flash · Single-turn · Task 63 (Calculation, at the upper bracket line)
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 | 4093.39 | 4093.39 | 4093.39 | 4093.39 |
| employee contribution | 245.60 | 245.60 | 245.60 | 245.60 |
| allowed deduction | 247.81 | 247.81 | 247.81 | 247.81 |
| taxable pay | 3599.98 | 3599.98 | 3599.98 | 3599.98 |
| income tax | 324.00 | 324.00 | 324.00 | 324.00 |
| net pay | 3275.98 | 3275.98 | 3275.98 | 3275.98 |
| 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: {"c9a494472e6b6cd2-payroll": {"kind": "payroll", "record": {"gross_pay": "4093.39", "payroll_month": "2026-06", "allowed_deduction": "247.81"}}}
Authoritative case reference schedule: {"first-half": {"rate": "0.06", "cap": "5000.00", "deduction": "400.00", "free": "900.00", "upper": "3600.00", "middle_rate": "0.12", "upper_rate": "0.24"}, "second-half": {"rate": "0.05", "cap": "4000.00", "deduction": "400.00", "free": "1100.00", "upper": "3300.00", "middle_rate": "0.10", "upper_rate": "0.24"}}
Rollouts
Rollout #1 100.0% passed · 4.6s · $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": "4093.39",
"employee_contribution": "245.60",
"allowed_deduction": "247.81",
"taxable_pay": "3599.98",
"income_tax": "324.00",
"net_pay": "3275.98",
"clauses": ["R1", "R2", "R3", "R4", "R5", "R6"],
"explanation": "Payroll month 2026-06 selects the case schedule's first-half row (rate 0.06, cap 5000.00, deduction cap 400.00, free 900.00, upper 3600.00). Contribution: 0.06 \u00d7 min(4093.39, 5000.00) = 245.6034 \u2192 245.60. Deduction 247.81 is within the 400.00 cap and within available pay (4093.39 \u2212 245.60 = 3847.79). Taxable pay: 4093.39 \u2212 245.60 \u2212 247.81 = 3599.98. Tax: first 900.00 untaxed; 2699.98 \u00d7 0.12 = 323.9976 \u2192 324.00; no upper-bracket income. Net pay: 4093.39 \u2212 245.60 \u2212 247.81 \u2212 324.00 = 3275.98."
}
Reasoning
We need to process payroll for 2026-06, which is first-half. The authoritative case reference schedule for first-half: rate 0.06, cap 5000.00, deduction 400.00, free 900.00, upper 3600.00, middle_rate 0.12, upper_rate 0.24. Per R1, when a case schedule is supplied, its numeric values replace defaults. So use first-half row. Gross pay: 4093.39 Employee contribution: rate 0.06 × min(4093.39, 5000.00) = 0.06 × 4093.39 = 245.6034 → round half up to 245.60. Allowed deduction: 247.81. Check cap: 400.00 — OK. Check gross pay minus rounded contribution: 4093.39 − 245.60 = 3847.79. 247.81 ≤ 3847.79 — OK. Taxable pay: 4093.39 − 245.60 − 247.81 = 3600. - let's compute: 4093.39 − 245.60 = 3847.79; 3847.79 − 247.81 = 3599.98. Income tax: taxable pay 3599.98. - Up to free 900.00: untaxed. - 900.00 to 3600.00: middle rate 0.12. Portion: 3600.00 − 900.00 = 2700.00 → but taxable is 3599.98, so portion above 900 up to 3600 = 3599.98 − 900.00 = 2699.98 → tax = 2699.98 × 0.12 = 323.9976. - Above 3600: 0 (3599.98 < 3600). Total tax = 323.9976 → round half up to 324.00. Wait: 2699.98 × 0.12 = 323.9976. Round to two decimals: 324.00? 323.9976 → third decimal is 7, round half up: 323.9976 → 324.00? Let's check: 323.9976 rounded to two decimals: look at third decimal digit 7 ≥ 5, so round up second decimal: 323.99 + 0.01 = 324.00. Yes, 324.00. Net pay: 4093.39 − 245.60 − 247.81 − 324.00 = 4093.39 − 245.60 = 3847.79; 3847.79 − 247.81 = 3599.98; 3599.98 − 324.00 = 3275.98. Fields: decision "calculate", currency "LCR", gross_pay "4093.39", employee_contribution "245.60", allowed_deduction "247.81", taxable_pay "3599.98", income_tax "324.00", net_pay "3275.98". Clauses: R1 (schedule selection), R2 (rounding), R3 (contribution), R4 (deduction/taxable), R5 (tax), R6 (net pay/answer). No amendment needed. JSON only, no markdown fences.
Rollout #2 100.0% passed · 3.1s · $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": "4093.39",
"employee_contribution": "245.60",
"allowed_deduction": "247.81",
"taxable_pay": "3599.98",
"income_tax": "324.00",
"net_pay": "3275.98",
"clauses": ["R1", "R2", "R3", "R4", "R5", "R6"],
"explanation": "Payroll month 2026-06 selects the case's authoritative first-half schedule (R1). Employee contribution = 0.06 \u00d7 min(4093.39, 5000.00) = 245.6034 \u2192 245.60 (R3). Allowed deduction 247.81 is within the 400.00 deduction cap and within gross pay minus contribution (R4). Taxable pay = 4093.39 \u2212 245.60 \u2212 247.81 = 3599.98. Tax: first 900.00 untaxed; 2699.98 \u00d7 0.12 = 323.9976 \u2192 324.00 (no upper-rate portion since taxable pay is below the 3600.00 boundary) (R5). Net pay = 4093.39 \u2212 245.60 \u2212 247.81 \u2212 324.00 = 3275.98 (R6)."
}
Reasoning
We need to process payroll for gross_pay 4093.39, payroll_month 2026-06, allowed_deduction 247.81. The case supplies an authoritative reference schedule. Per R1, when supplied, its numeric values replace defaults. The payroll month 2026-06 is in first half, so use the first-half row: rate 0.06, cap 5000.00, deduction 400.00, free 900.00, upper 3600.00, middle_rate 0.12, upper_rate 0.24. Employee contribution: rate * min(gross, cap) = 0.06 * min(4093.39, 5000.00) = 0.06 * 4093.39 = 245.6034 → round to 245.60. Allowed deduction: 247.81. Check cap: deduction cap 400.00 — 247.81 ≤ 400.00 OK. Check gross minus contribution: 4093.39 - 245.60 = 3847.79. 247.81 ≤ 3847.79 OK. Taxable pay: gross - contribution - deduction = 4093.39 - 245.60 - 247.81 = 3599.98. Income tax: brackets: free 900.00, upper boundary 3600.00. - Portion up to 900: untaxed. - Portion above 900 up to 3600: 3600 - 900 = 2700 at 0.12 = 324.00. - Taxable pay is 3599.98, which is below upper boundary 3600, so no upper-rate portion. Total tax = 0.12 * (3599.98 - 900) = 0.12 * 2699.98 = 323.9976 → round half up = 324.00. Wait: R2 says do not round intermediate bracket products separately before summing income tax. So compute 323.9976, round to 324.00. Net pay: gross - contribution - deduction - tax = 4093.39 - 245.60 - 247.81 - 324.00 = 3275.98. Check: 4093.39 - 245.60 = 3847.79; 3847.79 - 247.81 = 3599.98; 3599.98 - 324.00 = 3275.98. Return JSON with decision calculate, currency LCR, gross_pay "4093.39", employee_contribution "245.60", allowed_deduction "247.81", taxable_pay "3599.98", income_tax "324.00", net_pay "3275.98", clauses: R1 (schedule selection), R2 (rounding), R3, R4, R5, R6. Citations: R1, R2, R3, R4, R5, R6.
Rollout #3 100.0% passed · 3.8s · $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": "4093.39",
"employee_contribution": "245.60",
"allowed_deduction": "247.81",
"taxable_pay": "3599.98",
"income_tax": "324.00",
"net_pay": "3275.98",
"clauses": ["R1", "R2", "R3", "R4", "R5", "R6"],
"explanation": "Payroll month 2026-06 selects the first-half row, and the authoritative case schedule replaces defaults (rate 0.06, cap 5000.00, deduction cap 400.00, tax-free 900.00, upper boundary 3600.00, middle 0.12, upper 0.24). Contribution = 0.06 \u00d7 4093.39 = 245.60 (R3). Allowed deduction 247.81 is within the 400.00 cap and gross minus contribution (3847.79) per R4. Taxable pay = 4093.39 \u2212 245.60 \u2212 247.81 = 3599.98 (R4). Tax: first 900.00 untaxed; 2699.98 \u00d7 0.12 = 323.9976; taxable pay stays below the 3600.00 upper boundary, so no upper-rate portion; total rounds to 324.00 (R5). Net pay = 4093.39 \u2212 245.60 \u2212 247.81 \u2212 324.00 = 3275.98 (R6)."
}
Reasoning
We need to process payroll for 2026-06, which is first-half. The case provides an authoritative reference schedule, which replaces defaults. First-half schedule from case: - rate: 0.06 - cap: 5000.00 - deduction: 400.00 - free: 900.00 - upper: 3600.00 - middle_rate: 0.12 - upper_rate: 0.24 Inputs: - gross_pay: 4093.39 - payroll_month: 2026-06 - allowed_deduction: 247.81 Step 1: Employee contribution = rate * min(gross, cap) = 0.06 * min(4093.39, 5000.00) = 0.06 * 4093.39 = 245.6034 → round half up to 245.60. Step 2: Allowed deduction check: must not exceed deduction cap (400.00) or gross minus rounded contribution = 4093.39 - 245.60 = 3847.79. 247.81 ≤ 400.00 and ≤ 3847.79. OK. Step 3: Taxable pay = gross - contribution - allowed deduction = 4093.39 - 245.60 - 247.81 = 3599.98. Let me compute: 4093.39 - 245.60 = 3847.79. 3847.79 - 247.81 = 3599.98. Yes. Step 4: Income tax: - Tax-free: 900.00 - Upper bracket begins at 3600.00 - Middle rate 0.12 applies to portion above 900 up to 3600: 3600 - 900 = 2700. Taxable pay is 3599.98, which is below 3600. So middle portion = 3599.98 - 900 = 2699.98. Tax = 0.12 * 2699.98 = 323.9976. - Upper portion: 0 (taxable below upper boundary). Total tax = 323.9976 → round half up to 324.00? 323.9976 rounds to 324.00 (since 323.9976 → third decimal is 7, so 324.00). Wait: 323.9976 to two decimals: 323.9976 → look at 323.99|76 → the fractional part beyond two decimals is 0.0076 ≥ 0.005, so rounds to 324.00. Yes, income_tax = 324.00. Step 5: Net pay = gross - contribution - deduction - tax = 4093.39 - 245.60 - 247.81 - 324.00 = ? 4093.39 - 245.60 = 3847.79. 3847.79 - 247.81 = 3599.98. 3599.98 - 324.00 = 3275.98. Net pay = 3275.98. Check: taxable 3599.98, tax 324.00, net = 3275.98. All good. Decision: calculate. Citations: R1 (schedule selection), R2 (rounding), R3 (contribution), R4 (deduction/taxable), R5 (tax), R6 (net pay/answer format). No amendment needed. Output JSON with fields: decision, currency, gross_pay, employee_contribution, allowed_deduction, taxable_pay, income_tax, net_pay, clauses. Optional explanation.