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"}.