ForHosting KIT · Science

COVID lockdown pollution calculator

A city that went from ten million to four million vehicle-kilometres at 0.32 g of NOx per kilometre avoided 1,920 kg of NOx: turn a traffic drop into grams, kilograms and tonnes you can cite. 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
Baseline vkm
10,000,000
Lockdown vkm
4,000,000
Emission factor g per km
0.32
You get
Reduced vkm
6,000,000
Avoided mass g
1,920,000
Avoided mass kg
1,920
Avoided mass t
1.92

Stay-at-home orders in 2020 cut road traffic in almost every city that published vehicle-kilometer statistics, and satellite and roadside monitors recorded a matching drop in nitrogen oxides, fine particles, and carbon monoxide. Researchers, city air-quality desks, and classroom climate labs therefore need a transparent way to turn that mobility shock into avoided pollutant mass rather than a vague claim that lockdowns cleaned the air. This COVID lockdown pollution calculator estimates the avoided mass of a chosen air pollutant by subtracting lockdown vehicle-kilometers from the baseline of a matching period and multiplying the reduced vehicle-kilometers by a per-kilometer emission factor in grams. Zero on any factor is valid and yields a well-defined mass, including a zero result when traffic did not change or the fleet factor is zero.

What a lockdown pollution inventory is and how avoided mass is computed

A lockdown air-pollution inventory answers a narrow, bookkeeping question: if a fleet that used to drive a known number of vehicle-kilometers instead drove a smaller number for the same window of days, how many grams of a named pollutant were not emitted? You supply the emission factor because it is not a universal constant.

It depends on the pollutant (nitrogen oxides, PM2.5, carbon monoxide, volatile organics, or carbon dioxide), the fleet mix of cars, vans, buses, and trucks, the fuel, the speed distribution, and whether the figure is a tailpipe factor or a well-to-wheel factor. A city that drove ten million vehicle-kilometers before lockdown and four million during lockdown, at 0.32 grams of NOx per kilometer, avoided 1 920 000 grams, which is 1 920 kilograms or 1.92 metric tonnes.

City lockdown air-quality briefings

Turn a published drop in vehicle-kilometers and a fleet NOx or PM2.5 factor into avoided grams, kilograms, and tonnes for a public briefing.

Academic mobility-to-mass replication

Reproduce the lockdown inventory identity used in 2020 traffic papers: reduced vehicle-kilometers times a grams-per-kilometer emission factor.

Classroom climate and journalism estimates

Let students or reporters vary baseline traffic, lockdown traffic, and the emission factor, then verify that avoided mass tracks the VKM reduction.

How is the pollution avoided during a lockdown calculated?

Subtract lockdown vehicle-kilometres from those of a baseline period of the same length, then multiply the difference by the emission factor in grams per kilometre. Ten million minus four million at 0.32 g of NOx gives 1,920,000 grams.

Which emission factor should I use?

Use a fleet-average factor for the pollutant you care about, in grams per vehicle-kilometre, such as 0.32 g of NOx or 0.025 g of PM2.5. It depends on fleet mix, fuel and speeds, so take it from a source that matches your city.

Does it show how much cleaner the air became?

No. It gives the pollutant mass not emitted at the tailpipe, not the concentration people breathe. Turning that mass into air quality needs a chemical transport model, which sits outside this calculation.

What happens if traffic rose during the lockdown?

The result turns negative and is reported as an increase instead of being cut off at zero, so a rebound in traffic shows up honestly in your inventory.

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/eco/covid-pollution

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/eco/covid-pollution \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"baseline_vkm":10000000,"lockdown_vkm":4000000,"emission_factor_g_per_km":0.32}'
{
  "baseline_vkm": 10000000,
  "lockdown_vkm": 4000000,
  "emission_factor_g_per_km": 0.32
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "eco.covid_pollution",
  "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.

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.

Negative vehicle-kilometers and a negative emission factor are rejected as invalid_input because a physical inventory cannot start from a negative distance or a negative grams-per-kilometer intensity.

What a lockdown pollution inventory is and how avoided mass is computed

The identity is the same one used in COVID mobility papers that convert a traffic shock into a mass: reduced vehicle-kilometers equal baseline_vkm minus lockdown_vkm, and avoided_mass_g equals that difference times emission_factor_g_per_km. If lockdown traffic exceeds the baseline the difference is negative and the endpoint reports an increase rather than inventing a floor at zero, because a honest inventory must be able to show a rebound. The calculator does not invent a fleet factor from a city name, does not call a traffic API, and does not apply a chemical transport model; those layers sit outside this multiply and should be applied in your own study if you need ambient concentrations rather than avoided mass at the tailpipe.

Input contract, aliases, negatives, and the mass you get back

Zero is valid on every factor. Example: ten million baseline vehicle-kilometers, four million lockdown vehicle-kilometers, and 0.32 grams per kilometer yield a sixty percent reduction and 1 920 000 grams avoided. POST a JSON body with three required finite numbers: baseline_vkm, the vehicle-kilometers traveled in the comparison or pre-lockdown period; lockdown_vkm, the vehicle-kilometers traveled during the lockdown window of the same length; and emission_factor_g_per_km, the fleet-average grams of pollutant per vehicle-kilometer. Accepted aliases for the baseline are baseline_vkt, vkm_baseline, vehicle_km_baseline, and baseline_vehicle_km. Accepted aliases for the lockdown total are lockdown_vkt, vkm_lockdown, vehicle_km_lockdown, and lockdown_vehicle_km. Accepted aliases for the factor are ef_g_per_km, emission_factor, g_per_km, factor_g_km, and ef. Each field may arrive as a JSON number or as a decimal numeric string. Missing fields, empty strings, non-finite values, and magnitudes beyond the supported absolute ceiling fail with invalid_input naming the field. A negative baseline, a negative lockdown total, or a negative emission factor is rejected because vehicle-kilometers and grams per kilometer cannot be negative; the error message states that the field cannot be negative and the request is not billed. On success the body echoes the cleaned inputs and returns reduced_vkm, avoided_mass_g as the primary mass, plus avoided_mass_kg, avoided_mass_t, and avoided_mass_lb, a direction of avoided, increased, or unchanged, and formula and equation strings for display. When the baseline is positive it also returns reduction_percent.

Where a COVID lockdown pollution calculator earns its keep

City air-quality desks use a COVID lockdown pollution calculator so a published drop in vehicle-kilometers times a fleet NOx or PM2.5 factor becomes a tonnes total they can drop into a briefing without opening a workbook of unit conversions. Failed validation does not consume balance. Keep requests small, pin the rounded gram, kilogram, tonne, and pound figures in tests, and you get reproducible avoided-mass estimates for homework, LMS plugins, sustainability scripts, and edge workers without standing up an emissions-inventory stack of your own. Academic groups that replicate 2020 mobility papers need a deterministic oracle that rejects a negative kilometer total as invalid_input instead of returning a hollow success with a negative distance that a buggy pipeline might treat as a credit. Classroom environmental-science labs and journalism desks often convert a stay-at-home traffic chart into a grams figure before they load a chemical transport model; calling a tiny parse API avoids pulling a desktop spreadsheet for a three-factor inventory.

How is avoided pollutant mass during lockdown calculated?

Send finite non-negative numbers baseline_vkm, lockdown_vkm, and emission_factor_g_per_km. The API returns avoided_mass_g = (baseline_vkm − lockdown_vkm) × emission_factor_g_per_km, plus kilograms, tonnes, and pounds.

What happens if any input is negative?

The task fails with invalid_input naming the field. Vehicle-kilometers and a grams-per-kilometer emission factor cannot be negative, and the request is not billed.

What units does the COVID pollution calculator return?

The primary mass is avoided_mass_g. The same mass is also reported as avoided_mass_kg, avoided_mass_t (metric tonnes), and avoided_mass_lb (international avoirdupois pounds).

What if lockdown traffic is higher than the baseline?

The request succeeds. reduced_vkm and avoided mass are negative, and direction is increased. That is the honest inventory for a rebound, not an error.

What does the COVID lockdown pollution calculator cost?

The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →