Biden tax plan calculator
A single filer with 500,000 of taxable income would owe 149,147.25 under the Biden proposal versus 144,547.25 under prior brackets, a difference of 4,600. Below the threshold for your filing status, nothing changes. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Taxable income
- 500,000
- Filing status
- Single
- Schedule year
- 2,025
- Proposal threshold
- 400,000
- Estimated tax
- 149,147.25
- Prior tax
- 144,547.25
Households, journalists, and planners keep asking the same comparison: if ordinary federal brackets moved the way the Biden proposal described, what would a given taxable income actually owe, and how does that differ from prior law? This Biden tax plan calculator answers that from two fields—taxable income and filing status—by applying published IRS ordinary-income brackets as the prior schedule and overlaying the campaign and Green Book change that restores a 39.6 percent top rate above a four-hundred-thousand-dollar (or four-hundred-fifty-thousand-dollar joint) threshold. It returns the estimated tax under the proposal, the tax under the prior brackets, and the signed difference.
What the Biden overlay changes on the prior ordinary-income table
Federal ordinary income tax in the United States is progressive: taxable income is sliced across statutory brackets, and only the dollars inside each slice take that slice's rate. The prior schedule in this calculator is the IRS tax year 2025 ordinary-income table published in Revenue Procedure 2024-40: seven rates of ten, twelve, twenty-two, twenty-four, thirty-two, thirty-five, and thirty-seven percent, with different dollar tops for single, married filing jointly, married filing separately, head of household, and qualifying surviving spouse (the last of those reuses the joint table).
Estimated tax is the progressive sum under the overlaid table. Prior tax is the same sum under the untouched 2025 table. Difference is estimated tax minus prior tax: positive when the proposal costs more, and zero when taxable income never enters the restored top rate.
The calculator does not apply credits, alternative minimum tax, net investment income tax, capital-gains preferences, or payroll tax, and it is not tax advice—only a transparent ordinary-income comparison you can rerun whenever the two inputs change.
Where a Biden tax plan comparison earns its keep
Newsrooms and civic explainers use a Biden tax plan calculator when a chart needs a concrete ordinary-income bill at a stated taxable income, not a slogan about the top rate. Households and advisors run the same two fields after a raise, a marriage, or a filing-status change to see whether they sit below the proposal threshold—where difference is zero—or above it, where only the slice past the cutoff is taxed at 39.6 percent.
Educators and exam writers need a deterministic oracle that rejects an unrecognized filing status instead of silently treating an LLC or a trust as single, which would publish a wrong comparison. Pin the rounded money fields in tests, keep requests to the two documented inputs, and you get reproducible Biden-versus-prior estimates for articles, classrooms, and edge workers without standing up a tax-engine vendor.
What you can do with it
Household what-if after a raise
Enter Form 1040 taxable income and filing status to see whether the Biden 39.6 percent overlay changes the ordinary-income bill, or whether difference stays zero below the threshold.
Planning tools and classroom keys
Drive sliders or exam answers from the same two fields; unrecognized filing statuses fail loudly so an LLC or trust is never treated as single.
FAQ
Does the tax change if my taxable income is below the threshold?
Only dollars above the cutoff take the restored 39.6 percent rate.
Does this include credits, capital gains, or payroll tax?
No. It is an ordinary-income bracket comparison on the taxable income you supply. Credits, AMT, NIIT, preferred capital-gains rates, and payroll tax are out of scope. It is not tax advice.
What income thresholds does the Biden tax plan use?
The 39.6% top rate starts above 400,000 of taxable income for single and head-of-household filers, above 450,000 for married couples filing jointly and qualifying surviving spouses, and above 225,000 for married filing separately.
Which brackets does the calculator treat as prior law?
The IRS ordinary-income table for tax year 2025, with seven rates from 10 to 37 percent and separate tops for each filing status. The proposal is laid over that same table.
Is all my income taxed at 39.6% once I pass the threshold?
No, only the slice past the cutoff. A single filer with 500,000 of taxable income pays 39.6% instead of 35% only on the part above the 400,000 line, which adds 4,600.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/fin/biden-tax-plan \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"taxable_income":500000,"filing_status":"single"}'const res = await fetch("https://api.kit.forhosting.com/fin/biden-tax-plan", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"taxable_income": 500000,
"filing_status": "single"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/biden-tax-plan",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"taxable_income": 500000,
"filing_status": "single"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/biden-tax-plan", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"taxable_income":500000,"filing_status":"single"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"taxable_income":500000,"filing_status":"single"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/biden-tax-plan", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"taxable_income": 500000,
"filing_status": "single"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.biden_tax_plan",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Unrecognized filing statuses fail with invalid_input instead of silently mapping to single.
What the Biden overlay changes on the prior ordinary-income table
The Biden proposal this endpoint models does not rewrite every rung. It keeps those prior cuts below a high-income threshold and restores a 39.6 percent top rate on taxable income above four hundred thousand dollars for single and head-of-household filers, four hundred fifty thousand dollars for married filing jointly and qualifying surviving spouses, and two hundred twenty-five thousand dollars for married filing separately. That overlay is the campaign and later Green Book promise not to raise ordinary rates on people below those cutoffs, while replacing the thirty-five and thirty-seven percent remainder with 39.6 percent once the threshold is crossed.
Input contract, response shape, and error behaviour
Matching is case-insensitive and treats spaces or hyphens like underscores, so Married Joint and head-of-household both resolve. A short formula string restates the overlay so you can print it next to the numbers. Failed validation is not billed. The path never calls a revenue service, never samples randomness, and never reads the system clock, so goldens compare byte-for-byte when they pin the same two inputs. POST a JSON body with two required fields. taxable_income is federal taxable income in dollars after deductions, the same idea as Form 1040 taxable income; aliases income and amount are accepted so spreadsheets can reuse familiar column names. The value must be a finite number greater than or equal to zero; a missing field, an empty string, a non-finite value, or a negative amount fails with invalid_input naming taxable_income. filing_status selects the bracket table and the Biden threshold. The documented values are single, married_joint, married_separate, head_of_household, and qualifying_surviving_spouse; the alias status is accepted for the field name. Anything else—including trust, partnership, corporation, or a blank—is unrecognized and fails with invalid_input that names filing_status and lists the allowed values, instead of guessing single. When validation passes, the body echoes taxable_income and the canonical filing_status, reports schedule_year 2025 and the proposal_threshold used for that status, then returns estimated_tax under the overlay, prior_tax under the untouched table, and difference as estimated_tax minus prior_tax, all rounded half-up to two decimal places. effective_rate and prior_effective_rate are percentages of taxable income (zero when income is zero). marginal_rate and prior_marginal_rate are the statutory rates on the last dollar.
Where a Biden tax plan comparison earns its keep
Product teams embed the contract in planning tools so a slider on taxable income updates estimated_tax, prior_tax, and difference without a spreadsheet of seven bracket rows per status. When you later layer credits or capital gains in a workbook, keep this endpoint on ordinary taxable income so the overlay stays comparable to the statutory tables it cites.
Integration use cases
Newsroom and explainer charts
Generate a deterministic estimated_tax, prior_tax, and difference for a stated income so a Biden tax plan article can quote the overlay instead of a slogan about the top rate.
Technical questions
How is the Biden tax plan estimate calculated?
The calculator applies IRS tax year 2025 ordinary-income brackets as prior law, then restores a 39.6 percent rate above $400,000 (single or head of household), $450,000 (married joint or qualifying surviving spouse), or $225,000 (married separate). estimated_tax is the progressive sum on the overlay; difference is that amount minus prior_tax.
Which filing statuses are accepted?
single, married_joint, married_separate, head_of_household, and qualifying_surviving_spouse. Matching is case-insensitive. Any other value is unrecognized and the task fails with invalid_input.
What does the Biden tax plan calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.