ForHosting KIT · Health & fitness

Vaccine immunity calculator

A vaccine with 95% published efficacy, given as two doses, still provides about two-thirds protection six months later, because the model halves protection every 12 months. Enter efficacy, doses and months since the last dose. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Efficacy
95
Doses
2
Months
6
You get
Remaining percent
67.1751442127
Peak percent
95
Dose factor
1
Waning factor
0.7071067812

Vaccine-induced protection is not a constant. Published vaccine efficacy describes peak protection around the time a primary series is completed; each additional month after the last dose lets that protection wane along a smooth exponential curve, and an incomplete series never reaches the published peak. This vaccine immunity calculator estimates remaining protection as a percentage from three numbers: efficacy between zero and one hundred, the count of doses received, and months elapsed since the last dose. It applies a fixed educational waning rate with a twelve-month half-life and a two-dose saturating series factor, then returns the remaining percentage together with the peak, the dose factor, and the waning factor so every step can be audited. No network lookup, no randomness, and no dependence on the current date—only arithmetic on the numbers you provide. Treat every result as an educational estimate of remaining vaccine-induced protection, never as a clinical titre, a booster recommendation, or a substitute for a clinician.

How remaining vaccine-induced protection is estimated

Published vaccine efficacy is a peak figure, not a lifetime constant. After a completed primary series the immune response is strongest near the last dose; neutralizing activity and clinical protection then decline along a curve that, for educational work, is well approximated by first-order exponential waning.

An incomplete series is scaled linearly toward that peak with a two-dose saturating factor: zero doses contribute nothing, one dose reaches half of published efficacy, two or more doses reach the full published efficacy, and further doses do not raise the peak above that published number because extra doses in this model only reset the clock that the caller already supplies as months since the last dose. Algebraically remaining percent equals efficacy times the minimum of one and doses over two, times the exponential waning factor.

That single expression covers fractional months as well as whole ones: six months after a completed series you still have about seventy-one percent of the peak, not half. Efficacy must sit in the closed interval from zero to one hundred because a percentage outside that range is not a vaccine efficacy. The implementation does not look up a pathogen, a brand, or a serotype; it only evaluates the formula with the numbers you send so dashboards, homework keys, and batch notebooks share one transparent definition of remaining vaccine-induced protection.

Treat every result as an educational percentage from this definition, never as a measured antibody titre or a medical recommendation.

Classroom epidemiology half-life curves

Fix efficacy and a completed two-dose series, sweep months, and plot remaining vaccine-induced protection so learners see a twelve-month half-life instead of a flat efficacy number.

Journalism and public-explainers of waning

Show readers how a published ninety-five percent efficacy falls six or twelve months after the last dose using one auditable exponential formula.

What formula does the vaccine immunity calculator use?

Peak protection is published efficacy scaled by a two-dose saturating series; waning uses a fixed twelve-month half-life.

How do extra doses after a two-dose series affect the estimate?

Doses at or above two saturate the peak at published efficacy.

How much protection does a single dose give?

In this model one dose reaches half of the published efficacy at its peak, and two or more doses reach the full figure. With no doses at all, the estimate is zero.

How fast does protection wane?

It halves every 12 months after the last dose, along a smooth exponential curve. Six months after a completed series about seventy-one percent of the peak remains, not half.

Does it account for age, vaccine brand or a weakened immune system?

No. There is no pathogen, brand, serotype, age or immune-status adjustment, and no calendar date. Only efficacy, doses and months enter the formula.

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.

POSThttps://api.kit.forhosting.com/health/vaccine-immunity

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.

curl -X POST https://api.kit.forhosting.com/health/vaccine-immunity \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"efficacy":95,"doses":2,"months":6}'
{
  "efficacy": 95,
  "doses": 2,
  "months": 6
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "health.vaccine_immunity",
  "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.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_doses20
max_months600
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

The free browser tool and the API share the same pure JavaScript library, so interactive checks and automated tasks always agree.

How remaining vaccine-induced protection is estimated

This calculator uses a fixed half-life of twelve months: remaining protection halves every year after the last dose, which is equivalent to multiplying the peak by the exponential of minus the natural logarithm of two times months divided by twelve.

Input contract, outputs, and error behaviour

Failed validation is not billed. There is no pathogen table, no age adjustment, no immunocompromise flag, and no calendar date in this capability—those are separate product intents. Send a JSON object with three required finite numbers: efficacy, the published vaccine efficacy in percent on the closed interval from zero to one hundred; doses, a non-negative integer count of doses received, at most twenty; and months, the non-negative elapsed time in months since the last dose, at most six hundred, with fractional months allowed. Aliases such as vaccine_efficacy, ve, efficacy_pct, n_doses, doses_received, dose_count, shots, months_since_last_dose, months_since, elapsed_months, and time_months are accepted so forms and scripts do not need a single field name. Missing required fields, empty strings, non-finite values, non-integer doses, negative doses or months, doses above twenty, months above six hundred, and efficacy outside zero to one hundred all fail with invalid_input and a message that names the problem. On success the response returns remaining_percent as the primary estimate, echoes efficacy, doses, and months, and includes peak_percent, dose_factor, waning_factor, half_life_months equal to twelve, waning_rate_per_month equal to the natural log of two divided by twelve, primary_series_doses equal to two, and a formula string restating remaining_percent equals efficacy times min of one and doses over two times exp of minus ln two times months over twelve. Pair remaining_percent with your own schedule if you need to compare the educational estimate against a booster policy you chose yourself. Successful API calls cost the published $0.002 per item; validation failures never consume prepaid balance.

Where teams use it and how pricing works

Public-health explainers, immunization dashboards, and journalism notebooks use a vaccine immunity calculator to show how remaining protection falls after the last dose without reinventing exponential-waning code in every client. Classroom epidemiology modules can fix efficacy and doses and sweep months to illustrate a twelve-month half-life without a spreadsheet cell that drifted when someone edited the rate. The interactive tool above runs free in the browser for exploratory checks. Source inputs and outputs are retained only for the documented retention window and are never used to train models. Research pipelines that log self-reported dose counts and last-dose ages can post many independent tasks—one per person and interval—and store remaining_percent next to the session for later analysis. Programmatic calls use the prepaid KIT balance per successful item; invalid input never consumes balance. Latency is dominated by the task handshake rather than by computation, which makes the endpoint suitable for form validation and batch reprocessing of historical immunization tables alike. Always present remaining_percent as an educational estimate from the fixed-waning definition; clinical decisions require qualified professionals, local schedules, and eligibility context this tool does not collect.

Immunization dashboard remaining-protection labels

Convert logged efficacy, dose counts, and months since the last dose into a deterministic remaining_percent for each record without embedding waning math in every client.

Why does efficacy outside 0-100 fail?

Vaccine efficacy is a percentage. Values below 0 or above 100 are not a valid efficacy, so the task fails with invalid_input and is not billed.

Does remaining_percent equal a lab titre or a booster recommendation?

No. The result is an educational percentage from a fixed-waning formula. It is not a neutralizing-antibody titre, a diagnosis, or advice to take a booster.

Is the vaccine immunity calculator free?

The browser tool is free. API calls cost $0.002 per successful request from your prepaid KIT balance; failed validation is never charged.

Read the full KIT documentation →