Luma Payroll Gym
← Training / β 0.04, rubric 7, answer-weighted
KL β
0.04
Rubric
7
Steps
16 / 80
LR
1e-05
Group size
4-16
Epochs
2
Prompt
decision examples, thinking disabled
GPU time
1.0h
Training curves, 16 steps

Mean reward

-40% -20% 0% 20% Step 0 Step 40 Step 80

KL divergence (k3)

0 0.02 0.04 0.06 Step 0 Step 40 Step 80

Policy entropy

0 0.2 0.4 Step 0 Step 40 Step 80

Completion length (tokens)

0 50 100 150 Step 0 Step 40 Step 80

Trap pass rate

0% 20% 40% Step 0 Step 40 Step 80

Payslip pass rate

0.0% 2.0% 4.0% 6.0% Step 0 Step 40 Step 80

Correct clarifications

0% 20% 40% Step 0 Step 40 Step 80

Calculates through traps

0% 50% 100% Step 0 Step 40 Step 80

Non-tied groups

0% 50% 100% Step 0 Step 40 Step 80
Sampled completions
Step 1
generated-1001-00064 · Calculation
-50% retrieve · wrong decision
{"decision": "retrieve", "field": "contribution_rate", "value": "0.04", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6"], "explanation": "The task requires retrieving information from the rulebook based on the provided month, and R1 and R2 are needed for the calculation. These are the required tools and sources for the task."}
0% calculate · scored
{"decision": "calculate", "currency": "LCR", "gross_pay": "6717.67", "employee_contribution": "1075.95", "allowed_deduction": "326.05", "taxable_pay": "1075.45", "income_tax": "65.25", "net_pay": "1061.30", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6", "R7"]}
0% calculate · scored
{"decision": "calculate", "currency": "LCR", "gross_pay": "6717.67", "employee_contribution": "1103.67", "allowed_deduction": "326.05", "taxable_pay": "1824.98", "income_tax": "39.30", "net_pay": "1794.38", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6", "R7"]}
0% calculate · scored
{"decision": "calculate", "currency": "LCR", "gross_pay": "6717.67", "employee_contribution": "1001.63", "allowed_deduction": "1001.63", "taxable_pay": "1822.25", "income_tax": "42.25", "net_pay": "4794.49", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6", "R7", "R9"]}
generated-1001-00055 · Calculation
-50% retrieve · wrong decision
{"decision": "retrieve", "field": "2026-11", "value": "2891.48", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]}
0% calculate · scored
{"decision": "calculate", "currency": "LCR", "gross_pay": "2891.48", "employee_contribution": "144.48", "allowed_deduction": "0.00", "taxable_pay": "2314.00", "income_tax": "38.50", "net_pay": "2063.98", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]}
0% calculate · scored
{ "decision": "calculate", "currency": "LCR", "gross_pay": "2891.48", "employee_contribution": "1727.00", "allowed_deduction": "0.00", "taxable_pay": "2058.48", "income_tax": "107.00", "net_pay": "2174.48", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6", "R7", "R9"] }
-50% retrieve · wrong decision
{"decision": "retrieve", "field": "2026-11-05", "value": "2891.48", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6", "R7"]}
generated-1001-00092 · Trap CONFLICTING_GROSS_PAY
-50% calculate · wrong decision
{"decision": "calculate", "currency": "LCR", "gross_pay": "6265.40", "employee_contribution": "217.00", "allowed_deduction": "217.79", "taxable_pay": "2178.79", "income_tax": "43.40", "net_pay": "6040.10", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]}
0% clarify · wrong clarification
{"decision": "clarify", "reason_code": "MISSING_GROSS_PAY", "clauses": ["R1", "R7"], "explanation": "Gross pay is missing. Please provide the monthly gross pay before calculation."}
0% clarify · wrong clarification
{"decision": "clarify", "reason_code": "MISSING_GROSS_PAY", "clauses": ["R1", "R7"], "explanation": "Gross pay is missing. Please provide the monthly gross pay before calculation."}
-50% calculate · wrong decision
{"decision": "calculate", "currency": "LCR", "gross_pay": "6265.40", "employee_contribution": "1308.26", "allowed_deduction": "217.79", "taxable_pay": "2100.51", "income_tax": "210.21", "net_pay": "4062.20", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6", "R7"]}
generated-1001-00096 · Trap MISSING_GROSS_PAY
-50% retrieve · invalid format
{"decision": "retrieve", "field": "contribution_rate", "value": "0.08", "clauses": ["R1", "R3", "R4"], "clauses": ["R1", "R3", "R4", "R5"]}
-50% calculate · wrong decision
{"decision": "calculate", "currency": "LCR", "gross_pay": "2400.00", "employee_contribution": "120.00", "allowed_deduction": "100.00", "taxable_pay": "2180.00", "income_tax": "118.00", "net_pay": "2062.00", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6", "R7"]}
-50% calculate · wrong decision
{ "decision": "calculate", "currency": "LCR", "gross_pay": "2400.00", "employee_contribution": "120.00", "allowed_deduction": "100.00", "taxable_pay": "2180.00", "income_tax": "118.00", "net_pay": "2062.00", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6"] }
-50% calculate · wrong decision
{"decision": "calculate", "currency": "LCR", "gross_pay": "1800.00", "employee_contribution": "102.33", "allowed_deduction": "102.33", "taxable_pay": "2142.00", "income_tax": "429.33", "net_pay": "1789.00", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]}
Step 8
generated-1001-00079 · Calculation
-50% invalid · invalid format
{"decision": "calculate", "currency": "LCR", "gross_pay": "4499.98", "employee_contribution": "201.96", "allowed_deduction": "0.00", "taxable_pay": "2299.96", "income_tax": "105.98", "net_pay": "2266.02", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6"], "explanation": "Gross pay: 4499.98, allowed deduction: 0.00, reference month: 2026-12. Reference table has first half and second half rates. R3 calculation: employee contribution = 0.04 * 4500.00 = 180.00; R4 deduction: 0.00 (since 4500.00 does not exceed 4000.00 or 4000.00). R5: taxable pay up to 1100.00 for 4500.00, then middle rate 0.14 * 4500.00 = 630.00; 4500.00 - 180.00 = 4320.00 for R6, then
0% calculate · scored
{"decision": "calculate", "currency": "LCR", "gross_pay": "4499.98", "employee_contribution": "100.00", "allowed_deduction": "0.00", "taxable_pay": "1387.00", "income_tax": "75.00", "net_pay": "4499.98", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6", "R7"]}
0% calculate · scored
{"decision": "calculate", "currency": "LCR", "gross_pay": "4499.98", "employee_contribution": "2244.00", "allowed_deduction": "0.00", "taxable_pay": "2264.00", "income_tax": "464.00", "net_pay": "2244.98", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]}
-50% clarify · wrong decision
{"decision": "clarify", "reason_code": "MISSING_GROSS_PAY", "clauses": ["R1", "R7"], "explanation": "Gross pay is missing. Please provide the monthly gross pay before calculation."}
generated-1001-00091 · Calculation
-50% clarify · wrong decision
{"decision": "clarify", "reason_code": "MISSING_GROSS_PAY", "clauses": ["R1", "R7"], "explanation": "Gross pay is missing. Please provide the monthly gross pay before calculation."}
0% calculate · scored
{"decision": "calculate", "currency": "LCR", "gross_pay": "8967.86", "employee_contribution": "125.43", "allowed_deduction": "250.00", "taxable_pay": "1225.43", "income_tax": "47.86", "net_pay": "1350.49", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6", "R7"]}
0% calculate · scored
{"decision": "calculate", "currency": "LCR", "gross_pay": "8967.86", "employee_contribution": "375.72", "allowed_deduction": "125.60", "taxable_pay": "3722.32", "income_tax": "100.00", "net_pay": "3540.16", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]}
0% calculate · scored
{"decision": "calculate", "currency": "LCR", "gross_pay": "8967.86", "employee_contribution": "1130.25", "allowed_deduction": "125.60", "taxable_pay": "2235.15", "income_tax": "46.35", "net_pay": "1895.30", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6", "R7"]}
generated-1001-00101 · Trap MISSING_PAYROLL_MONTH
-50% calculate · wrong decision
{"decision": "calculate", "currency": "LCR", "gross_pay": "8215.02", "employee_contribution": "1402.70", "allowed_deduction": "2000.00", "taxable_pay": "1425.72", "income_tax": "112.35", "net_pay": "1302.27", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6", "R7"]}
0% clarify · wrong clarification
{ "decision": "clarify", "reason_code": "MISSING_GROSS_PAY", "clauses": ["R1", "R7"], "explanation": "Gross pay is missing. Please provide the monthly gross pay before calculation." }
-50% calculate · wrong decision
{"decision": "calculate", "currency": "LCR", "gross_pay": "8215.02", "employee_contribution": "1505.70", "allowed_deduction": "0.00", "taxable_pay": "1412.00", "income_tax": "90.00", "net_pay": "7302.70", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6", "R7"]}
-50% calculate · wrong decision
{"decision": "calculate", "currency": "LCR", "gross_pay": "8215.02", "employee_contribution": "1750.25", "allowed_deduction": "0.00", "taxable_pay": "8215.02", "income_tax": "35.25", "net_pay": "8959.77", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]}
generated-1001-00041 · Trap NO_APPLICABLE_REFERENCE
0% clarify · wrong clarification
{"decision": "clarify", "reason_code": "MISSING_GROSS_PAY", "clauses": ["R1", "R7"], "explanation": "Gross pay is missing. Please provide the monthly gross pay before calculation."}
0% clarify · wrong clarification
{"decision": "clarify", "reason_code": "MISSING_PAYROLL_MONTH", "clauses": ["R1", "R7"], "explanation": "The specified payroll month does not exist in the reference tables. Please provide an appropriate reference row or clarify the current month."}
-50% calculate · wrong decision
{"decision": "calculate", "currency": "LCR", "gross_pay": "8017.58", "employee_contribution": "1202.08", "allowed_deduction": "29.28", "taxable_pay": "2182.00", "income_tax": "42.00", "net_pay": "2062.80", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]}
-50% calculate · invalid format
{"decision": "calculate", "currency": "LCR", "gross_pay": "8017.58", "employee_contribution": "29.00", "allowed_deduction": "400.00", "taxable_pay": "2217.58", "income_tax": "50.00", "net_pay": "8017.58 - 29.00 - 400.00 + 50.00", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6", "R7"]}
Step 16
generated-1001-00090 · Calculation
0% calculate · scored
{"decision": "calculate", "currency": "LCR", "gross_pay": "704.36", "employee_contribution": "140.88", "allowed_deduction": "200.00", "taxable_pay": "2340.00", "income_tax": "100.00", "net_pay": "704.36", "clauses": ["R1", "R2", "R3", "R4", "R5", "R6"]}
-50% clarify · wrong decision
{"decision": "clarify", "reason_code": "MISSING_GROSS_PAY", "clauses": ["R1", "R7"], "explanation": "Gross pay is missing. Please provide the monthly gross pay before calculation."}
-50% clarify · wrong decision
{"decision": "clarify", "reason_code": "MISSING_PAYROLL_MONTH", "clauses": ["R1", "R7"], "explanation": "The payroll month is not covered by a reference row. Please provide an authoritative reference row for calculation."}
-50% clarify · wrong decision
{"decision": "clarify", "reason_code": "MISSING_GROSS_PAY", "clauses": ["R1", "R7"], "explanation": "Gross pay is missing. Please provide the monthly gross pay before calculation."}
generated-1001-00057 · Calculation
-50% clarify · wrong decision
{"decision": "clarify", "reason_code": "MISSING_GROSS_PAY", "clauses": ["R1", "R7"], "explanation": "Gross pay is missing. Please provide the monthly gross pay before calculation."}
-50% clarify · wrong decision
{"decision": "clarify", "reason_code": "CONFLICTING_GROSS_PAY", "clauses": ["R7", "R9"], "explanation": "Payroll and contract gross pay differ and no approved amendment resolves it. Please reconcile the records or provide an approved amendment."}
-50% clarify · wrong decision
{"decision": "clarify", "reason_code": "MISSING_PAYROLL_MONTH", "clauses": ["R1", "R7"], "explanation": "The provided payroll month (2026-01) does not match any reference row in the provided reference tables. Please provide an authoritative schedule that covers this month."}
-50% clarify · wrong decision
{"decision": "clarify", "reason_code": "CONFLICTING_GROSS_PAY", "clauses": ["R7", "R9"], "explanation": "Payroll and contract gross pay differ and no approved amendment resolves it. Please reconcile the records or provide an approved amendment."}
generated-1001-00087 · Trap MISSING_PAYROLL_MONTH
0% clarify · wrong clarification
{"decision": "clarify", "reason_code": "MISSING_GROSS_PAY", "clauses": ["R1", "R7"], "explanation": "Gross pay is missing. Please provide the monthly gross pay before calculation."}
0% clarify · wrong clarification
{"decision": "clarify", "reason_code": "MISSING_GROSS_PAY", "clauses": ["R1", "R7"], "explanation": "Gross pay is missing. Please provide the monthly gross pay before calculation."}
100% clarify · scored
{"decision": "clarify", "reason_code": "MISSING_PAYROLL_MONTH", "clauses": ["R1", "R7"], "explanation": "The payroll month is missing, so no reference row can be chosen. Please provide an authoritative schedule that covers it."}
0% clarify · wrong clarification
{"decision": "clarify", "reason_code": "MISSING_GROSS_PAY", "clauses": ["R1", "R7"], "explanation": "Gross pay is missing. Please provide the monthly gross pay before calculation."}
generated-1001-00068 · Trap NO_APPLICABLE_REFERENCE
100% clarify · scored
{"decision": "clarify", "reason_code": "NO_APPLICABLE_REFERENCE", "clauses": ["R1", "R7"], "explanation": "No reference row covers the 2027-01 payroll month. Please provide an authoritative schedule for 2027-01."}
100% clarify · scored
{"decision": "clarify", "reason_code": "NO_APPLICABLE_REFERENCE", "clauses": ["R1", "R7"], "explanation": "No reference row covers the given payroll month. Please provide an authoritative schedule that covers it."}
0% clarify · wrong clarification
{"decision": "clarify", "reason_code": "MISSING_GROSS_PAY", "clauses": ["R1", "R7"], "explanation": "Gross pay is missing. Please provide the monthly gross pay before calculation."}
0% clarify · wrong clarification
{"decision": "clarify", "reason_code": "MISSING_GROSS_PAY", "clauses": ["R1", "R7"], "explanation": "Gross pay is missing. Please provide the monthly gross pay before calculation."}