Open, 16 days to go
Breathe
Predict the daily PM2.5 concentration at 250 monitoring sites across the United States from the weather, the season and the site.
- Scored by
- MAE
- Lower is better
- Score to beat
- 3.401
- The site's train-period mean for that calendar month
- Entrants
- 5
- 5 uploads a day
- Closes
- 29 Nov
- 23:59 UTC
Cash prizes for the top three. Amounts are announced on Monday 2 November 2026 and paid after the audit. Prizes need a beaten baseline, a filed solution report and a reproducible pipeline, see the rules and terms.
Overview
The problem. Fine particulate matter, PM2.5, is the largest environmental risk to human health: it drives heart and lung disease, and the WHO's 24-hour guideline is 15 µg/m³. Public-health alerts, school sports decisions and outdoor-work rules run on a day-level estimate of it, and most towns have no monitor at all. Your job: for 250 EPA monitoring sites, estimate the daily mean PM2.5 for every test day from that day's weather, the calendar and the site's own history.
The data. Train: January 2023 to March 2025, 199,231 site-days. Test: April to December 2025 at the same sites, 66,699 site-days. Each row has the site code, the date, the census division, coordinates to 0.5°, and NASA POWER daily weather at the site: temperature (mean, max, min), humidity, wind, precipitation, pressure and irradiance. The target is the EPA daily mean, µg/m³. No PM2.5 value on a test date is shipped, so persistence has to come from the training period.
Scoring. Mean absolute error in µg/m³, lower is better. Whole dates are public (30%) or private (70%) across every site; your standing is the private split.
Baselines (private split). The site's train-period mean for that calendar month: 3.40. A default gradient-boosted tree on the shipped columns: 2.99.
Why it matters. Wildfire smoke days are the tail, they are real, and they are where the metric is won or lost, and where an alert a day early keeps someone with asthma indoors.
Marking rubric
Exactly how your points are worked out. Mark your own work against it before you file.
Out of 100 final points, 70 come from your score on the hidden test rows and 30 from your solution report, marked against the rubric below.
The metric
70 points
Scored with MAE (lower is better) on the private 70% of the test rows, which nobody sees until results. Your rank there becomes your points: first place earns the full 70, last place earns 0, and everyone between is spaced evenly by rank.
A score that does not beat the site's train-period mean for that calendar month earns 0, whatever its rank. Ranks, not raw scores, so one runaway entry cannot squash the rest of the field.
points = 70 × (1 − (rank − 1) ÷ (entrants − 1))For example, 3rd of 21: 70 × (1 − 2 ÷ 20) = 63 points.
The report
30 points, 6 per criterion
Five criteria, equal weight. Each is marked at one of four levels, and every level is defined below, so you can mark your own draft before you file it. Three judges mark blind and independently; each criterion takes the middle mark of the three.
-
Problem framing and impact
6 pointsWho uses this estimate, what decision changes if it is better, and what an error costs them.
- 0 · Absent0 pts
- No statement of who uses the estimate or why.
- 1 · Developing2 pts
- Names the use but not the decision it changes.
- 2 · Solid4 pts
- States the decision, the user and what a given error costs them.
- 3 · Exemplary6 pts
- As 2, and quantifies the value of the improvement over the baseline in the user’s terms.
-
Data understanding and validation
6 pointsA validation design that mirrors the test split, with leakage risks named and handled.
- 0 · Absent0 pts
- No validation design, or validates on the public leaderboard.
- 1 · Developing2 pts
- Holds out data but the split can leak: random rows in a time series, or the same entity on both sides.
- 2 · Solid4 pts
- A split that mirrors the test split; leakage risks named and handled.
- 3 · Exemplary6 pts
- As 2, with evidence the local validation tracks the public score, and a data finding that changed the approach.
-
Method and rigour
6 pointsChoices justified, compared against both pinned baselines, failures reported honestly.
- 0 · Absent0 pts
- No description, or a method with no justification.
- 1 · Developing2 pts
- A reasonable method described, no comparison.
- 2 · Solid4 pts
- Choices justified, compared against both pinned baselines, at least one thing that failed reported honestly.
- 3 · Exemplary6 pts
- As 2, with an ablation or sensitivity check that shows which parts matter.
-
Error analysis and limitations
6 pointsWhere the model is wrong and why, and what would go wrong if someone deployed it.
- 0 · Absent0 pts
- No error analysis at all.
- 1 · Developing2 pts
- Says errors exist, no pattern.
- 2 · Solid4 pts
- Shows where the model fails (segments, conditions) and gives a plausible reason.
- 3 · Exemplary6 pts
- As 2, and states the deployment risks: who is harmed if it is over-trusted, what would have to be monitored.
-
Reproducibility and clarity
6 pointsCode, environment and steps a reader could run; prose that is clear and within length.
- 0 · Absent0 pts
- No code, or steps that cannot be followed.
- 1 · Developing2 pts
- Code linked but steps incomplete or environment unstated.
- 2 · Solid4 pts
- Code, environment and steps that a reader could run; prose is clear and within length.
- 3 · Exemplary6 pts
- As 2, with fixed seeds, a one-command run, and results that match the report.
If two judges are more than one level apart on a criterion, a person marks it instead. Judge prompts, model ids and calibration figures are published with the results.
Medals and prizes
- Final rank is by total points. Ties go to the better metric rank, then to whoever reached their score first.
- With five or more entrants: gold for the top 10%, silver for the next 20%, bronze for the next 30%.
- Every medal and prize needs a score that beats the baseline and a filed report.
- At least the top ten are audited: we re-run your code from train.csv and the result has to match.
The full rules and terms apply to every entry.
Submission format
Two things to hand in: a predictions file, scored automatically, and a report, marked against the rubric.
Your predictions, as a CSV
- Header
id,pm25. Column order does not matter; extra columns are ignored.- Rows
- 66,699 rows, one per id in test.csv. A missing id rejects the file and tells you which.
- pm25
- A number. Decimals are fine; no units, no thousands separators.
- File
- UTF-8, comma separated, up to 10 MB. sample_submission.csv is a valid starting point.
- Limits
- 5 scored uploads a day (resets 00:00 UTC). A file that fails these checks is rejected with the reason and does not use one. Pick up to 2 for final scoring; pick none and your best public score is used.
Your solution report
Written in the editor on this page, in Markdown, 600 to 1,500 words. Use these five headings, in this order; each one maps to a rubric criterion.
- 1
## The problem and who it serves
What decision changes if this estimate is better, for whom, and what an error costs them.
- 2
## Data and validation
What you found in the data, how you built your own validation, what could leak and how you avoided it.
- 3
## Method
What you built and why, what you tried that did not work, how it compares with the two pinned baselines.
- 4
## Error analysis and limitations
Where the model is wrong and why; the risks if someone deployed it: fairness, safety, over-trust.
- 5
## Reproducibility
Link to the code, the environment, the exact steps to regenerate your predictions from train.csv.
Code link, required
A public repository or notebook URL. The audit runs it from train.csv to regenerate your predictions.
AI use, declared
- Human: no AI assistance
- AI-assisted: I used AI tools and made the decisions
- Autonomous: an agent produced the submission
Save a draft as often as you like. The panel marks what is there at close; a report counts as filed once it is submitted or reaches 600 words.
Leaderboard
5 entrants, best public score each. The baseline and our reference model are pinned where their scores fall.
| Rank | Entrant | Uploads | Best score |
|---|---|---|---|
| 1 | bruno | 4 | 2.482 |
| 2 | dhruval | 4 | 2.534 |
| 3 | MoFarina | 13 | 2.596 |
| 4 | AlexCChristou | 1 | 2.617 |
| 5 | ShinjiNakasaki | 2 | 2.624 |
| Default gradient-boosted tree on the shipped weather, site, region and calendarour reference model | 2.988 | ||
| The site's train-period mean for that calendar monthbaseline to beat | 3.401 |
Scored on the public 30% of the test rows while the competition runs. Final standings use the other 70%, so a public lead is not a final one. The two reference rows are scored on those final rows.
Data
| Column | What it holds |
|---|---|
id | Row id (one per site-day). Use it in your submission. |
site | Opaque monitoring-site code, consistent across train and test. |
date | Local calendar date of the 24-hour sample. |
division | US census division of the site (nine regions). |
lat_r | Site latitude rounded to 0.5°. |
lon_r | Site longitude rounded to 0.5°. |
temp_c | Daily mean air temperature at 2 m, °C (NASA POWER). |
temp_max_c | Daily maximum temperature, °C. |
temp_min_c | Daily minimum temperature, °C. |
rh_pct | Daily mean relative humidity at 2 m, %. |
wind_ms | Daily mean wind speed at 10 m, m/s. |
precip_mm | Daily precipitation, mm (bias-corrected). |
pressure_kpa | Daily mean surface pressure, kPa. |
ghi_kwh_m2 | Daily all-sky surface shortwave downward irradiance, kWh/m²/day. |
pm25 predict this | Target. Daily mean PM2.5 in µg/m³ at the site (train only). The WHO 24-hour guideline is 15. |
Sign in to download train.csv, test.csv and sample_submission.csv.
Sources and licences
- US EPA Air Quality System, daily summary, parameter 88101 PM2.5 FRM/FEM mass (2023, 2024, 2025 files), US federal government work, public domain (17 U.S.C. §105), retrieved 2026-09-21
US Environmental Protection Agency, Air Quality System (AQS) pre-generated daily summary files, parameter 88101.
- NASA POWER daily meteorology and irradiance at each monitoring site (MERRA-2 / CERES), NASA Earth-science data: full and open sharing, no restrictions on use (US government work), retrieved 2026-09-21
Data obtained from the NASA Langley Research Center POWER Project, funded through the NASA Earth Science Directorate Applied Science Program.
Split. January 2023 to March 2025 is train; April to December 2025 is test, for the same sites. Within the test period, whole dates are public (30%) or private (70%) by a hash of the date across every site.
Changes made. Restricted to 250 sites in the 50 states and DC with ≥90% daily coverage, chosen at random from those eligible; 24-hour samples only, event-excluded records dropped, POCs averaged; joined to NASA POWER daily weather at the site; site ids replaced by opaque codes; coordinates rounded to 0.5°; state reduced to census division; rows shuffled; target removed from the test file.
Withheld. Site name, address and exact coordinates; State and county; The AQI and the 1-hour maximum; Any PM2.5 value on a test date (no lags are shipped).
Rows: train 199,231, test 66,699 (public 18,463, private 48,236).
Artefact audit passed
- No duplicate rows across train and test. 0 of 66699 test rows have an identical feature row in train
- 1-NN does not beat the honest model. 1-NN mae 4.2531 vs honest 2.9876
- No single feature encodes the target. strongest |corr| 0.170 (temp_max_c)
- Row order is uncorrelated with the target. spearman(row index, target) = -0.004
- The id does not encode the target. spearman(id number, target) = 0.001
Wildfire smoke days are the tail: they are in the data, they are real, and they are where the metric is won or lost.
Timeline
OpensMon, 5 Oct 2026(done)
Data released; uploads accepted.
Mid-pointMon, 2 Nov 2026(done)
Prize pool announced.
ClosesSun, 29 Nov 2026
Reports and selections are frozen. The last 48 hours are a quiet period.
ResultsMon, 7 Dec 2026
Private standings, medals and the marking pack. Seven days to appeal.
Rules
- One entry per person; your handle is fixed once you join. Entering means you accept the competition rules and terms.
- Up to 5 submissions a day (resets 00:00 UTC). Select up to 2 for final scoring; if you select none, your best public score's file is used.
- Train on the shipped data only. No external data beyond what the data card lists, and never the withheld targets from any source, looking them up is disqualification.
- Your solution report (30% of your points) is written on this page and graded as it stands at close. Medals and prizes need a filed report and a beaten baseline; the top ten are audited by re-running their code from train.csv.
- Sharing code or ideas publicly is fine; sharing a submission file is not (identical files are detected). One account per person. Text aimed at the grader scores zero.
- The final 48 hours are the quiet period: the public board freezes for viewers while you still see your own scores. Results are published once, after the audit, and are final subject to appeal.
The full competition terms apply to every entry.
Read the brief, then enter.
Free with a student account. The brief and the public leaderboard need no account.
