Data Downloads: CSV and JSON Files With a Field Dictionary
Every table behind the site as CSV and JSON, the meaning of each field, and the compact daily history file format the threshold explorer reads. Free to reuse with attribution.
Key Facts
- 8,896 tables are available as CSV and as JSON, one pair for each data page.
- Temperatures are in degrees Celsius with one decimal and precipitation in millimetres with one decimal in every file; Fahrenheit and inches are shown on pages only.
- Dates are ISO 8601 (YYYY-MM-DD). Every JSON file carries a data as of date, a last revised date, the source and the licence.
- 0 cities have a compact daily history file in format wem-history-1: one row per day, the date as YYYYMMDD and five values in tenths.
How the Download Links Work
- Every data page has a Download the Data section with a CSV and a JSON link for the table it shows.
- The files live at
/data/files/{family}/{id}.csvand.json: for example /data/files/records.csv. - CSV files have one header row, comma separators and quoted text where needed. JSON files hold the same rows as objects, with the field dictionary, the data as of date, the last revised date, the source and the licence.
- Data comes from NOAA GHCN-Daily (US Government open data (NOAA NCEI)) and is free to reuse with attribution. Records are computed by this site and are not official.
| Page family | Tables |
|---|---|
| records | 420 |
| countries | 1,883 |
| regions | 64 |
| cities | 162 |
| stations | 6,000 |
| thresholds | 1 |
| on-this-day | 366 |
Start Here
Field Dictionary
Record events (records, day, timescale, country and on this day files)
| Field | Meaning |
|---|---|
| id | Stable record id: station, date, type and timescale. |
| station_id | GHCN-Daily station id. |
| station_name | Station name. |
| country | ISO 3166 alpha-2 country code. |
| type | Record type: tmax_high, tmax_low, tmin_high, tmin_low, prcp_high, snow_high or snwd_high. |
| timescale | daily, monthly or all-time. |
| date | Date the record was set, YYYY-MM-DD. |
| value | Record value in degrees Celsius or millimetres. |
| unit | c for degrees Celsius, mm for millimetres. |
| previous_value | The record it replaced, in the same unit. Empty for a first record. |
| previous_date | Date of the replaced record. |
| margin | How far the new value beat the old record, a non negative magnitude in the same unit. Zero for a tie. |
| years_stood | Whole years the replaced record had stood. |
| significance | Record Significance Score from 0 to 100 (see /methodology/). |
| tie | True when the value tied the record. |
| provisional | True while the record is inside the 60 day provisional window. |
| lat | Station latitude in decimal degrees. |
| lon | Station longitude in decimal degrees. |
Records per day (year, month and hub files)
| Field | Meaning |
|---|---|
| date | Date, YYYY-MM-DD. |
| total | All records set or tied that day. |
| tmax_high | Records of type tmax_high. |
| tmax_low | Records of type tmax_low. |
| tmin_high | Records of type tmin_high. |
| tmin_low | Records of type tmin_low. |
| prcp_high | Records of type prcp_high. |
| snow_high | Records of type snow_high. |
| snwd_high | Records of type snwd_high. |
Threshold days by year (city and station threshold files)
| Field | Meaning |
|---|---|
| threshold | Threshold id, for example tmax_ge_40c. |
| year | Calendar year. |
| days | Days in the year at or beyond the threshold. |
| first | First qualifying date of the year. |
| last | Last qualifying date of the year. |
| longest_streak | Longest run of consecutive qualifying days inside the year. |
Standing records by year (city, station and region files)
| Field | Meaning |
|---|---|
| year | Year in which the standing records were set. |
| standing_records | Records set that year that still stand. |
Daily History File Format
wem-history-1The threshold explorer reads one compact full-history file per city (and per eligible station in the production export). A file holds the date and five values for every day of the record.
{
"format": "wem-history-1",
"id": "phoenix",
"name": "Phoenix",
"asOf": "",
"revised": "",
"fields": ["tmax","tmin","prcp","snow","snwd"],
"scale": 10,
"rows": [
]
} - Each row is
[YYYYMMDD, tmax, tmin, prcp, snow, snwd]. The date is a whole number such as 19480101. - Values are whole numbers in tenths: tenths of a degree Celsius for temperature and tenths of a millimetre for precipitation, snowfall and snow depth. Divide by
scale(10) for degrees or millimetres. A missing value isnull. - Rows are sorted by date and cover every calendar day with any observation. Files are served gzip compressed.
- A threshold of 40 C is 400; a threshold of 100 F is converted once to tenths of a degree Celsius, rounding half up, which is 378.
- The same engine runs in the browser and in the build; tests compare it with a slow reference implementation and with the per year counts on the city pages.
Source: NOAA National Centers for Environmental Information, Global Historical Climatology Network Daily (GHCN-Daily). Records are computed by World Extreme Weather Monitor and are not official NOAA products. (US Government open data (NOAA NCEI)) Data as of 2026-10-12 (12 October 2026). Records are computed by this site and are not official.
Data as of . Last revised (2026-10-13).