← Heatmap / MiMo V2.6 Pro · Task 19
MiMo V2.6 Pro · Tool use · Task 19 (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 | 4326.01 | 4326.01 | 4326.01 | 4326.01 |
| employee contribution | 302.82 | 302.82 | 302.82 | 302.82 |
| allowed deduction | 386.64 | 386.64 | 386.64 | 386.64 |
| taxable pay | 3636.55 | 3636.55 | 3636.55 | 3636.55 |
| income tax | 198.58 | 198.58 | 198.58 | 198.58 |
| net pay | 3437.97 | 3437.97 | 3437.97 | 3437.97 |
| 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 · 4 tool calls · 16.3s · $0.0013
| 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
list_documents()Reasoning
Let's start by listing documents.
Tool
[
{"id": "f8d9f5fe0eb33c57-payroll", "kind": "payroll"}
]
Assistant
read_document(document_id="f8d9f5fe0eb33c57-payroll")Reasoning
Read the payroll document.
Tool
{
"kind": "payroll",
"record": {"gross_pay": "4326.01", "payroll_month": "2026-03", "allowed_deduction": "386.64"}
}
Assistant
lookup_reference(reference="first-half")Reasoning
Payroll month 2026-03 is in the first half of 2026. Let me look up the reference.
Tool
{
"reference": "first-half",
"months": ["2026-01", "2026-06"],
"rate": "0.07",
"cap": "4500.00",
"deduction": "400.00",
"free": "1200.00",
"upper": "3600.00",
"middle_rate": "0.08",
"upper_rate": "0.18"
}
Assistant
calculate(program="contribution = round(min(4326.01, 4500.00) * 0.07, 2)\nallowed = 386.64\ntaxable = 4326.01 - contribution - allowed\ntax_mid = max(min(taxable, 3600.00) - 1200.00, 0) * 0.08\ntax_upper = max(taxable - 3600.00, 0) * 0.18\nincome_tax = round(tax_mid + tax_upper, 2)\nnet = 4326.01 - contribution - allowed - income_tax")Reasoning
Gross pay 4326.01, cap 4500, rate 0.07. Contribution = round(min(4326.01, 4500) * 0.07, 2) = round(302.8207, 2) = 302.82. Allowed deduction 386.64 ≤ deduction cap 400.00, and ≤ gross - contribution = 4326.01 - 302.82 = 4023.19. OK. Taxable pay = 4326.01 - 302.82 - 386.64 = 3636.55. Tax: free 1200, upper 3600, middle_rate 0.08, upper_rate 0.18. Portion up to 1200: untaxed. Portion 1200 to 3600: 2400 * 0.08 = 192. Portion above 3600: 3636.55 - 3600 = 36.55 * 0.18 = 6.579 → sum = 192 + 6.579 = 198.579 → round total = 198.58. Net pay = 4326.01 - 302.82 - 386.64 - 198.58 = 3437.97. Let me verify with calculate.
Tool
{
"results": {"contribution": "302.82", "allowed": "386.64", "taxable": "3636.55", "tax_mid": "192.0000", "tax_upper": "6.5790", "income_tax": "198.58", "net": "3437.97"}
}
Assistant
{
"decision": "calculate",
"currency": "LCR",
"gross_pay": "4326.01",
"employee_contribution": "302.82",
"allowed_deduction": "386.64",
"taxable_pay": "3636.55",
"income_tax": "198.58",
"net_pay": "3437.97",
"clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]
}
Reasoning
All checks pass. Return the R6 JSON.
Rollout #2 100.0% passed · 5 tool calls · 19.4s · $0.0015
| 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
list_documents()Reasoning
Let me list documents.
Tool
[
{"id": "f8d9f5fe0eb33c57-payroll", "kind": "payroll"}
]
Assistant
read_document(document_id="f8d9f5fe0eb33c57-payroll")Reasoning
Read the payroll document.
Tool
{
"kind": "payroll",
"record": {"gross_pay": "4326.01", "payroll_month": "2026-03", "allowed_deduction": "386.64"}
}
Assistant
lookup_reference(reference="first-half")lookup_reference(reference="second-half")Reasoning
March 2026 — which reference row? Need lookup_reference. Likely first-half covers Jan–Jun, second-half Jul–Dec. Let me check both? The rules say "Read first-half or second-half payroll reference rates and effective months." Effective months matter. Let me lookup first-half.
Tool
{
"reference": "first-half",
"months": ["2026-01", "2026-06"],
"rate": "0.07",
"cap": "4500.00",
"deduction": "400.00",
"free": "1200.00",
"upper": "3600.00",
"middle_rate": "0.08",
"upper_rate": "0.18"
}
Tool
{
"reference": "second-half",
"months": ["2026-07", "2026-12"],
"rate": "0.05",
"cap": "4500.00",
"deduction": "400.00",
"free": "1200.00",
"upper": "3600.00",
"middle_rate": "0.08",
"upper_rate": "0.22"
}
Assistant
calculate(program="contribution = round(min(4326.01, 4500.00) * 0.07, 2)\ndeduction_check = max(386.64, 0.00)\ntaxable_pay = 4326.01 - contribution - 386.64\nmiddle_tax = min(max(taxable_pay - 1200.00, 0.00), 3600.00 - 1200.00) * 0.08\nupper_tax = max(taxable_pay - 3600.00, 0.00) * 0.18\nincome_tax = round(middle_tax + upper_tax, 2)\nnet_pay = 4326.01 - contribution - 386.64 - income_tax")Reasoning
Payroll month 2026-03 → first-half row: rate 0.07, cap 4500.00, deduction cap 400.00, free 1200, upper 3600, middle0.08, upper 0.18. gross = 4326.01, contribution = round(min(4326.01, 4500) * 0.07, 2) = round(302.8207, 2) = 302.82. allowed_deduction = 386.64 ≤ 400 and ≤ gross - contribution = 4326.01 - 302.82 = 4023.19. OK. taxable = 4326.01 - 302.82 - 386.64 = 3636.55. Tax: free 1200 untaxed. Portion from 1200 to 3600 = 2400 * 0.08 = 192.00. Portion above 3600 = 3636.55 - 3600 = 36.55 * 0.18 = 6.579. Total = 198.579 → round 198.58. But rule: don't round intermediate products separately before summing. So compute exactly then round. net = 4326.01 - 302.82 - 386.64 - 198.58 = 3437.97. Let me verify with calculate.
Tool
{
"results": {"contribution": "302.82", "deduction_check": "386.64", "taxable_pay": "3636.55", "middle_tax": "192.0000", "upper_tax": "6.5790", "income_tax": "198.58", "net_pay": "3437.97"}
}
Assistant
{
"decision": "calculate",
"currency": "LCR",
"gross_pay": "4326.01",
"employee_contribution": "302.82",
"allowed_deduction": "386.64",
"taxable_pay": "3636.55",
"income_tax": "198.58",
"net_pay": "3437.97",
"clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]
}
Reasoning
All checks pass. Return JSON.
Rollout #3 100.0% passed · 4 tool calls · 18.8s · $0.0013
| 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
list_documents()Reasoning
Let me list documents first.
Tool
[
{"id": "f8d9f5fe0eb33c57-payroll", "kind": "payroll"}
]
Assistant
read_document(document_id="f8d9f5fe0eb33c57-payroll")Reasoning
Read the payroll document.
Tool
{
"kind": "payroll",
"record": {"gross_pay": "4326.01", "payroll_month": "2026-03", "allowed_deduction": "386.64"}
}
Assistant
lookup_reference(reference="first-half")Reasoning
Payroll month 2026-03 → first-half reference. Let me lookup the first-half reference.
Tool
{
"reference": "first-half",
"months": ["2026-01", "2026-06"],
"rate": "0.07",
"cap": "4500.00",
"deduction": "400.00",
"free": "1200.00",
"upper": "3600.00",
"middle_rate": "0.08",
"upper_rate": "0.18"
}
Assistant
calculate(program="contribution = round(min(4326.01, 4500.00) * 0.07, 2)\nallowed = 386.64\ntaxable = 4326.01 - contribution - allowed\ntax = (min(taxable, 3600.00) - 1200.00) * 0.08 + max(taxable - 3600.00, 0) * 0.18\nincome_tax = round(tax, 2)\nnet = 4326.01 - contribution - allowed - income_tax")Reasoning
Gross pay 4326.01, month 2026-03 → first-half row applies. Rate 0.07, cap 4500, deduction cap 400, free 1200, upper 3600, middle_rate 0.08, upper_rate 0.18. Employee contribution = round(min(4326.01, 4500) * 0.07, 2) = round(4326.01 * 0.07, 2) = 302.8207 → 302.82. Allowed deduction 386.64 ≤ 400 cap, and ≤ gross - contribution = 4326.01 - 302.82 = 4023.19. OK. Taxable pay = 4326.01 - 302.82 - 386.64 = 3636.55. Income tax: free 1200 untaxed. Portion from 1200 to 3600 = 2400 * 0.08 = 192. Portion above 3600 = 3636.55 - 3600 = 36.55 * 0.18 = 6.579. Total = 192 + 6.579 = 198.579 → round half up → 198.58. Note: "Do not round intermediate bracket products separately before summing income tax." So sum then round: 198.579 → 198.58. Net pay = 4326.01 - 302.82 - 386.64 - 198.58 = 3437.97. Let me verify with calculate.
Tool
{
"results": {"contribution": "302.82", "allowed": "386.64", "taxable": "3636.55", "tax": "198.5790", "income_tax": "198.58", "net": "3437.97"}
}
Assistant
{
"decision": "calculate",
"currency": "LCR",
"gross_pay": "4326.01",
"employee_contribution": "302.82",
"allowed_deduction": "386.64",
"taxable_pay": "3636.55",
"income_tax": "198.58",
"net_pay": "3437.97",
"clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]
}
Reasoning
All values confirmed. Return JSON.