A structured, queryable climate science knowledge base with denial debunks, prediction tracking, lobbying exposure, and bias flagging.
222 entries | 1,742 key facts | 199 denial responses | 191 tracked predictions | 100 lobbying exposures | 115 bias flags
Most climate data online falls into one of these traps:
- Raw datasets (NASA, NOAA) that require scientific literacy to interpret
- Academic papers that are paywalled and written for other academics
- Activist sites that cherry-pick and editorialize
- Wikipedia that's surface-level and avoids "taking sides" even when the science is one-sided
This database is different. It's a structured JSON knowledge base designed for:
- Journalists who need instant, sourced facts on deadline
- Educators who need clear explanations with evidence strength ratings
- Fact-checkers who need denial claims mapped to responses
- Content creators who need accurate science without having to read 100 papers
- Developers who want to build climate tools on top of structured data
Every major climate denial claim mapped to its factual response with evidence sources and strength ratings.
{
"claim": "CO2 has been higher before, so current levels aren't a problem",
"response": "During events like the PETM (56 million years ago), high CO2 caused mass disruption. The issue isn't the level alone but the RATE of change. Current release rate is 10x faster than the PETM and unprecedented in 66 million years.",
"evidence": ["Zeebe et al. 2016 Nature Geoscience", "Gutjahr et al. 2017"],
"strengthOfEvidence": "overwhelming"
}Climate predictions from scientists and bodies tracked against actual outcomes.
{
"prediction": "Global temperature will exceed 1.5C above pre-industrial levels",
"predictedBy": "IPCC AR6",
"predictedFor": "2030-2035",
"accuracy": "on-track"
}Documented fossil fuel industry actions with evidence sources.
{
"entity": "ExxonMobil",
"action": "Internal climate research accurately predicted warming while publicly funding denial",
"evidence": "Supran et al. 2023 Science — Exxon's own models predicted warming with 'ichilling accuracy'",
"impact": "Delayed public understanding and policy action by decades"
}Unlike most climate resources, this database flags potential bias — including from pro-climate sources.
{
"flag": "doom-exaggeration",
"note": "Presents worst-case scenarios as certainties rather than possibilities. Scientific content is accurate but framing skews toward hopelessness."
}| Topic | Coverage | Entries |
|---|---|---|
| Climate Fundamentals | CO2 physics, temperature records, ECS, attribution | Strong |
| Oceans | Sea level, AMOC, coral, acidification, deoxygenation | Strong |
| Tipping Points | AMOC, Greenland, permafrost, Thwaites, Amazon, cascades | Strong |
| Fossil Fuel Lobbying | Exxon, Koch network, think tanks, dark money, greenwashing | Strong |
| Predictions vs Reality | Hansen, IPCC projections, "faster than expected" pattern | Strong |
| Biodiversity Loss | Extinction rates, insect decline, 6th extinction, habitat fragmentation | Strong |
| Scientific Methodology | GCMs, CMIP6, IPCC process, attribution science, RCP/SSP scenarios | Strong |
| Data Sources | Five temperature datasets, Keeling Curve, ice cores, Argo | Strong |
| Extinction History | Big Five mass extinctions, PETM, Permian deep dive | Strong |
| Planetary Boundaries | Rockstrom framework, 6 of 9 crossed, novel entities | Strong |
| Aerosol Masking | Global dimming, IMO 2020, unmasking risk, geoengineering | Strong |
| Water Crisis | Groundwater depletion, Ogallala, Colorado River, glacial melt | Strong |
| Methane | 80x potency, satellite detection, permafrost, livestock, leaks | Strong |
195 entries extracted from curated YouTube science channels (+ 27 research-fill entries):
- potholer54 — Denial debunking, source citation
- Climate Town — Corporate lobbying, greenwashing
- Count Everything — Data-heavy impacts
- Just Have a Think — Science + solutions
- Sabine Hossenfelder — Physicist rigor
- Paul Beckwith — Tipping points, AMOC
- Nate Hagens — Systems thinking, limits
- Nature Bats Last — Extreme scenarios (bias-flagged)
- Simon Clark — Atmospheric physics
- PBS Terra — Journalism
27 research-fill entries compiled from peer-reviewed literature to close coverage gaps: Mass extinctions, PETM, planetary boundaries, Thwaites glacier, temperature datasets, GCMs, ocean acidification, Amazon dieback, Koch dark money, habitat fragmentation, ecosystem services, IPCC process, cascading tipping points, attribution science, RCP/SSP scenarios, aerosol masking, water crisis, methane, nuclear vs fossil death toll, health mortality from pollution, storm intensification, ocean-atmosphere CO2 dynamics, biodiversity economic value, jailed UK climate protesters, corporate profit vs public health.
Each entry contains some or all of:
| Field | Type | Description |
|---|---|---|
source |
string | Source title |
channel |
string | YouTube channel or "Research compilation" |
expert |
string | Primary expert/presenter |
publishDate |
string | Source publication date |
url |
string | Source URL |
summary |
string | 2-4 paragraph overview |
keyFacts |
string[] | Specific, verifiable facts with numbers |
tags |
string[] | Searchable topic tags (848 unique) |
denialResponses |
object[] | Claim + response + evidence + strength |
predictions |
object[] | Prediction + source + timeline + accuracy |
lobbyingExposures |
object[] | Entity + action + evidence + impact |
biasFlags |
object[] | Flag type + explanation |
The entire database is a single JSON file: climate-fact-db.json
import json
with open('climate-fact-db.json') as f:
db = json.load(f)
entries = db['entries']
# Find all denial responses about temperature
for entry in entries:
for dr in entry.get('denialResponses', []):
if 'temperature' in dr.get('claim', '').lower():
print(f"CLAIM: {dr['claim']}")
print(f"RESPONSE: {dr['response']}")
print(f"EVIDENCE: {dr['evidence']}")
print()const db = require('./climate-fact-db.json');
// Find all predictions that are "on-track"
const onTrack = db.entries
.flatMap(e => e.predictions || [])
.filter(p => p.accuracy === 'on-track');
console.log(`${onTrack.length} predictions currently on-track`);# Find all entries about AMOC
amoc = [e for e in entries if 'AMOC' in e.get('tags', [])]
print(f"{len(amoc)} entries about AMOC")- 222 total entries
- 1,742 individual key facts
- 199 denial claim/response pairs
- 191 tracked predictions with outcome status
- 100 documented lobbying exposures
- 115 bias flags (including pro-climate source bias)
- 965 unique searchable tags
- 10 YouTube channels + 27 research-fill entries from peer-reviewed literature
Found an error? Have a source to add? Open an issue or PR.
Guidelines:
- All facts must be specific and verifiable (numbers, dates, named sources)
- Include evidence strength ratings
- Flag potential bias — even from sources you agree with
- Use the existing schema format
This data is released under CC BY 4.0. You are free to use, share, and adapt it for any purpose with attribution.
Built with VidBrainz research intelligence + targeted gap-fill research. Data extracted and structured using AI, verified against peer-reviewed sources.