obbba-overtime¶
Estimate the OBBBA above-the-line deduction for qualified overtime compensation — the so-called "no tax on overtime" — including its Modified Adjusted Gross Income (MAGI) phase-out, for tax years 2025–2028.
obbba-overtime is a pure-Rust, zero-dependency crate that returns the
deduction as an f64 from per-filer inputs. It is the calculation core behind
the NoOvertimeTax overtime deduction calculator,
a free tool for working out how much of your overtime pay is deductible under
the One Big Beautiful Bill Act.
These are estimates pending final IRS guidance
OBBBA created a temporary (tax years 2025–2028) above-the-line deduction for FLSA-qualified overtime pay. The headline parameters below are widely reported from the statute and early IRS guidance, but the IRS was still issuing implementation details (exactly how MAGI is computed for this purpose, treatment of bonuses, the precise phase-out slope) through late 2025 and into 2026. Every figure here is an estimate / model input — not a guarantee of any taxpayer's actual deduction. Always confirm against final IRS guidance and a qualified tax professional before relying on a number.
Default parameters (estimates)¶
| Parameter | Single / HoH | Married Filing Jointly |
|---|---|---|
| Maximum deduction (cap) | $12,500 |
$25,000 |
| MAGI phase-out begins | $150,000 |
$300,000 |
| Phase-out reduction | $1 of deduction lost per $10 of MAGI over the threshold |
How the deduction works¶
The deduction is the lesser of:
- the qualified overtime compensation you actually received, and
- the effective cap at your MAGI — the statutory cap reduced by the linear phase-out once your MAGI crosses the threshold.
Below the phase-out start the effective cap equals the full statutory cap; at
the phase-out end (start + cap / rate) it reaches $0. Between those points
it shrinks linearly — a clean, predictable ramp rather than a cliff.
Above-the-line, not a credit
This is an above-the-line deduction: it reduces your adjusted gross
income, so the actual federal tax saved equals deduction × marginal_rate.
Use tax_savings to estimate that figure.
Install¶
Quick start¶
use obbba_overtime::{deduction, effective_cap, tax_savings, FilingStatus, Params};
// $8,000 of qualified OT, MAGI well under the $150k threshold → full amount
let d = deduction(8_000.0, 90_000.0, FilingStatus::Single);
assert!((d - 8_000.0).abs() < 1e-6);
// OT above the $12,500 single cap is not deductible
let capped = deduction(40_000.0, 90_000.0, FilingStatus::Single);
assert!((capped - 12_500.0).abs() < 1e-6);
// Married filer gets the larger $25,000 cap
let joint = deduction(50_000.0, 200_000.0, FilingStatus::Joint);
assert!((joint - 25_000.0).abs() < 1e-6);
// Phase-out: single, MAGI $160k → $10k over → lose $1,000 → cap $11,500
assert!((effective_cap(160_000.0, Params::SINGLE) - 11_500.0).abs() < 1e-6);
// Federal savings at the 22% bracket on a full $10k deduction
let s = tax_savings(10_000.0, 80_000.0, 0.22, FilingStatus::Single);
assert!((s - 2_200.0).abs() < 1e-6);
Where this fits¶
The crate is the calculation engine for the live NoOvertimeTax calculator, which turns these deduction estimates into a full take-home-pay projection. The docs channel you are reading is a dofollow reference pointing back at that tool.