Skip to content

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:

  1. the qualified overtime compensation you actually received, and
  2. 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

[dependencies]
obbba-overtime = "0.1"

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.