← Heatmap / MiMo V2.6 Pro · Task 51
MiMo V2.6 Pro · Tool use · Task 51 (Calculation, below tax-free 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 | 850.21 | 850.21 | 850.21 | 850.21 |
| employee contribution | 51.01 | 51.01 | 51.01 | 51.01 |
| allowed deduction | 125.58 | 125.58 | 125.58 | 125.58 |
| taxable pay | 673.62 | 673.62 | 673.62 | 673.62 |
| income tax | 0.00 | 0.00 | 0.00 | 0.00 |
| net pay | 673.62 | 673.62 | 673.62 | 673.62 |
| 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 · 15.3s · $0.0012
| 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": "39d9a95cfc04fd53-payroll", "kind": "payroll"},
{"id": "39d9a95cfc04fd53-contract", "kind": "contract"}
]
Assistant
read_document(document_id="39d9a95cfc04fd53-payroll")read_document(document_id="39d9a95cfc04fd53-contract")Reasoning
Let me read both documents.
Tool
{
"kind": "payroll",
"record": {"gross_pay": "850.21", "payroll_month": "2026-01", "allowed_deduction": "125.58"}
}
Tool
{
"kind": "contract",
"gross_pay": "850.21"
}
Assistant
lookup_reference(reference="first-half")Reasoning
Payroll month 2026-01, gross850.21, deduction 125.58. Contract matches. Get first-half reference.
Tool
{
"reference": "first-half",
"months": ["2026-01", "2026-06"],
"rate": "0.06",
"cap": "4500.00",
"deduction": "400.00",
"free": "1100.00",
"upper": "2800.00",
"middle_rate": "0.12",
"upper_rate": "0.18"
}
Assistant
calculate(program="contribution = round(min(850.21, 4500.00) * 0.06, 2)\nallowed = min(125.58, 400.00, 850.21 - contribution)\ntaxable = 850.21 - contribution - allowed\ntaxable_for_tax = max(0.00, taxable - 1100.00)\nmiddle_part = min(taxable_for_tax, 2800.00 - 1100.00)\nupper_part = max(0.00, taxable - 2800.00)\nincome_tax = round(middle_part * 0.12 + upper_part * 0.18, 2)\nnet_pay = 850.21 - contribution - allowed - income_tax")Reasoning
Contribution = 0.06 * min(850.21, 4500) = 51.0126 → 51.01. Allowed deduction 125.58 ≤ 400 and ≤ 850.21 - 51.01 = 799.20. OK. Taxable = 850.21 - 51.01 - 125.58 = 673.62. Below free 1100 → tax 0. Net = 850.21 - 51.01 - 125.58 - 0 = 673.62.
Tool
{
"results": {"contribution": "51.01", "allowed": "125.58", "taxable": "673.62", "taxable_for_tax": "0.00", "middle_part": "0.00", "upper_part": "0.00", "income_tax": "0.00", "net_pay": "673.62"}
}
Assistant
{
"decision": "calculate",
"currency": "LCR",
"gross_pay": "850.21",
"employee_contribution": "51.01",
"allowed_deduction": "125.58",
"taxable_pay": "673.62",
"income_tax": "0.00",
"net_pay": "673.62",
"clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]
}
Reasoning
Return JSON with clauses R1-R6 (calculated answers cite R1 through R6). No amendment needed (contract matches).
Rollout #2 100.0% passed · 5 tool calls · 18.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": "39d9a95cfc04fd53-payroll", "kind": "payroll"},
{"id": "39d9a95cfc04fd53-contract", "kind": "contract"}
]
Assistant
read_document(document_id="39d9a95cfc04fd53-payroll")read_document(document_id="39d9a95cfc04fd53-contract")Reasoning
Let me read both documents and look up reference rows.
Tool
{
"kind": "payroll",
"record": {"gross_pay": "850.21", "payroll_month": "2026-01", "allowed_deduction": "125.58"}
}
Tool
{
"kind": "contract",
"gross_pay": "850.21"
}
Assistant
lookup_reference(reference="first-half")Reasoning
Payroll month 2026-01 → first-half reference row (2026 is covered; first-half presumably covers months 01-06). Let me look up both to be safe? The rules say lookup first-half or second-half. 2026-01 is first half. I'll look up first-half. Contract gross pay matches payroll gross pay (850.21 = 850.21), so no conflict. No amendment needed. Now get reference row.
Tool
{
"reference": "first-half",
"months": ["2026-01", "2026-06"],
"rate": "0.06",
"cap": "4500.00",
"deduction": "400.00",
"free": "1100.00",
"upper": "2800.00",
"middle_rate": "0.12",
"upper_rate": "0.18"
}
Assistant
calculate(program="contribution = round(min(850.21, 4500.00) * 0.06, 2)\nallowed = min(125.58, 400.00, 850.21 - contribution)\ntaxable = 850.21 - contribution - allowed\ntax = round(min(taxable, 1100.00) * 0 + max(0.00, min(taxable, 2800.00) - 1100.00) * 0.12 + max(0.00, taxable - 2800.00) * 0.18, 2)\nnet = 850.21 - contribution - allowed - tax")Reasoning
Payroll month 2026-01 is in first-half (months 2026-01 through 2026-06). Row: rate 0.06, cap 4500.00, deduction cap 400.00, free 1100.00, upper 2800.00, middle_rate 0.12, upper_rate 0.18. gross_pay = 850.21 employee_contribution = round(min(850.21, 4500.00) * 0.06, 2) = round(51.0126, 2) = 51.01 allowed_deduction = 125.58. Must not exceed deduction cap 400.00, and must not exceed gross - contribution = 850.21 - 51.01 = 799.20. 125.58 ≤ 400 and ≤ 799.20. OK. taxable_pay = 850.21 - 51.01 - 125.58 = 673.62 Taxable pay 673.62 ≤ free 1100.00 → income tax = 0.00 net_pay = 850.21 - 51.01 - 125.58 - 0.00 = 673.62 Let me use calculate to verify.
Tool
{
"results": {"contribution": "51.01", "allowed": "125.58", "taxable": "673.62", "tax": "0.00", "net": "673.62"}
}
Assistant
{
"decision": "calculate",
"currency": "LCR",
"gross_pay": "850.21",
"employee_contribution": "51.01",
"allowed_deduction": "125.58",
"taxable_pay": "673.62",
"income_tax": "0.00",
"net_pay": "673.62",
"clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]
}
Reasoning
All values confirmed. Return JSON.
Rollout #3 100.0% passed · 5 tool calls · 15.6s · $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": "39d9a95cfc04fd53-payroll", "kind": "payroll"},
{"id": "39d9a95cfc04fd53-contract", "kind": "contract"}
]
Assistant
read_document(document_id="39d9a95cfc04fd53-payroll")read_document(document_id="39d9a95cfc04fd53-contract")Reasoning
Read both documents.
Tool
{
"kind": "payroll",
"record": {"gross_pay": "850.21", "payroll_month": "2026-01", "allowed_deduction": "125.58"}
}
Tool
{
"kind": "contract",
"gross_pay": "850.21"
}
Assistant
lookup_reference(reference="first-half")Reasoning
Gross pay 850.21, month 2026-01 (first-half row), allowed deduction 125.58. Contract matches gross pay, no conflict. Get reference first-half.
Tool
{
"reference": "first-half",
"months": ["2026-01", "2026-06"],
"rate": "0.06",
"cap": "4500.00",
"deduction": "400.00",
"free": "1100.00",
"upper": "2800.00",
"middle_rate": "0.12",
"upper_rate": "0.18"
}
Assistant
calculate(program="contribution = round(min(850.21, 4500.00) * 0.06, 2)\ntaxable = 850.21 - contribution - 125.58\nmiddle_portion = max(0.00, min(taxable, 2800.00) - 1100.00)\nupper_portion = max(0.00, taxable - 2800.00)\nincome_tax = round(middle_portion * 0.12 + upper_portion * 0.18, 2)\nnet_pay = 850.21 - contribution - 125.58 - income_tax")Reasoning
Now calculate. gross=850.21, rate=0.06, cap=4500. min(850.21, 4500)=850.21. contribution=round(850.21*0.06,2)=51.0126→51.01. Allowed deduction 125.58 ≤ 400.00, and ≤ gross - contribution = 850.21-51.01=799.20. OK. Taxable = 850.21-51.01-125.58 = 673.62. Free=1100, so taxable below free → tax 0.00. Net = 850.21-51.01-125.58-0 = 673.62. Let me use calculate for exactness.
Tool
{
"results": {"contribution": "51.01", "taxable": "673.62", "middle_portion": "0.00", "upper_portion": "0.00", "income_tax": "0.00", "net_pay": "673.62"}
}
Assistant
{
"decision": "calculate",
"currency": "LCR",
"gross_pay": "850.21",
"employee_contribution": "51.01",
"allowed_deduction": "125.58",
"taxable_pay": "673.62",
"income_tax": "0.00",
"net_pay": "673.62",
"clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]
}
Reasoning
Contract gross pay matches payroll gross pay (850.21), no conflict. No amendment needed. Clauses R1-R6.