← Heatmap / MiMo V2.6 Pro · Task 31
MiMo V2.6 Pro · Tool use · Task 31 (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 | 3941.14 | 3941.14 | 3941.14 | 3941.14 |
| employee contribution | 197.06 | 197.06 | 197.06 | 197.06 |
| allowed deduction | 197.94 | 197.94 | 197.94 | 197.94 |
| taxable pay | 3546.14 | 3546.14 | 3546.14 | 3546.14 |
| income tax | 390.15 | 390.15 | 390.15 | 390.15 |
| net pay | 3155.99 | 3155.99 | 3155.99 | 3155.99 |
| 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 · 26.2s · $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's list documents first.
Tool
[
{"id": "c0b4647b43710bd2-payroll", "kind": "payroll"},
{"id": "c0b4647b43710bd2-contract", "kind": "contract"}
]
Assistant
read_document(document_id="c0b4647b43710bd2-payroll")read_document(document_id="c0b4647b43710bd2-contract")Reasoning
Read both documents.
Tool
{
"kind": "payroll",
"record": {"gross_pay": "3941.14", "payroll_month": "2026-03", "allowed_deduction": "197.94"}
}
Tool
{
"kind": "contract",
"gross_pay": "3941.14"
}
Assistant
lookup_reference(reference="first-half")Reasoning
Payroll month 2026-03 → first-half reference (first-half presumably covers months 01-06). Gross pay 3941.14, contract matches. Allowed deduction 197.94, must not exceed deduction cap or gross minus contribution. Lookup first-half.
Tool
{
"reference": "first-half",
"months": ["2026-01", "2026-06"],
"rate": "0.05",
"cap": "5000.00",
"deduction": "400.00",
"free": "900.00",
"upper": "3300.00",
"middle_rate": "0.14",
"upper_rate": "0.22"
}
Assistant
calculate(program="contribution = round(min(3941.14, 5000.00) * 0.05, 2)\ntaxable = 3941.14 - contribution - 197.94\nmiddle_part = min(max(taxable - 900.00, 0.00), 3300.00 - 900.00)\nupper_part = max(taxable - 3300.00, 0.00)\nincome_tax = round(middle_part * 0.14 + upper_part * 0.22, 2)\nnet_pay = 3941.14 - contribution - 197.94 - income_tax")Reasoning
Compute: - contribution = round(min(3941.14, 5000) * 0.05, 2) = round(197.057, 2) = 197.06 - allowed_deduction 197.94 ≤ 400 and ≤ 3941.14 - 197.06 = 3744.08. OK. - taxable = 3941.14 - 197.06 - 197.94 = 3546.14 - tax: free 900 untaxed. 3546.14 - 900 = 2646.14; upper boundary 3300. Portion from 900 to 3300 = 2400 * 0.14 = 336.00. Portion above 3300 = 3546.14 - 3300 = 246.14 * 0.22 = 54.1508. Sum = 336 + 54.1508 = 390.1508 → round 390.15. - net = 3941.14 - 197.06 - 197.94 - 390.15 = 3155.99 Let me verify with calculate.
Tool
{
"results": {"contribution": "197.06", "taxable": "3546.14", "middle_part": "2400.00", "upper_part": "246.14", "income_tax": "390.15", "net_pay": "3155.99"}
}
Assistant
{
"decision": "calculate",
"currency": "LCR",
"gross_pay": "3941.14",
"employee_contribution": "197.06",
"allowed_deduction": "197.94",
"taxable_pay": "3546.14",
"income_tax": "390.15",
"net_pay": "3155.99",
"clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]
}
Reasoning
All checks pass. Contract matches gross pay — no conflict. Return JSON.
Rollout #2 100.0% passed · 5 tool calls · 30.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 start by listing documents.
Tool
[
{"id": "c0b4647b43710bd2-payroll", "kind": "payroll"},
{"id": "c0b4647b43710bd2-contract", "kind": "contract"}
]
Assistant
read_document(document_id="c0b4647b43710bd2-payroll")read_document(document_id="c0b4647b43710bd2-contract")Reasoning
Read both documents.
Tool
{
"kind": "payroll",
"record": {"gross_pay": "3941.14", "payroll_month": "2026-03", "allowed_deduction": "197.94"}
}
Tool
{
"kind": "contract",
"gross_pay": "3941.14"
}
Assistant
lookup_reference(reference="first-half")Reasoning
Payroll month is 2026-03, which is first-half (Jan-Jun). Gross pay 3941.14 matches contract 3941.14 — no conflict. Lookup first-half reference.
Tool
{
"reference": "first-half",
"months": ["2026-01", "2026-06"],
"rate": "0.05",
"cap": "5000.00",
"deduction": "400.00",
"free": "900.00",
"upper": "3300.00",
"middle_rate": "0.14",
"upper_rate": "0.22"
}
Assistant
calculate(program="contribution = round(min(3941.14, 5000.00) * 0.05, 2)\ntaxable = 3941.14 - contribution - 197.94\ntax_raw = min(max(taxable - 900.00, 0.00), 3300.00 - 900.00) * 0.14 + max(taxable - 3300.00, 0.00) * 0.22\nincome_tax = round(tax_raw, 2)\nnet_pay = 3941.14 - contribution - 197.94 - income_tax")Reasoning
Wait, months shown as ["2026-01", "2026-06"] presumably a range Jan–Jun. 2026-03 is in first-half. Good. Compute: - contribution = round(min(3941.14, 5000.00) * 0.05, 2) = round(197.057, 2) = 197.06 - allowed_deduction = 197.94, cap 400.00, and must not exceed gross - contribution = 3941.14 - 197.06 = 3744.08. OK. - taxable = 3941.14 - 197.06 - 197.94 = 3546.14 - tax: free 900 untaxed. Middle portion: 3300 - 900 = 2400 at 0.14 = 336.00. Upper portion: 3546.14 - 3300 = 246.14 at 0.22 = 54.1508. Sum = 390.1508 → round 390.15 (do not round intermediate products separately). - net = 3941.14 - 197.06 - 197.94 - 390.15 = 3155.99 Use calculate to verify.
Tool
{
"results": {"contribution": "197.06", "taxable": "3546.14", "tax_raw": "390.1508", "income_tax": "390.15", "net_pay": "3155.99"}
}
Assistant
{
"decision": "calculate",
"currency": "LCR",
"gross_pay": "3941.14",
"employee_contribution": "197.06",
"allowed_deduction": "197.94",
"taxable_pay": "3546.14",
"income_tax": "390.15",
"net_pay": "3155.99",
"clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]
}
Reasoning
All checks pass. Return JSON with clauses R1–R6.
Rollout #3 100.0% passed · 6 tool calls · 63.8s · $0.0018
| 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 start by listing documents.
Tool
[
{"id": "c0b4647b43710bd2-payroll", "kind": "payroll"},
{"id": "c0b4647b43710bd2-contract", "kind": "contract"}
]
Assistant
read_document(document_id="c0b4647b43710bd2-payroll")read_document(document_id="c0b4647b43710bd2-contract")Reasoning
Read both documents.
Tool
{
"kind": "payroll",
"record": {"gross_pay": "3941.14", "payroll_month": "2026-03", "allowed_deduction": "197.94"}
}
Tool
{
"kind": "contract",
"gross_pay": "3941.14"
}
Assistant
lookup_reference(reference="first-half")Reasoning
Payroll month 2026-03 → first-half reference. Contract gross pay matches payroll gross pay (3941.14 = 3941.14), so no conflict. Lookup first-half.
Tool
{
"reference": "first-half",
"months": ["2026-01", "2026-06"],
"rate": "0.05",
"cap": "5000.00",
"deduction": "400.00",
"free": "900.00",
"upper": "3300.00",
"middle_rate": "0.14",
"upper_rate": "0.22"
}
Assistant
calculate(program="contribution = round(min(3941.14, 5000.00) * 0.05, 2)\ntaxable = 3941.14 - contribution - 197.94\nmiddle_part = round((min(taxable, 3300.00) - 900.00) * 0.14, 10)\nupper_part = round(max(taxable - 3300.00, 0.00) * 0.22, 10)\nincome_tax = round(middle_part + upper_part, 2)\nnet = 3941.14 - contribution - 197.94 - income_tax")Reasoning
Gross pay 3941.14, cap 5000. Contribution = round(min(3941.14, 5000) * 0.05, 2) = round(197.057, 2) = 197.06. Allowed deduction 197.94 ≤ deduction cap 400.00. Check available-pay: gross - contribution = 3941.14 - 197.06 = 3744.08 ≥ 197.94. OK. Taxable pay = 3941.14 - 197.06 - 197.94 = 3546.14. Tax: free 900, upper 3300. Middle portion: 3300 - 900 = 2400 taxed at 0.14 → 336.00. Upper portion: 3546.14 - 3300 = 246.14 at 0.22 → 54.1508. Total = 336.00 + 54.1508 = 390.1508 → round 390.15. Net pay = 3941.14 - 197.06 - 197.94 - 390.15 = 3156. Let's compute: 3941.14 - 197.06 = 3744.08; - 197.94 = 3546.14; - 390.15 = 3155.99. Use calculate to verify.
Tool
{
"error": "round needs a whole number of digits from 0 to 4"
}
Assistant
calculate(program="contribution = round(min(3941.14, 5000.00) * 0.05, 2)\ntaxable = 3941.14 - contribution - 197.94\nmiddle_part = (min(taxable, 3300.00) - 900.00) * 0.14\nupper_part = max(taxable - 3300.00, 0.00) * 0.22\nincome_tax = round(middle_part + upper_part, 2)\nnet = 3941.14 - contribution - 197.94 - income_tax")Reasoning
round(x, 10) not allowed. Use non-rounded products; just compute directly since calculator is exact decimal.
Tool
{
"results": {"contribution": "197.06", "taxable": "3546.14", "middle_part": "336.0000", "upper_part": "54.1508", "income_tax": "390.15", "net": "3155.99"}
}
Assistant
{
"decision": "calculate",
"currency": "LCR",
"gross_pay": "3941.14",
"employee_contribution": "197.06",
"allowed_deduction": "197.94",
"taxable_pay": "3546.14",
"income_tax": "390.15",
"net_pay": "3155.99",
"clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]
}
Reasoning
All values confirmed. Contract matches, no amendment needed. Clauses: R1, R2, R3, R4, R5, R6.