Skip to content

scottcovert/climate-fact-db

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Climate Fact DB

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


Why This Exists

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

What Makes This Unique

1. Denial Response System

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"
}

2. Prediction Tracking

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"
}

3. Lobbying Exposure

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"
}

4. Bias Flagging

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."
}

Topics Covered

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

Data Sources

195 entries extracted from curated YouTube science channels (+ 27 research-fill entries):

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.

Schema

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

Quick Start

The entire database is a single JSON file: climate-fact-db.json

Load in Python

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()

Load in JavaScript

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`);

Search by Tag

# Find all entries about AMOC
amoc = [e for e in entries if 'AMOC' in e.get('tags', [])]
print(f"{len(amoc)} entries about AMOC")

Stats at a Glance

  • 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

Contributing

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

License

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.

About

Structured climate science knowledge base: 207 entries, 1531 facts, 155 denial debunks, 160 tracked predictions, 85 lobbying exposures. Journalist-ready. CC BY 4.0.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors