How the Mexico resico calculator is verified

Inputs

InputFieldType
Annual income collected (MXN)annualIncomenumber

The formula

Each derived value below is computed by the Valem engine from the expression shown, in this order. Nothing else runs — there is no hidden code path.

Derived valueFieldFormula (JSONata)
Monthly IncomemonthlyIncome$round(annualIncome / 12, 2)
ISR rate (%)isrRatePercent$round((monthlyIncome <= $const.m1 ? $const.r1 : (monthlyIncome <= $const.m2 ? $const.r2 : (monthlyIncome <= $const.m3 ? $const.r3 : (monthlyIncome <= $const.m4 ? $const.r4 : $const.r5)))) * 100, 3)
ISR / yearisr$round(annualIncome * isrRatePercent / 100, 2)
Net income / yearnetIncome$round($max([0, annualIncome - isr]), 2)

Rates and thresholds

The expressions above read these as $const. They are the figures the annual refresh replaces, so they live as data rather than being written into the formulas — which is what makes a year-on-year change a one-line diff instead of an edit to arithmetic.

ConstantValue
m125000
m250000
m383333
m4208333
m5291667
r10.01
r20.011
r30.015
r40.02
r50.025
annualCap3500000

Test vectors (3)

Every case is executed against this model on each build, by the Java engine and independently by a JavaScript one. A mismatch of a single cent fails the build, so the page cannot ship advertising a figure the model no longer produces.

Case 1 — 600,000 MXN collected — a typical full-time freelancer

given annualIncome600000
expect monthlyIncome50000
expect isrRatePercent1.1
expect isr6600
expect netIncome593400

Case 2 — 240,000 MXN — the lowest 1% band

given annualIncome240000
expect monthlyIncome20000
expect isrRatePercent1
expect isr2400
expect netIncome237600

Case 3 — 3,000,000 MXN — near the ceiling of the regime

given annualIncome3000000
expect monthlyIncome250000
expect isrRatePercent2.5
expect isr75000
expect netIncome2925000

Sources

Check it yourself — and reuse it

The whole model as JSON — inputs, outputs, formulas, vectors and sources in one re-runnable document.

This model is published under CC BY 4.0: use it, adapt it, build on it, with attribution. The licence covers the model — the expression of each rule and the arrangement of the catalog. The rates and thresholds are law, and nobody licenses those; the sources above are where they come from.

← Back to the Mexico resico calculator

Built with Valem — a live, verifiable calculator you can fork and embed.