CARES Act 2020 rebate calculator
A single filer with 50,000 of adjusted gross income and one qualifying child is owed a 1,700 Recovery Rebate Credit under the 2020 CARES Act. Enter filing status, income and dependents to rebuild the credit before reconciling it. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Income
- 50,000
- Filing status
- Single
- Dependents
- 1
- Tax year
- 2,020
- Base amount
- 1,200
- Dependents amount
- 500
- Gross credit
- 1,700
The Coronavirus Aid, Relief, and Economic Security Act of 2020 created a refundable Recovery Rebate Credit for eligible individuals, paid that year as the first Economic Impact Payment. The statutory amount is one thousand two hundred United States dollars for single, married-filing-separately, head-of-household, and qualifying surviving-spouse returns, or two thousand four hundred dollars on a joint return, plus five hundred dollars for each qualifying child counted here as a dependent. The credit then phases out at five percent of adjusted gross income above seventy-five thousand dollars, one hundred twelve thousand five hundred dollars, or one hundred fifty thousand dollars depending on filing status. This calculator applies that frozen 2020 formula from filing status, adjusted gross income, and the number of dependents, and returns the credit amount in dollars. Advance Economic Impact Payments already received are not subtracted: the result is the eligible rebate before Form 1040 reconciliation.
What the CARES Act 2020 recovery rebate credit is and how the amount is built
The CARES Act added Internal Revenue Code section 6428, which allowed a refundable credit against 2020 income tax equal to one thousand two hundred dollars for an eligible individual, or two thousand four hundred dollars for eligible individuals filing a joint return, plus five hundred dollars multiplied by the number of qualifying children under section 24(c). In everyday language those qualifying children are the dependents under age seventeen who would have generated a Child Tax Credit in 2020; this calculator takes that count as the integer field dependents.
The resulting gross credit is then reduced, but not below zero, by five percent of so much of adjusted gross income as exceeds a statutory threshold: one hundred fifty thousand dollars on a joint return, one hundred twelve thousand five hundred dollars for a head of household, and seventy-five thousand dollars for every other filing status, including single, married filing separately, and qualifying widow or qualifying surviving spouse.
A single filer with fifty thousand dollars of adjusted gross income and one qualifying child is entirely below the threshold, so the credit is one thousand seven hundred dollars. A single filer with eighty thousand dollars and no dependents is five thousand dollars over the threshold; five percent of that excess is two hundred fifty dollars, and the credit is nine hundred fifty dollars. Once adjusted gross income is high enough that the five-percent reduction swallows the entire gross amount, the credit is zero rather than negative.
You supply filing status, adjusted gross income, and the dependent count; it returns the statutory credit amount.
Where a CARES Act 2020 rebate calculator earns its keep
Households that still need to reconstruct what the 2020 Recovery Rebate Credit should have been — for an amended return, a missing Economic Impact Payment, or a dispute with a transcript — can send filing status, 2020 adjusted gross income, and the number of qualifying children and read a deterministic credit without rebuilding section 6428 by hand.
Educators teaching refundable credits and phase-outs can show that five percent of income above the threshold is a linear clawback, not a cliff, and that adding a qualifying child both raises the gross credit and stretches the income at which the credit fully disappears. This landing targets people searching for a CARES Act 2020 stimulus calculator, a recovery rebate credit calculator, or an Economic Impact Payment estimator from AGI; it is not a 2021 American Rescue Plan third-round tool, not a state rebate, and not a full Form 1040.
Prefer this capability when you already have 2020 filing status, adjusted gross income, and a qualifying-child count and want the frozen CARES Act formula.
What you can do with it
Reconstruct the 2020 Recovery Rebate Credit
Households and advisors send 2020 filing status, adjusted gross income, and qualifying-child count to display the statutory CARES Act rebate before reconciling Economic Impact Payments already received.
Check phase-out across filing statuses
Run the same AGI and dependent count as single versus married filing jointly versus head of household to see how the seventy-five, one hundred twelve and a half, and one hundred fifty thousand dollar thresholds change the credit.
FAQ
How is the CARES Act 2020 recovery rebate credit calculated?
Send a recognized filing status, non-negative 2020 adjusted gross income, and a non-negative integer count of qualifying children.
What happens if adjusted gross income is negative?
Recovery rebate credit is computed from adjusted gross income, and a negative income is rejected instead of being treated as a full rebate. Failed validation is not billed.
Does this subtract the Economic Impact Payment I already received?
No. The result is the statutory IRC §6428 amount before reconciling advance payments. Subtract any EIP already issued when you complete the 2020 Form 1040 Recovery Rebate Credit worksheet.
Which children count for the extra 500?
Qualifying children, meaning dependents under age 17 who would have generated a Child Tax Credit in 2020. Each one adds 500 to the base amount of 1,200, or 2,400 on a joint return.
Does it include the second stimulus payment from December 2020?
No. It applies only the original CARES Act formula from 2020. The later second-round payment approved in December 2020 is left out and would need to be worked out separately.
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/cash-act-2020 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"income":50000,"filing_status":"single","dependents":1}'const res = await fetch("https://api.kit.forhosting.com/fin/cash-act-2020", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"income": 50000,
"filing_status": "single",
"dependents": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/cash-act-2020",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"income": 50000,
"filing_status": "single",
"dependents": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/cash-act-2020", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"income":50000,"filing_status":"single","dependents":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"income":50000,"filing_status":"single","dependents":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/cash-act-2020", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"income": 50000,
"filing_status": "single",
"dependents": 1
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.cash_act_2020",
"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_abs | 1000000000000 |
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 with invalid_input instead of a silent zero.
What the CARES Act 2020 recovery rebate credit is and how the amount is built
This endpoint encodes that 2020 statute as fixed constants. It does not apply the later December 2020 second-round payment of six hundred dollars, does not subtract Economic Impact Payments already issued by the Treasury, and does not test immigration or dependent-on-another-return eligibility rules.
Input contract, filing statuses, phase-out math, and error behaviour
Common short codes such as mfj, mfs, hoh, and qss are accepted and normalized. Failed validation is never charged. Send a JSON body with three required fields. income (aliases agi, adjusted_gross_income, amount) is 2020 adjusted gross income in United States dollars, the figure that would appear on Form 1040 line 11. It may arrive as a JSON number or as a numeric string that matches a strict finite pattern without dollar signs or thousands separators. Absolute value must stay within one trillion so the product remains finite in IEEE double precision on the Worker and in the browser. A negative income is rejected with invalid_input; zero is allowed and, below every phase-out threshold, yields the full gross credit. filing_status (aliases status, filing) must be one of five canonical names: single, married_filing_jointly, married_filing_separately, head_of_household, or qualifying_surviving_spouse. Any other string is an unrecognized filing status and fails with invalid_input. dependents (aliases qualifying_children, children) is a non-negative integer from zero through ninety-nine counting qualifying children for the five-hundred-dollar add-on. A fractional count, a negative count, or a missing field fails with invalid_input naming the field. On success the response echoes income rounded to cents, the canonical filing_status, and dependents; reports tax_year 2020; returns base_amount of one thousand two hundred or two thousand four hundred, dependents_amount, gross_credit before phase-out, phase_out_threshold, phase_out_reduction, and credit as two-decimal money; and restates the formula. Pricing is a flat $0.002 per successful request with unit item.
Where a CARES Act 2020 rebate calculator earns its keep
Tax-prep notebooks and personal-finance apps that explain historical stimulus payments can pin a single filer at fifty thousand dollars with one dependent to one thousand seven hundred dollars, a joint return at one hundred sixty thousand dollars with two dependents to two thousand nine hundred dollars, and a deliberately negative income to the hard invalid_input path. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap. Round-trip checks are easy: recompute base plus five hundred times dependents, subtract five percent of AGI over the threshold, floor at zero, confirm the published credit within two-decimal rounding, then confirm the same numbers at the published $0.002 automation rate.
Integration use cases
Teach refundable credits and linear clawbacks
Classrooms and finance notebooks pin known triples (fifty thousand single with one child; one hundred sixty thousand joint with two children) and mark a negative AGI as invalid_input rather than a silent full rebate.
Technical questions
Which filing statuses and dependent counts are accepted?
Statuses: single, married_filing_jointly, married_filing_separately, head_of_household, and qualifying_surviving_spouse (short codes mfj, mfs, hoh, qss). dependents is an integer from 0 through 99 for qualifying children under 17. Unrecognized statuses and fractional or negative counts fail with invalid_input.
What does the CARES Act 2020 rebate calculator cost?
The browser tool is free. API requests use prepaid balance at $0.002 per successful call; invalid input is not billed.