Luma Payroll Gym
← Heatmap / GLM 5.3 Flash · Task 90
GLM 5.3 Flash · Single-turn · Task 90 (Calculation, at the wage cap) 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 4999.99 4999.99 4999.99 4999.99
employee contribution 350.00 350.00 350.00 350.00
allowed deduction 355.71 355.71 355.71 355.71
taxable pay 4294.28 4294.28 4294.28 4294.28
income tax 536.74 536.74 536.74 536.74
net pay 3757.54 3757.54 3757.54 3757.54
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: {"9aeda9b75546629e-payroll": {"kind": "payroll", "record": {"gross_pay": "4999.99", "payroll_month": "2026-02", "allowed_deduction": "355.71"}}, "9aeda9b75546629e-contract": {"kind": "contract", "gross_pay": "4999.99"}}
Authoritative case reference schedule: {"first-half": {"rate": "0.07", "cap": "5000.00", "deduction": "400.00", "free": "900.00", "upper": "3000.00", "middle_rate": "0.12", "upper_rate": "0.22"}, "second-half": {"rate": "0.06", "cap": "5000.00", "deduction": "400.00", "free": "1000.00", "upper": "2800.00", "middle_rate": "0.08", "upper_rate": "0.22"}}
Rollouts
Rollout #1 100.0% passed · 7.1s · $0.0007
ComponentScoreClauses
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": "4999.99",
  "employee_contribution": "350.00",
  "allowed_deduction": "355.71",
  "taxable_pay": "4294.28",
  "income_tax": "536.74",
  "net_pay": "3757.54",
  "clauses": ["R1", "R2", "R3", "R4", "R5", "R6"],
  "explanation": "Payroll month 2026-02 selects the case schedule's first-half row (rate 0.07, cap 5000.00, deduction cap 400.00, free 900.00, upper 3000.00, middle 0.12, upper rate 0.22). Contribution: 0.07 x min(4999.99, 5000.00) = 349.9993 -> 350.00. Deduction 355.71 is within the 400.00 cap and below gross minus contribution (4649.99). Taxable pay: 4999.99 - 350.00 - 355.71 = 4294.28. Tax: (3000.00 - 900.00) x 0.12 = 252.00 plus (4294.28 - 3000.00) x 0.22 = 284.7416, total 536.7416 -> 536.74. Net pay: 4999.99 - 350.00 - 355.71 - 536.74 = 3757.54. Contract gross pay matches the payroll record, so no amendment is needed."
}
Reasoning
Let me work through this payroll case.

Inputs:
- gross_pay: "4999.99"
- payroll_month: "2026-02" → first-half row
- allowed_deduction: "355.71"
- contract gross_pay: "4999.99" — matches gross_pay, so no conflict (R9: matching contract values require no amendment).
- Authoritative case schedule supplied: first-half: rate 0.07, cap 5000.00, deduction 400.00, free 900.00, upper 3000.00, middle_rate 0.12, upper_rate 0.22.

Per R1, when a case schedule is supplied, its numeric values replace defaults. Payroll month 2026-02 → first-half row.

Step 1: Employee contribution (R3): rate 0.07 × min(gross 4999.99, cap 5000.00) = 0.07 × 4999.99 = 349.9993. Round half-up to two decimals: 350.00.

Wait — 349.9993 rounds to 350.00? Round to two decimals: 349.9993 → third decimal is 9, so 349.99 + ... let's compute: 349.9993 → two decimal places: look at digits after second decimal: 349.99|93 → the part beyond is 0.0093... Actually 349.9993 = 349.99 + 0.0093. Rounding to two decimals: 0.0093 ≥ 0.005, so rounds up to 350.00. Yes, 350.00.

Step 2: Allowed deduction check (R4): must not exceed deduction cap (400.00) or gross pay minus rounded contribution: 4999.99 − 350.00 = 4649.99. Deduction 355.71 ≤ 400.00 and ≤ 4649.99. OK.

Step 3: Taxable pay (R4): gross − contribution − deduction = 4999.99 − 350.00 − 355.71 = 4294.28.

Compute: 4999.99 − 350.00 = 4649.99; 4649.99 − 355.71 = 4294.28.

Step 4: Income tax (R5): free = 900.00, upper boundary = 3000.00.
- Portion up to 900: untaxed.
- Portion 900 to 3000: 2100.00 × 0.12 = 252.00.
- Portion above 3000: 4294.28 − 3000.00 = 1294.28 × 0.22 = 284.7416.

Total = 252.00 + 284.7416 = 536.7416 → round half-up → 536.74.

Step 5: Net pay (R6): 4999.99 − 350.00 − 355.71 − 536.74 = ?

4999.99 − 350.00 = 4649.99; − 355.71 = 4294.28; − 536.74 = 3757.54.

Check: 4294.28 − 536.74 = 3757.54. Yes.

Fields:
- decision: "calculate"
- currency: "LCR"
- gross_pay: "4999.99"
- employee_contribution: "350.00"
- allowed_deduction: "355.71"
- taxable_pay: "4294.28"
- income_tax: "536.74"
- net_pay: "3757.54"
- clauses: R1, R2, R3, R4, R5, R6. Contract matches gross pay, so no amendment needed — no R9 citation needed.

Citation requirements: calculated answers cite R1 through R6; R9 only when amendment needed. So clauses: ["R1","R2","R3","R4","R5","R6"].

Optionally include explanation. Keep it brief.

JSON without markdown fences, one object.
Rollout #2 100.0% passed · 6.1s · $0.0006
ComponentScoreClauses
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": "4999.99",
  "employee_contribution": "350.00",
  "allowed_deduction": "355.71",
  "taxable_pay": "4294.28",
  "income_tax": "536.74",
  "net_pay": "3757.54",
  "clauses": ["R1", "R2", "R3", "R4", "R5", "R6"],
  "explanation": "Payroll month 2026-02 selects the first-half row of the case schedule (R1). Contribution: 0.07 x min(4999.99, 5000.00) = 349.9993, rounded to 350.00 (R3). Deduction 355.71 is within the 400.00 cap and within gross minus contribution (R4). Taxable pay: 4999.99 - 350.00 - 355.71 = 4294.28 (R4). Tax: first 900.00 untaxed, 2100.00 x 0.12 = 252.00, plus 1294.28 x 0.22 = 284.7416; total 536.7416 rounded to 536.74 (R5). Net pay: 4999.99 - 350.00 - 355.71 - 536.74 = 3757.54 (R6). Contract gross matches payroll gross, so no amendment is needed."
}
Reasoning
Let me work through this payroll calculation.

Input:
- gross_pay: 4999.99
- payroll_month: 2026-02
- allowed_deduction: 355.71
- contract gross_pay: 4999.99 (matches, so no conflict)
- Case reference schedule supplied: first-half: rate 0.07, cap 5000.00, deduction 400.00, free 900.00, upper 3000.00, middle_rate 0.12, upper_rate 0.22

Payroll month 2026-02 → first-half row. Use the case schedule's first-half values (per R1, case schedule replaces defaults).

Step 1: Employee contribution (R3): rate 0.07 × min(4999.99, 5000.00) = 0.07 × 4999.99 = 349.9993 → round to 350.00.

Wait: 0.07 × 4999.99 = 349.9993. Round half-up to two decimals: 350.00. Hmm, 349.9993 → 350.00. Yes.

Step 2: Allowed deduction check (R4): deduction cap = 400.00. Gross pay minus contribution = 4999.99 − 350.00 = 4649.99. Allowed deduction 355.71 ≤ 400.00 and ≤ 4649.99. Valid. Use 355.71.

Step 3: Taxable pay (R4): 4999.99 − 350.00 − 355.71 = 4294.28.

Step 4: Income tax (R5): first-half schedule: free = 900.00, upper = 3000.00, middle_rate = 0.12, upper_rate = 0.22.

Taxable pay = 4294.28.
- Portion up to 900.00: untaxed.
- Portion 900.00 to 3000.00: 2100.00 × 0.12 = 252.00.
- Portion above 3000.00: 4294.28 − 3000.00 = 1294.28 × 0.22 = 284.7416.

Total = 252.00 + 284.7416 = 536.7416 → round to 536.74.

Step 5: Net pay (R6): 4999.99 − 350.00 − 355.71 − 536.74 = ?

4999.99 − 350.00 = 4649.99
4649.99 − 355.71 = 4294.28
4294.28 − 536.74 = 3757.54.

Net pay = 3757.54.

Let me double check the contribution: 0.07 × 4999.99 = 349.9993. Round half-up: 349.9993 → third decimal is 9, so round up second decimal: 349.99 + 0.01 = 350.00. Yes, 350.00.

Taxable pay: 4294.28.

Tax: middle band: 3000.00 − 900.00 = 2100.00 × 0.12 = 252.00. Upper band: 4294.28 − 3000.00 = 1294.28 × 0.22 = 284.7416. Sum = 536.7416 → 536.74.

Net: 3757.54.

Contract gross matches payroll gross (4999.99 = 4999.99), so no amendment needed, no R9 citation.

Clauses: R1 (row selection, case schedule), R2 (rounding), R3 (contribution), R4 (deduction/taxable), R5 (tax), R6 (net pay/answer).

Output JSON:
{
  "decision": "calculate",
  "currency": "LCR",
  "gross_pay": "4999.99",
  "employee_contribution": "350.00",
  "allowed_deduction": "355.71",
  "taxable_pay": "4294.28",
  "income_tax": "536.74",
  "net_pay": "3757.54",
  "clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]
}

Maybe include an explanation. Optional. I'll include a brief explanation.
Rollout #3 100.0% passed · 5.2s · $0.0005
ComponentScoreClauses
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": "4999.99",
  "employee_contribution": "350.00",
  "allowed_deduction": "355.71",
  "taxable_pay": "4294.28",
  "income_tax": "536.74",
  "net_pay": "3757.54",
  "clauses": ["R1", "R2", "R3", "R4", "R5", "R6"],
  "explanation": "Payroll month 2026-02 selects the first-half row of the case schedule (R1). Contribution: 0.07 \u00d7 min(4999.99, 5000.00) = 349.9993 \u2192 350.00 (R3). Allowed deduction 355.71 is within the 400.00 cap and within gross pay minus contribution (R4). Taxable pay: 4999.99 \u2212 350.00 \u2212 355.71 = 4294.28. Tax: 0 on first 900.00; 0.12 \u00d7 (3000.00 \u2212 900.00) = 252.00; 0.22 \u00d7 (4294.28 \u2212 3000.00) = 284.7416; total 536.7416 \u2192 536.74 (R5). Net pay: 4999.99 \u2212 350.00 \u2212 355.71 \u2212 536.74 = 3757.54 (R6). Contract gross pay matches the payroll record, so no amendment is needed."
}
Reasoning
Let me process this payroll record.

Inputs:
- gross_pay: "4999.99"
- payroll_month: "2026-02"
- allowed_deduction: "355.71"
- contract gross_pay: "4999.99" (matches, so no conflict)
- Case reference schedule: first-half: rate 0.07, cap 5000.00, deduction 400.00, free 900.00, upper 3000.00, middle_rate 0.12, upper_rate 0.22

Payroll month 2026-02 is in first-half. The case schedule exists, so its values replace defaults.

Steps:
1. Employee contribution = rate 0.07 × min(4999.99, 5000.00) = 0.07 × 4999.99 = 349.9993 → round to 350.00 (round-half-up at two decimals: 349.9993 → 350.00? Wait, 349.9993 rounds to 350.00? Let's compute: 349.9993, rounding to two decimals: the third decimal is 9, so 349.99 + 0.01 = 350.00. Actually 349.9993 → two decimals: look at 349.9993; the digits are 349.99|93, the part after two decimals is 0.0093 which is ≥ 0.005, so round up: 350.00. Yes, 350.00.

2. Allowed deduction check: cap 400.00; gross pay minus rounded contribution = 4999.99 − 350.00 = 4649.99. Deduction 355.71 ≤ 400.00 and ≤ 4649.99. OK.

3. Taxable pay = 4999.99 − 350.00 − 355.71 = 4294.28.

4. Income tax:
- Tax-free: 900.00
- Upper bracket begins: 3000.00
- Middle rate: 0.12 on portion from 900.00 to 3000.00 = 2100.00 × 0.12 = 252.00
- Upper rate: 0.22 on portion above 3000.00 = 4294.28 − 3000.00 = 1294.28 × 0.22 = 284.7416
- Total = 252.00 + 284.7416 = 536.7416 → round to 536.74.

5. Net pay = 4999.99 − 350.00 − 355.71 − 536.74 = 3757.54.

Check: 4999.99 − 350.00 = 4649.99; 4649.99 − 355.71 = 4294.28; 4294.28 − 536.74 = 3757.54.

Contract matches gross pay, so no amendment needed; cite R1–R6.

Output JSON:
{
  "decision": "calculate",
  "currency": "LCR",
  "gross_pay": "4999.99",
  "employee_contribution": "350.00",
  "allowed_deduction": "355.71",
  "taxable_pay": "4294.28",
  "income_tax": "536.74",
  "net_pay": "3757.54",
  "clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]
}