Luma Payroll Gym
← Heatmap / MiMo V2.6 Pro · Task 7
MiMo V2.6 Pro · Tool use · Task 7 (Calculation, wage cap binds) 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 8370.45 8370.45 8370.45 8370.45
employee contribution 200.00 200.00 200.00 200.00
allowed deduction 370.62 370.62 370.62 370.62
taxable pay 7799.83 7799.83 7799.83 7799.83
income tax 1267.96 1267.96 1267.96 1267.96
net pay 6531.87 6531.87 6531.87 6531.87
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.
Retrieve the case inputs with list_documents and read_document. Reference rows are available only through lookup_reference. Use calculate for exact decimal arithmetic.
Rollouts
Rollout #1 100.0% passed · 5 tool calls · 27.5s · $0.0015
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
list_documents()
Reasoning
Let me start by listing the documents.
Tool
[
  {"id": "9869ba945ef7380b-payroll", "kind": "payroll"}
]
Assistant
read_document(document_id="9869ba945ef7380b-payroll")
Reasoning
Read the payroll document.
Tool
{
  "kind": "payroll",
  "record": {"gross_pay": "8370.45", "payroll_month": "2026-05", "allowed_deduction": "370.62"}
}
Assistant
lookup_reference(reference="first-half")lookup_reference(reference="second-half")
Reasoning
No contract_gross_pay, no amendment. Payroll month 2026-05 → first-half (January–June presumably). Let me look up first-half reference.
Tool
{
  "reference": "first-half",
  "months": ["2026-01", "2026-06"],
  "rate": "0.04",
  "cap": "5000.00",
  "deduction": "400.00",
  "free": "1000.00",
  "upper": "3600.00",
  "middle_rate": "0.10",
  "upper_rate": "0.24"
}
Tool
{
  "reference": "second-half",
  "months": ["2026-07", "2026-12"],
  "rate": "0.04",
  "cap": "4000.00",
  "deduction": "400.00",
  "free": "1000.00",
  "upper": "3600.00",
  "middle_rate": "0.12",
  "upper_rate": "0.22"
}
Assistant
calculate(program="contribution_base = min(8370.45, 5000.00)\nemployee_contribution = round(contribution_base * 0.04, 2)\nallowed_deduction = min(370.62, 400.00, 8370.45 - employee_contribution)\ntaxable_pay = 8370.45 - employee_contribution - allowed_deduction\nbracket_middle = min(taxable_pay, 3600.00) - 1000.00\nbracket_upper = max(taxable_pay - 3600.00, 0)\nincome_tax = round(bracket_middle * 0.10 + bracket_upper * 0.24, 2)\nnet_pay = round(8370.45 - employee_contribution - allowed_deduction - income_tax, 2)")
Reasoning
Payroll month 2026-05 falls in first-half (2026-01 to 2026-06). Row: rate 0.04, cap 5000.00, deduction cap 400.00, free 1000.00, upper 3600.00, middle_rate 0.10, upper_rate 0.24.

Gross: 8370.45. Allowed deduction: 370.62 ≤ 400.00 cap. Also must not exceed gross - contribution = 8370.45 -334.82 = 8035.63. OK.

Contribution = 0.04 * min(8370.45, 5000.00) = 0.04 * 5000 = 200.00.

Taxable = 8370.45 - 200.00 - 370.62 = 7799.83.

Tax: free 1000 untaxed. 1000 to 3600 → 2600 * 0.10 = 260.00. Above 3600: 7799.83 - 3600 = 4199.83 * 0.24 = 1007.9592. Total = 260 + 1007.9592 = 1267.9592 → 1267.96.

Net = 8370.45 - 200.00 - 370.62 - 1267.96 = 6531.87.

Let me verify with calculate.
Tool
{
  "results": {"contribution_base": "5000.00", "employee_contribution": "200.00", "allowed_deduction": "370.62", "taxable_pay": "7799.83", "bracket_middle": "2600.00", "bracket_upper": "4199.83", "income_tax": "1267.96", "net_pay": "6531.87"}
}
Assistant
{
  "decision": "calculate",
  "currency": "LCR",
  "gross_pay": "8370.45",
  "employee_contribution": "200.00",
  "allowed_deduction": "370.62",
  "taxable_pay": "7799.83",
  "income_tax": "1267.96",
  "net_pay": "6531.87",
  "clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]
}
Reasoning
All values check out. Return R6 JSON with clauses R1-R6.
Rollout #2 100.0% passed · 5 tool calls · 25.6s · $0.0017
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
list_documents()
Reasoning
Let me start by listing documents.
Tool
[
  {"id": "9869ba945ef7380b-payroll", "kind": "payroll"}
]
Assistant
read_document(document_id="9869ba945ef7380b-payroll")
Reasoning
Read the payroll document.
Tool
{
  "kind": "payroll",
  "record": {"gross_pay": "8370.45", "payroll_month": "2026-05", "allowed_deduction": "370.62"}
}
Assistant
lookup_reference(reference="first-half")lookup_reference(reference="second-half")
Reasoning
Payroll month 2026-05 → first-half reference. Lookup.
Tool
{
  "reference": "first-half",
  "months": ["2026-01", "2026-06"],
  "rate": "0.04",
  "cap": "5000.00",
  "deduction": "400.00",
  "free": "1000.00",
  "upper": "3600.00",
  "middle_rate": "0.10",
  "upper_rate": "0.24"
}
Tool
{
  "reference": "second-half",
  "months": ["2026-07", "2026-12"],
  "rate": "0.04",
  "cap": "4000.00",
  "deduction": "400.00",
  "free": "1000.00",
  "upper": "3600.00",
  "middle_rate": "0.12",
  "upper_rate": "0.22"
}
Assistant
calculate(program="contribution = round(min(8370.45, 5000.00) * 0.04, 2)\ndeduction = min(370.62, 400.00, 8370.45 - contribution)\ntaxable = 8370.45 - contribution - deduction\ntax_mid = max(0.00, min(taxable, 3600.00) - 1000.00) * 0.10\ntax_upper = max(0.00, taxable - 3600.00) * 0.24\nincome_tax = round(tax_mid + tax_upper, 2)\nnet_pay = 8370.45 - contribution - deduction - income_tax")
Reasoning
2026-05 falls in first-half (2026-01 through 2026-06). Wait, months listed ["2026-01","2026-06"] — likely a range from 2026-01 to 2026-06. First-half applies.

Values: rate 0.04, cap 5000.00, deduction cap 400.00, free 1000.00, upper 3600.00, middle_rate 0.10, upper_rate 0.24.

gross_pay = 8370.45, allowed_deduction = 370.62 (≤ 400.00 and ≤ gross - contribution).

Contribution = round(min(8370.45, 5000.00) * 0.04, 2) = 5000 * 0.04 = 200.00.

Taxable = 8370.45 - 200.00 - 370.62 = 7799.83.

Tax: free 1000 → 0. 1000→3600: 2600 * 0.10 = 260.00. Above 3600: 7799.83 - 3600 = 4199.83 * 0.24 = 1007.9592 → but don't round intermediate products separately before summing. Total = 260 + 1007.9592 = 1267.9592 → round = 1267.96.

Net = 8370.45 - 200.00 - 370.62 - 1267.96 = 6531.87.

Check: 8370.45 - 200 = 8170.45; -370.62 = 7799.83; -1267.96 = 6531.87. Yes.

Use calculate for exactness.
Tool
{
  "results": {"contribution": "200.00", "deduction": "370.62", "taxable": "7799.83", "tax_mid": "260.0000", "tax_upper": "1007.9592", "income_tax": "1267.96", "net_pay": "6531.87"}
}
Assistant
{
  "decision": "calculate",
  "currency": "LCR",
  "gross_pay": "8370.45",
  "employee_contribution": "200.00",
  "allowed_deduction": "370.62",
  "taxable_pay": "7799.83",
  "income_tax": "1267.96",
  "net_pay": "6531.87",
  "clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]
}
Reasoning
All values confirmed. Return JSON.
Rollout #3 100.0% passed · 5 tool calls · 27.3s · $0.0018
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
list_documents()
Reasoning
Let me list documents first.
Tool
[
  {"id": "9869ba945ef7380b-payroll", "kind": "payroll"}
]
Assistant
read_document(document_id="9869ba945ef7380b-payroll")
Reasoning
Read the payroll document.
Tool
{
  "kind": "payroll",
  "record": {"gross_pay": "8370.45", "payroll_month": "2026-05", "allowed_deduction": "370.62"}
}
Assistant
lookup_reference(reference="first-half")lookup_reference(reference="second-half")
Reasoning
No contract_gross_pay, no amendment. Payroll month 2026-05 → second-half? Wait, need to check which reference covers 2026-05. First-half vs second-half. 2026-05 is May, likely first-half (Jan-Jun). But lookup both to be careful? The reference lookup returns effective months. Let me lookup first-half.

Actually, I should check both to determine which covers May. Let me lookup first-half and second-half.
Tool
{
  "reference": "first-half",
  "months": ["2026-01", "2026-06"],
  "rate": "0.04",
  "cap": "5000.00",
  "deduction": "400.00",
  "free": "1000.00",
  "upper": "3600.00",
  "middle_rate": "0.10",
  "upper_rate": "0.24"
}
Tool
{
  "reference": "second-half",
  "months": ["2026-07", "2026-12"],
  "rate": "0.04",
  "cap": "4000.00",
  "deduction": "400.00",
  "free": "1000.00",
  "upper": "3600.00",
  "middle_rate": "0.12",
  "upper_rate": "0.22"
}
Assistant
calculate(program="employee_contribution = round(min(8370.45, 5000.00) * 0.04, 2)\nallowed_deduction = 370.62\ntaxable_pay = 8370.45 - employee_contribution - allowed_deduction\ntax_middle = (min(taxable_pay, 3600.00) - 1000.00) * 0.10\ntax_upper = max(taxable_pay - 3600.00, 0) * 0.24\nincome_tax = round(tax_middle + tax_upper, 2)\nnet_pay = 8370.45 - employee_contribution - allowed_deduction - income_tax")
Reasoning
2026-05 falls in first-half row (2026-01 through 2026-06).

Rate 0.04, cap 5000.00, deduction cap 400.00, free 1000.00, upper 3600.00, middle_rate 0.10, upper_rate 0.24.

gross_pay = 8370.45
employee_contribution = round(min(8370.45, 5000.00) * 0.04, 2) = 5000 * 0.04 = 200.00
allowed_deduction = 370.62 ≤ min(400.00, 8370.45 - 200.00 = 8170.45) ✓
taxable_pay = 8370.45 - 200.00 - 370.62 = 7799.83
income tax: up to 1000 untaxed; 1000 to 3600: 2600 * 0.10 = 260.00; above 3600: 7799.83 - 3600 = 4199.83 * 0.24 = 1007.9592. Sum = 260 + 1007.9592 = 1267.9592 → round 1267.96.
net_pay = 8370.45 - 200.00 - 370.62 - 1267.96 = 6431.87.

Let me verify with calculate.
Tool
{
  "results": {"employee_contribution": "200.00", "allowed_deduction": "370.62", "taxable_pay": "7799.83", "tax_middle": "260.0000", "tax_upper": "1007.9592", "income_tax": "1267.96", "net_pay": "6531.87"}
}
Assistant
{
  "decision": "calculate",
  "currency": "LCR",
  "gross_pay": "8370.45",
  "employee_contribution": "200.00",
  "allowed_deduction": "370.62",
  "taxable_pay": "7799.83",
  "income_tax": "1267.96",
  "net_pay": "6531.87",
  "clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]
}
Reasoning
Net pay = 6531.87. Let me verify: 8370.45 - 200.00 = 8170.45; - 370.62 = 7799.83; - 1267.96 = 6531.87. Yes,7799.83 - 1267.96 = 6531.87. Correct.