Loss ratio calculator
Incurred losses of 650,000 against earned premiums of 1,000,000 give a loss ratio of 65%: 65 cents of every earned premium dollar went to claims. Check whether a book of business pays its claims from the premium it has earned. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Incurred losses
- 650,000
- Earned premiums
- 1,000,000
- Loss ratio
- 65
The insurance loss ratio — searched as a loss ratio calculator, claims ratio calculator, or incurred-losses-to-earned-premiums calculator — is the share of earned premium consumed by claims in a reporting period. Given incurred losses and earned premiums in the same currency and on the same reinsurance basis, the identity is incurred losses divided by earned premiums, expressed as a percentage. Underwriters, appointed actuaries, rating analysts, and carrier finance teams use this figure whenever they judge whether a book of business is paying its claims out of the premium it has actually earned rather than the premium it has merely written. This loss ratio calculator accepts those two amounts, rejects a zero or negative earned-premium base instead of dividing by zero, and returns the loss ratio as a percent together with the restated formula.
What an insurance loss ratio means and how the formula works
An insurance loss ratio answers one underwriting question: what share of the premium the carrier has actually earned was consumed by claims in the same period? Searchers who type loss ratio calculator want that quotient as a percentage, not a combined ratio that also folds underwriting expenses, not a written-premium ratio that ignores the earning pattern, and not a mutual-fund expense ratio that belongs to asset management.
Incurred losses is the numerator: claims paid during the period plus the change in case and IBNR loss reserves, after reinsurance recoveries if you are working on a net basis, taken in the same currency as the premium. Earned premiums is the denominator: the portion of written premium that has been earned over coverage already provided, typically after returns and the unearned-premium movement, not cash collected and not the written line on a production report.
The identity is loss ratio equals incurred losses divided by earned premiums, then multiplied by one hundred so the result is a percent. A result of sixty-five means sixty-five cents of every earned-premium dollar went to claims. A result of one hundred means claims equalled earned premium before expenses.
A result above one hundred means the book lost money on claims alone, before commission, acquisition, and general expense. A result of zero means the incurred-loss line you supplied is empty. The calculator does not fetch a statutory blank, does not on-level a vintage, and does not annualize a stub quarter unless you already put annualized amounts in both inputs.
Prefer the same currency, the same reinsurance basis, and the same accident or calendar period for both inputs; mixing accident-year incurred losses with calendar-year earned premium is not an insurance loss ratio, it is a mixed snapshot.
Where a loss ratio calculator earns its keep
Underwriting committees and appointed actuaries use a loss ratio calculator when a line, state, or program pack needs a comparable claims-to-earned figure before the combined ratio is assembled. Pricing teams recompute the ratio from the claims triangle and the earned-premium series so the rate filing matches the management report, including the case of a new product whose earned premium is still zero and must fail rather than print Infinity.
Educators and actuarial-exam homework need an oracle that divides incurred losses by earned premiums, multiplies by one hundred, and rejects a zero or negative denominator the way a marking scheme does, instead of letting a spreadsheet leak Infinity into a gradebook. Failed validation is not billed. Keep earned premiums positive, pin the rounded percent in tests, and you get reproducible loss-ratio figures for spreadsheets, workflow tools, and edge workers without standing up an insurance-analytics library of your own.
Use this capability when you already have both incurred losses and earned premiums; if you have only written premium, or you want a combined ratio that adds underwriting expense, that is a different identity and does not belong in this loss-ratio definition. Reinsurers and managing general agents can run the same identity on a treaty layer or a program book once those two stocks are in hand, without mixing calendar-year cash with accident-year incurred.
What you can do with it
Underwriting and statutory packs
Convert incurred losses and earned premiums into a percent loss ratio so a line, state, or program pack reports claims against earned exposure, not against written production.
Pricing and rate filings
Reproduce the filed loss ratio from the claims triangle and the earned-premium series, including rejection when earned premium has not yet accrued.
Classroom and actuarial homework
Mark loss-ratio items with a deterministic oracle that divides incurred losses by earned premiums, returns a percent, and fails loudly on a zero or negative denominator.
FAQ
Does this include underwriting expenses or produce a combined ratio?
No. The identity is incurred losses over earned premiums. Commission, acquisition, and general expense belong in a combined ratio, which is a different figure.
What does a loss ratio above 100% mean?
Claims cost more than the premium earned in the period, so the book lost money on claims alone, before commissions, acquisition costs and general expenses. At exactly 100%, claims used up all of the earned premium.
Can I use written premium instead of earned premium?
No. Written premium is a production figure; earned premium is the part that matches coverage already provided. Dividing by written premium gives a different ratio that a reviewer cannot recompute from your statements.
What counts as incurred losses?
Claims paid in the period plus the change in loss reserves, including claims incurred but not yet reported. If you work net of reinsurance, subtract recoveries and use earned premium on the same net basis.
Can the loss ratio be negative?
Yes. After a large reserve release, incurred losses can be negative for the period, and the ratio then comes out as a negative percent. That is a valid result, not an error.
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/loss-ratio \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"incurred_losses":650000,"earned_premiums":1000000}'const res = await fetch("https://api.kit.forhosting.com/fin/loss-ratio", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"incurred_losses": 650000,
"earned_premiums": 1000000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/loss-ratio",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"incurred_losses": 650000,
"earned_premiums": 1000000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/loss-ratio", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"incurred_losses":650000,"earned_premiums":1000000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"incurred_losses":650000,"earned_premiums":1000000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/loss-ratio", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"incurred_losses": 650000,
"earned_premiums": 1000000
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.loss_ratio",
"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
What an insurance loss ratio means and how the formula works
Negative incurred losses can appear after a large reserve release and yield a negative percent; that is a valid arithmetic result, not a rejected input. Earned premiums must be strictly greater than zero because a zero or negative earned-premium base makes the loss ratio undefined; this endpoint fails with invalid_input instead of printing Infinity.
Input contract, response shape, rounding, and error behaviour
A new binder whose earned premium has not yet accrued must fail rather than print Infinity. Do not send written premium in place of earned premium: written is a production measure, earned is the exposure that belongs in this denominator. Keep both figures on the same gross-or-net basis so the percent you store next to a statutory exhibit is the same percent a reviewer can recompute from the two lines you already published. POST a JSON body with two required finite numbers: incurred_losses and earned_premiums, in the same currency, on the same reinsurance basis, and covering the same accident year, underwriting year, or calendar period. incurred_losses (aliases incurred_loss, losses_incurred, claims_incurred, and total_incurred_losses) must be a finite number; zero is allowed and yields a zero percent loss ratio, and a negative figure is allowed when a reserve release dominates paid claims. earned_premiums (aliases earned_premium, premiums_earned, net_earned_premium, and net_earned_premiums) must be a finite number strictly greater than zero because the insurance loss ratio divides incurred losses by earned premiums. Missing fields, empty strings, non-finite values, and a zero or negative earned-premium base fail with invalid_input naming the issue, and those failures are not billed. On success the body echoes both inputs, returns loss_ratio as the percent quotient rounded to twelve decimal places, and a formula string restating the identity. Example: incurred losses of six hundred fifty thousand against earned premiums of one million yields loss_ratio 65. Example: incurred losses of eighty against earned premiums of one hundred twenty yields a repeating decimal rather than a silent empty payload. Pair the percent with your own line-of-business notes if the memo needs a cheap or expensive flag; this endpoint computes the loss ratio only and does not invent a combined ratio, a combined-ratio target, an on-level factor, or a reserve adequacy verdict.
Technical questions
How is an insurance loss ratio calculated?
Send finite numbers incurred_losses and earned_premiums (> 0) in the same currency and on the same reinsurance basis. The API returns loss_ratio = (incurred_losses / earned_premiums) × 100 as a percentage.
What happens if earned premiums are zero or negative?
The task fails with invalid_input. An insurance loss ratio cannot divide by a zero or negative earned-premium base, so the request is rejected and is not billed.
Is the result a percent or a decimal?
The primary field loss_ratio is a percentage (65 for a 65% loss ratio), which is incurred losses divided by earned premiums multiplied by one hundred.
What does the loss ratio calculator cost?
The browser tool is free. API requests use prepaid balance at $0.002 per successful call; invalid input is not billed.