Unemployment benefit HEALS calculator
With 1,000 of prior weekly wages, a 50% state rate and a 400 state maximum, HEALS would have paid 700 a week: 400 from the state plus a 300 federal top-up toward seventy percent of wages. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Wages
- 1,000
- Replacement rate
- 0.5
- Max weekly
- 400
- Min weekly
- 50
- State weekly
- 400
- Heals target
- 700
- Heals replacement rate
- 0.7
- Federal supplement
- 300
The HEALS Act unemployment benefit is the weekly amount a 2020 Senate package would have paid by topping state unemployment insurance up toward seventy percent of prior weekly wages, not a flat six-hundred-dollar CARES add-on and not a three-hundred-dollar FEMA Lost Wages Assistance week. Claimants, case workers, journalists, and benefits desks type unemployment benefit heals calculator when they already hold prior weekly wages and the state replacement parameters — replacement rate, maximum weekly benefit, and an optional state floor — and they need that HEALS weekly amount in one currency. This calculator accepts those finite numbers, builds the state weekly benefit as a clamped replacement of wages, computes a seventy-percent HEALS target, applies a five-hundred-dollar federal supplement cap, and returns the weekly amount rounded half-up to two decimal places. Zero wages are allowed.
How prior wages and state replacement parameters become a HEALS weekly amount
An unemployment benefit heals calculator answers a different question from a lost-wages total or a stimulus rebate: what weekly unemployment amount the July 2020 HEALS Act wage-replacement title would have paid, given prior weekly wages and the state rules that already compute a state weekly benefit. The identity this calculator uses has three lines. Third the federal supplement is the gap between that target and the state weekly amount, never below zero and never above five hundred dollars, so a high earner is not paid an unbounded top-up.
The weekly amount returned is state weekly plus that federal supplement. Example: one thousand of prior weekly wages, a fifty-percent state rate, a four-hundred state maximum, and a fifty-dollar state floor yield a state weekly of four hundred, a HEALS target of seven hundred, a federal supplement of three hundred, and a weekly benefit of seven hundred.
Example: two thousand five hundred of prior weekly wages with the same fifty-percent rate and a four-hundred-fifty state maximum yield a state weekly of four hundred fifty, a target of one thousand seven hundred fifty, a federal supplement capped at five hundred, and a weekly benefit of nine hundred fifty. Zero wages are allowed: the weekly amount then follows the state floor if you sent one, with a zero HEALS target and a zero federal supplement.
Negative wages are rejected, because a negative prior-wage line is not an unemployment-benefit question this tool answers. This calculator does not look up a state's current statutory maximum, CARES six-hundred-dollar FPUC, FEMA Lost Wages Assistance weeks, tax withholding, or remaining duration. You supply prior weekly wages and the state replacement parameters that already share one currency; the calculator applies the HEALS identity and rounds money half-up to two decimal places so goldens compare byte-for-byte across runtimes.
Where a HEALS unemployment benefit calculator earns its keep
Unemployment claimants comparing 2020 proposals use an unemployment benefit heals calculator to turn prior weekly wages and a known state rate and cap into one weekly amount before they read a fact sheet that only quotes seventy percent. A one-thousand-dollar wage week at a fifty-percent state rate with a four-hundred cap is not ranked by the state four hundred; it is ranked by the seven hundred the HEALS title would have paid after the three-hundred federal top-up.
Case workers pin the same fields next to a determination letter so a one-line HEALS counterfactual can be checked against the live state award without opening a full benefits engine. Journalists and legislative aides drop a typical wage, a state replacement rate, and a state maximum into the contract to show how the five-hundred-dollar federal supplement cap binds for high earners and does not bind for median claimants. Failed validation does not consume balance.
What you can do with it
Show when the five-hundred-dollar federal cap binds
Drop a high prior-wage week and a modest state maximum into the same contract so a fact sheet can report the capped federal supplement instead of an unbounded seventy percent.
FAQ
What happens if wages are negative?
A negative prior-wage line is not an unemployment-benefit figure this calculator produces. Zero wages are allowed and follow the state floor if you sent one.
Does this calculator look up my state's current maximum weekly benefit?
The calculator applies the HEALS identity to the numbers you send; it does not load statutory tables, CARES FPUC, or FEMA Lost Wages Assistance weeks.
How is the HEALS weekly amount calculated?
First the state weekly benefit is your wages times the state rate, kept between the state floor and maximum. The HEALS target is seventy percent of wages, and the federal top-up fills the gap up to that target.
Why is the federal top-up capped?
The supplement can never be negative and never exceed 500 a week, so a high earner is not paid an unlimited top-up. The weekly benefit is the state amount plus that capped supplement.
Is this the CARES add-on or FEMA Lost Wages Assistance?
No. It models the July 2020 HEALS Act wage-replacement proposal, not the flat CARES weekly add-on and not a FEMA Lost Wages Assistance week. Each of those follows its own rule.
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/unemployment-benefit-heals \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"wages":1000,"replacement_rate":0.5,"max_weekly":400}'const res = await fetch("https://api.kit.forhosting.com/fin/unemployment-benefit-heals", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"wages": 1000,
"replacement_rate": 0.5,
"max_weekly": 400
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/unemployment-benefit-heals",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"wages": 1000,
"replacement_rate": 0.5,
"max_weekly": 400
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/unemployment-benefit-heals", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"wages":1000,"replacement_rate":0.5,"max_weekly":400}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"wages":1000,"replacement_rate":0.5,"max_weekly":400}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/unemployment-benefit-heals", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"wages": 1000,
"replacement_rate": 0.5,
"max_weekly": 400
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.unemployment_benefit_heals",
"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
Negative wages fail with invalid_input and are not billed.
How prior wages and state replacement parameters become a HEALS weekly amount
First the state weekly benefit is replacement_rate times wages, then clamped between min_weekly and max_weekly, the same floor-and-ceiling every state unemployment shop applies before a federal title is considered. Second a HEALS target is seventy percent of those prior weekly wages, the replacement share the Senate package named in public summaries of the American Workers, Families, and Employers Assistance Act.
Input contract, response shape, and error behaviour
POST a JSON body with prior weekly wages and the state replacement parameters that compute a state weekly unemployment amount. wages is required and must be a finite number greater than or equal to zero; aliases prior_wages, weekly_wages, and amount map to the same field so a worksheet can keep its column names. replacement_rate is required and must be a fraction in the closed interval from zero to one, for example 0.5 for fifty percent, not fifty; aliases rate, state_rate, and replacement are accepted. max_weekly is required and is the state maximum weekly benefit in the same currency as wages; aliases maximum_weekly, cap, and max_weekly_benefit are accepted. min_weekly is optional, defaults to zero, and is the state floor; aliases minimum_weekly, floor, and min_weekly_benefit are accepted. Each numeric field may arrive as a JSON number or a numeric string. Missing fields, empty strings, and non-finite values — NaN, Infinity, or text that does not parse as a number — fail with invalid_input naming the field. Those failures are not billed. Negative wages also fail with invalid_input, because a prior-wage line that starts below zero is not a HEALS unemployment figure anyone is asking this calculator to produce. A replacement_rate outside zero through one fails the same way, as does a negative max_weekly, a negative min_weekly, or a floor above the state cap. On success the body echoes wages, replacement_rate, min_weekly, and max_weekly, then reports state_weekly, heals_target, heals_replacement_rate, federal_supplement, federal_cap, weekly_benefit, currency, and a formula string restating the identity. The primary figure people came for is weekly_benefit. Pair the JSON with your own state's published rate and maximum; this endpoint does not look up tables. Pricing is a flat $0.002 per successful request.
Where a HEALS unemployment benefit calculator earns its keep
Keep wages non-negative, keep replacement_rate in the unit interval, pin the rounded weekly_benefit in tests, and you get a reproducible HEALS weekly amount for teasers, LMS plugins, and edge workers without standing up a benefits engine of your own.
Integration use cases
Check a HEALS weekly amount from prior wages
Turn prior weekly wages, a state replacement rate, and the state maximum into one weekly_benefit before you compare the HEALS title with a live unemployment award.
Pin a HEALS counterfactual next to a state determination
Case files and legislative memos keep wages, replacement_rate, and max_weekly beside weekly_benefit so the counterfactual is a reproducible identity, not a drifted spreadsheet.
Technical questions
How is the HEALS Act weekly unemployment benefit calculated from prior wages?
Send prior weekly wages, a state replacement_rate in [0, 1], and max_weekly. The API builds state_weekly as replacement_rate times wages clamped between min_weekly and max_weekly, then returns weekly_benefit as state_weekly plus min(500, max(0, 0.70 times wages minus state_weekly)), rounded half-up to two decimal places.
Should I send replacement_rate as 0.5 or as 50?
Send a fraction in [0, 1]. Fifty percent is 0.5, not 50. A value outside that interval fails with invalid_input naming replacement_rate.
What does a successful unemployment benefit heals call return, and what does it cost?
The body echoes wages and the state parameters, then reports state_weekly, heals_target, federal_supplement, and weekly_benefit, plus a formula string. The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.