Child tax credit calculator
Two qualifying children on a single return with 80,000 of adjusted gross income are worth a 4,400 child tax credit under the 2025 and 2026 rules. Enter children, filing status and income to see the credit after the income phase-out. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Qualifying children
- 2
- Filing status
- Single
- Adjusted gross income
- 80,000
- Credit amount
- 4,400
- Max credit
- 4,400
- Credit per child
- 2,200
- Phaseout threshold
- 200,000
The child tax credit is a per-child federal income tax credit whose dollar amount depends on how many qualifying children you claim, which filing status you use, and how high your adjusted gross income sits relative to the statutory phase-out. This calculator applies the current-law schedule used on tax years 2025 and 2026: two thousand two hundred dollars per qualifying child, reduced by fifty dollars for each one thousand dollars, or fraction thereof, of adjusted gross income above two hundred thousand dollars, or above four hundred thousand dollars if you file a joint return. It returns the credit after that AGI phase-out.
What the child tax credit is and how the AGI phase-out works
The child tax credit is a federal credit against income tax for each qualifying child, not a deduction from taxable income and not a payroll withholding table. Under the current-law schedule that applies to tax years 2025 and 2026, after the One Big Beautiful Bill Act made the Tax Cuts and Jobs Act structure permanent and raised the per-child maximum, the starting figure is two thousand two hundred dollars for every qualifying child under age seventeen who meets the Internal Revenue Service tests and has a Social Security number.
Form 8812 states the rule in one sentence: four hundred thousand dollars if you are married filing jointly, and two hundred thousand dollars for every other filing status, including single, married filing separately, head of household, and qualifying widow or surviving spouse. For each one thousand dollars, or any fraction of one thousand dollars, above that threshold, the credit falls by fifty dollars.
A single filer one dollar over two hundred thousand therefore loses fifty dollars, not a pro-rata sliver, because the statute rounds the excess up to the next thousand. Zero qualifying children is a valid request and returns a credit of zero without treating the household as phased out. The formula field restates the phase-out identity so a reviewer can print it next to the numbers.
Where a child tax credit calculator earns its keep
People who type child tax credit into a search box are not looking for a generic progressive-tax toy where they paste their own brackets, and they are not looking for a state rebate table or a capital-gains estimator. They want the federal per-child credit applied to a qualifying-child count, a filing status, and an adjusted gross income figure, so they can see what the credit is worth before tax software opens a full return.
Newsrooms, tax-prep desks, and classroom public-finance lessons still quote the two thousand two hundred dollar starting figure and the fifty-dollar-per-thousand phase-out; a deterministic oracle that names the Form 8812 thresholds avoids a spreadsheet cell someone forgot to lock. Head of household versus married filing jointly is the easy mistake by hand: both can look like a family return, but only joint filers keep the four hundred thousand dollar ceiling. Failed validation does not consume balance.
Pair this capability with a separate earned-income or liability-limited tool when you need those layers; keep this surface focused on the AGI phase-out people mean when they search for the child tax credit.
What you can do with it
Estimate the federal child tax credit before filing
Enter qualifying children, filing status, and adjusted gross income to lock the credit after the statutory AGI phase-out, the reduction, and whether the credit is fully phased out.
FAQ
What happens if adjusted gross income is negative?
Adjusted gross income must be a finite number greater than or equal to zero; negative income is not billed.
Does this include the refundable Additional Child Tax Credit?
No. This calculator returns the credit after the AGI phase-out only. It does not apply the tax-liability cap or the earned-income Additional Child Tax Credit formula.
At what income does the child tax credit start to shrink?
Above 200,000 of adjusted gross income for single, head of household, married filing separately and qualifying surviving spouse, or above 400,000 on a joint return. The credit then drops by 50 for each 1,000 over that line.
Why does going one dollar over the threshold cost 50?
Because the law rounds the excess income up to the next full 1,000. Any amount over the line, even a single dollar, counts as one step of 1,000 and removes 50 from the credit.
Who counts as a qualifying child?
A child under age 17 who has a Social Security number and meets the IRS qualifying-child tests. Each one starts at 2,200, and entering zero children simply returns a credit of zero.
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/child-tax-credit \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"qualifying_children":2,"filing_status":"single","adjusted_gross_income":80000}'const res = await fetch("https://api.kit.forhosting.com/fin/child-tax-credit", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"qualifying_children": 2,
"filing_status": "single",
"adjusted_gross_income": 80000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/child-tax-credit",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"qualifying_children": 2,
"filing_status": "single",
"adjusted_gross_income": 80000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/child-tax-credit", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"qualifying_children":2,"filing_status":"single","adjusted_gross_income":80000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"qualifying_children":2,"filing_status":"single","adjusted_gross_income":80000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/child-tax-credit", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"qualifying_children": 2,
"filing_status": "single",
"adjusted_gross_income": 80000
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.child_tax_credit",
"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.
Limits
max_agi | 1000000000000000 |
max_children | 20 |
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
Negative income is rejected as invalid_input and is not billed. Successful calls are billed at $0.002.
What the child tax credit is and how the AGI phase-out works
That starting figure is the field max_credit in the response. The credit then shrinks once modified adjusted gross income, which this calculator takes as the adjusted_gross_income you send, crosses a statutory threshold. The credit cannot go below zero: when the phase-out reduction meets or exceeds max_credit the response reports credit_amount zero and fully_phased_out true. This endpoint stops at that AGI worksheet. It does not apply the tax-liability cap that limits the nonrefundable credit to tax owed, and it does not compute the refundable Additional Child Tax Credit, which needs earned income and a separate fifteen percent formula. Those layers are different searches and different forms.
Input contract, filing statuses, and error behaviour
A negative amount is also rejected, with a message that income cannot be negative — that is the product contract for this landing. Prefer bare numbers over formatted strings; currency marks and thousands separators are not parsed. POST a JSON body with three required fields. qualifying_children is the whole number of children who meet the Internal Revenue Service qualifying-child tests for this credit, from zero through twenty; aliases children, num_children, qualifying_child_count, and child_count are accepted so a spreadsheet export does not need a rename step. A fractional count, a negative count, or a value above the published limit fails with invalid_input naming the field. filing_status selects the phase-out threshold and must be one of single, married_joint, married_separate, head_of_household, or qualifying_widow; aliases status and filing are accepted, and common abbreviations such as mfj, mfs, hoh, and qss resolve to the canonical values. An unknown status fails with invalid_input listing the allowed values. Only married_joint uses the four hundred thousand dollar ceiling; the other four statuses share the two hundred thousand dollar ceiling, matching Form 8812 rather than the joint tax tables that qualifying surviving spouse otherwise uses. adjusted_gross_income is the household figure in United States dollars that the phase-out treats as modified AGI; it must be a finite number greater than or equal to zero, and the aliases agi, income, magi, and modified_adjusted_gross_income are accepted. If the amount is missing, empty, NaN, Infinity, a non-numeric string, or otherwise not a finite number, the task fails with invalid_input naming adjusted_gross_income and is not billed. On success the body echoes the canonical filing_status, the child count, and rounded adjusted_gross_income; returns credit_amount as the dollars remaining after the phase-out; max_credit as children times two thousand two hundred; credit_per_child; phaseout_threshold; phaseout_reduction; phaseout_steps as the number of one-thousand-dollar increments; excess_income as AGI minus the threshold, or zero; fully_phased_out; tax_year of 2026; and a formula string. This endpoint does not test age, residency, support, or a Social Security number, and it is not the earned-income Additional Child Tax Credit. Pricing for a successful item is a flat $0.002.
Where a child tax credit calculator earns its keep
Households planning a marriage, a job change, or a move across the joint threshold use the same three fields to compare single versus married_joint on the same children and the same income. Planning scripts that batch many households through the JSON API get the same dollars a human sees on the page. Keep requests small, pin credit_amount and fully_phased_out in tests, and you get a reproducible Child Tax Credit figure for landing pages, explainers, and lightweight household notebooks without standing up a tax-engine product of your own.
Integration use cases
Compare joint versus single on the same children
Batch the same child count and income through married_joint and single so a planning note shows how the four hundred thousand dollar ceiling changes the credit.
Newsroom or classroom phase-out explainer
Run many households through the JSON API so an explainer quotes the same Form 8812 dollars the widget shows, without a handwritten worksheet.
Technical questions
How is the child tax credit amount calculated?
Send qualifying_children, filing_status, and adjusted_gross_income. The API multiplies children by 2200, then subtracts 50 dollars for each 1000 dollars (or fraction) of AGI above 400000 if married_joint or above 200000 otherwise, and never returns less than zero.
Which filing status uses the 400000 phase-out threshold?
Only married_joint. Single, married_separate, head_of_household, and qualifying_widow all use 200000, matching Form 8812 (joint versus all other filing statuses).
What does the child tax credit calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.