Recycling CO2 savings calculator
The recycling CO2 savings calculator estimates the greenhouse-gas benefit of diverting a known mass of material from landfill to recycling.
Run — free
Enter the recycled mass in kilograms and an avoided-emission factor expressed as kilograms of carbon dioxide equivalent per kilogram of material. The calculator multiplies those values and reports the result in both kilograms and metric tonnes of CO2e. It is designed for transparent estimates where the factor comes from your lifecycle study, government inventory, waste contractor, or another documented source.
Choose a factor that matches the material and comparison
The avoided-emission factor controls the meaning of the estimate, so begin with a factor that represents the same material, region, treatment route, and baseline as your project. A factor for recycling aluminum should not be used for mixed paper, and a national average may not describe a facility whose electricity mix or transport distances differ substantially. The factor must compare recycling with landfill and should be expressed in kilograms of CO2 equivalent avoided per kilogram of material. CO2e combines carbon dioxide and other greenhouse gases using their warming effects. Record the factor's publisher, edition, geographic scope, and system boundary alongside the result. Some sources include collection, sorting, processing, displaced virgin production, and landfill effects; others cover only part of that chain. Those definitions can produce materially different answers even when both sources are reputable. This calculator deliberately does not supply a default factor because silently choosing one would make the output look more universal than it is. Use the best factor available for the decision, and label the result as an estimate tied to that source.
Enter mass consistently and understand the calculation
Convert the quantity actually recycled to kilograms before entering it. If records are in metric tonnes, multiply tonnes by 1,000; if records are in pounds, apply a documented pounds-to-kilograms conversion first. Do not enter the total waste generated unless all of it was recycled, because the calculation concerns diverted mass rather than the size of the entire waste stream. The calculator multiplies recycled mass in kilograms by the avoided-emission factor in kilograms CO2e per kilogram. For example, a mass of 1,250 kg and a factor of 0.85 produce 1,062.5 kg CO2e, or 1.0625 metric tonnes CO2e. Zero mass or a zero factor correctly produces zero savings. Negative mass is rejected because a recycled quantity cannot be below zero, and non-numeric mass is rejected instead of being guessed or coerced. The factor must also be a finite, non-negative number. Results are returned in kilograms for detailed records and metric tonnes for summaries, with both values derived from exactly the same multiplication.
Report the estimate with boundaries and uncertainty
Treat the output as a scenario estimate, not as a direct measurement from an emissions sensor. A useful report states the material, measured or estimated mass, factor value, factor source, reference year, location, and the landfill baseline. Keep evidence for the mass, such as scale tickets, invoices, or audited waste logs. If the mass or factor is uncertain, calculate a low and high scenario using defensible bounds rather than presenting extra decimal places as confidence. Avoid adding this result to another inventory figure when both already count displaced virgin production or landfill emissions; overlapping boundaries can double count the same benefit. Organizations following a formal greenhouse-gas standard should place the estimate in the category required by that standard and retain the underlying methodology for review. The API calculation costs $0.002 per item and is useful when applying approved factors across recurring waste records. Because the function is deterministic, identical numeric inputs always yield identical outputs, making it suitable for reproducible worksheets, internal dashboards, procurement comparisons, and audit trails. Revisit the factor when processes, suppliers, energy systems, or official datasets change.
What you can do with it
Summarize a recycling program
Convert verified monthly diversion weights into a consistent estimate of avoided CO2e for sustainability reporting.
Compare waste scenarios
Evaluate how different recycling volumes or approved material-specific factors change the estimated climate benefit.
Automate contractor records
Apply a documented avoided-emission factor to recurring scale-ticket masses in an auditable data pipeline.
FAQ
What formula does the calculator use?
CO2e savings in kilograms equals recycled mass in kilograms multiplied by the avoided-emission factor in kilograms CO2e per kilogram.
Where should the avoided-emission factor come from?
Use a documented lifecycle assessment, government inventory, waste authority, contractor methodology, or other credible source that matches the material, region, and landfill comparison.
Can I enter tonnes or pounds?
The input mass must be kilograms. Convert tonnes or pounds to kilograms before submitting the calculation.
What happens if the mass is negative or non-numeric?
The request returns an invalid-input error. The calculator does not reinterpret, clamp, or silently coerce an invalid mass.
What does an API calculation cost?
Each item costs $0.002. The same deterministic calculation is also suitable for the free browser experience.
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/earth/waste-recycling-co2-savings \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mass_kg":1250,"avoided_emission_factor_kg_co2e_per_kg":0.85}'const res = await fetch("https://api.kit.forhosting.com/earth/waste-recycling-co2-savings", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mass_kg": 1250,
"avoided_emission_factor_kg_co2e_per_kg": 0.85
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/earth/waste-recycling-co2-savings",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mass_kg": 1250,
"avoided_emission_factor_kg_co2e_per_kg": 0.85
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/earth/waste-recycling-co2-savings", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mass_kg":1250,"avoided_emission_factor_kg_co2e_per_kg":0.85}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mass_kg":1250,"avoided_emission_factor_kg_co2e_per_kg":0.85}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/earth/waste-recycling-co2-savings", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"mass_kg": 1250,
"avoided_emission_factor_kg_co2e_per_kg": 0.85
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "earth.waste_recycling_co2_savings",
"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. |