Skip to content

Examples

Four worked paychecks covering the common cases: a median single earner, a married couple, a high earner (where Social Security caps and additional Medicare kicks in), and a low earner below the standard deduction.

All figures use the 2025 IRS brackets, standard deduction, and FICA constants shipped by this crate. Run them yourself — every number below is an assert in the crate's test suite or reproducible with the snippet at the bottom of this page.


Example A — Median single earner ($75,000)

A single filer earning $75,000 gross.

Line item Amount
Gross income $75,000.00
Standard deduction (single) −$15,000.00
Taxable income $60,000.00
Federal income tax (10/12/22% slices) $8,114.00
Social Security (6.2%) $4,650.00
Medicare (1.45%) $1,087.50
FICA total $5,737.50
Take-home (net) $61,148.50

Effective federal income-tax rate: 10.82% of gross.

The federal tax is progressive. On $60,000 of taxable income the slices are:

10% on the first  11,925  →  1,192.50
12% on the next   36,550  →  4,386.00
22% on the final  11,525  →  2,535.50
                          →  8,114.00
use us_paycheck_tax::{take_home, FilingStatus};

let (net, fed, fica) = take_home(75_000.0, FilingStatus::Single);
assert!((net   - 61_148.50).abs() < 0.01);
assert!((fed   -  8_114.00).abs() < 0.01);
assert!((fica  -  5_737.50).abs() < 0.01);

Example B — Married filing jointly ($120,000)

A married couple filing jointly on $120,000 gross. The doubled standard deduction ($30,000) and wider brackets lower the effective federal rate substantially.

Line item Amount
Gross income $120,000.00
Standard deduction (married) −$30,000.00
Taxable income $90,000.00
Federal income tax (10/12% slices) $10,323.00
Social Security (6.2%) $7,440.00
Medicare (1.45%) $1,740.00
FICA total $9,180.00
Take-home (net) $100,497.00

Effective federal income-tax rate: 8.60% of gross. Note FICA is identical to a single filer at the same gross — FICA caps and the additional-Medicare threshold are the only filing-status-sensitive parts of FICA.

use us_paycheck_tax::{take_home, FilingStatus};

let (net, fed, fica) = take_home(120_000.0, FilingStatus::Married);
assert!((net   - 100_497.00).abs() < 0.01);
assert!((fed   -  10_323.00).abs() < 0.01);
assert!((fica  -   9_180.00).abs() < 0.01);

Example C — High earner, single ($350,000)

A single filer at $350,000 gross. Two caps/surcharges activate:

  • Social Security is capped. Only the first $176,100 is subject to the 6.2% SS tax — everything above is SS-free.
  • Additional Medicare applies. The 0.9% surcharge hits income over $200,000.
Line item Amount
Gross income $350,000.00
Standard deduction (single) −$15,000.00
Taxable income $335,000.00
Federal income tax (10→35% slices) $86,797.25
Social Security (6.2% of $176,100 cap) $10,918.20
Medicare (1.45% of full gross) $5,075.00
Additional Medicare (0.9% over $200,000) $1,350.00
FICA total $17,343.20
Take-home (net) $245,859.55

Effective federal income-tax rate: 24.80% of gross — still well below the top marginal 37% because the rate is progressive.

use us_paycheck_tax::{take_home, fica, FilingStatus};

let (net, fed, fica_total) = take_home(350_000.0, FilingStatus::Single);
assert!((net        - 245_859.55).abs() < 0.01);
assert!((fed        -  86_797.25).abs() < 0.01);
assert!((fica_total -  17_343.20).abs() < 0.01);

// FICA in isolation, to see the SS cap and add'l Medicare clearly
assert!((fica(350_000.0, FilingStatus::Single) - 17_343.20).abs() < 0.01);

Example D — Below the standard deduction ($14,000)

A single filer earning $14,000 gross. Because $14,000 is under the $15,000 single standard deduction, federal income tax is zero — taxable income floors at 0.0. FICA still applies, since it is not reduced by the deduction.

Line item Amount
Gross income $14,000.00
Standard deduction (single) −$15,000.00
Taxable income $0.00 (floored)
Federal income tax $0.00
Social Security (6.2%) $868.00
Medicare (1.45%) $203.00
FICA total $1,071.00
Take-home (net) $12,929.00

Effective federal income-tax rate: 0.00%.

use us_paycheck_tax::{take_home, federal_income_tax, FilingStatus};

let (net, fed, fica) = take_home(14_000.0, FilingStatus::Single);
assert!((net  - 12_929.00).abs() < 0.01);
assert_eq!(fed, 0.0);                       // under the standard deduction
assert!((fica -  1_071.00).abs() < 0.01);

// federal_income_tax floors at zero on negative/zero taxable input
assert_eq!(federal_income_tax(0.0, FilingStatus::Single), 0.0);

Reproduce every number

Drop this in a binary that depends on us-paycheck-tax to print all four paychecks at once:

use us_paycheck_tax::{take_home, FilingStatus};

fn main() {
    for (label, gross, status) in [
        ("Median single",          75_000.0, FilingStatus::Single),
        ("Married joint",         120_000.0, FilingStatus::Married),
        ("High earner single",    350_000.0, FilingStatus::Single),
        ("Below deduction single", 14_000.0, FilingStatus::Single),
    ] {
        let (net, fed, fica) = take_home(gross, status);
        println!(
            "{label:24} gross {gross:>10.2}  net {net:>10.2}  fed {fed:>9.2}  fica {fica:>9.2}"
        );
    }
}

For the full state-by-state take-home picture (with state and local income tax layered on top of this federal engine), use the StateWage paycheck calculator{: target="_blank" rel="dofollow"}.