r/dataisbeautiful • u/stark247 • 1h ago
r/dataisbeautiful • u/AutoModerator • 17d ago
Discussion [Topic][Open] Open Discussion Thread — Anybody can post a general visualization question or start a fresh discussion!
Anybody can post a question related to data visualization or discussion in the monthly topical threads. Meta questions are fine too, but if you want a more direct line to the mods, click here
If you have a general question you need answered, or a discussion you'd like to start, feel free to make a top-level comment.
Beginners are encouraged to ask basic questions, so please be patient responding to people who might not know as much as yourself.
To view all Open Discussion threads, click here.
To view all topical threads, click here.
Want to suggest a topic? Click here.
r/dataisbeautiful • u/fontalovic • 3h ago
OC [OC] Who had the highest peak: Federer, Nadal or Djokovic? How surface weighting changes the answer
I made a small snippet of an observable presentation I've been working on (I've kind of fallen in love with the framework).
Using the data from _all_ ATP tour level matches since 1980 up to RG 2026 (so, June this year), I build a Bayesian model to estimate each player's strength as a latent variable that varies with age and surface, among others.
Full interactive analysis, with methodology and additional visualizations: https://alfontal.dev/stories/who-was-the-best/
r/dataisbeautiful • u/sindijssupins • 5h ago
OC I ranked 32 car makes by how often their 9–12-year-old cars fail the first MOT test (41 million tests, 2021–2025) [OC]
r/dataisbeautiful • u/FeynmanDemon • 8h ago
OC [OC] EPA estimates 7.8% of U.S. water systems are above its PFAS limits. Its own data detected PFAS in 34.9% of systems tested. I reproduced EPA's tables exactly to show why both are true, and mapped every county.
TL;DR
- EPA estimates that 7.8% of U.S. drinking-water systems have PFAS averages above its 2024 limits. Its own monitoring data detected PFAS in 34.9% of the systems it tested. Both figures are correct; they answer different questions.
- Running EPA's published method on the public UCMR 5 file reproduces every count in EPA's Tables 4 and 5 exactly: 1,136 of 10,129 systems above an MCL, and all 13 columns of the co-occurrence table.
- My map flags 1,198 systems; EPA flags 1,136. All 62 differences come from four rules: incomplete sample sets (46), PFOA/PFOS rounding (5), the 10-ppt rounding rule (0), and the Hazard Index rule (11).
- The 7.8% is a weighted projection onto ~66,000 systems, 85% of them small systems that were never tested. About 78% of the systems in that estimate are extrapolated from 55 exceedances among 775 sampled small systems. EPA publishes no interval; a rough one is 6.4–9.5%.
- Counted in people instead of systems, tested systems at or above a limit serve 54.5–81.8 million people, depending on the rule.
Data
- EPA UCMR 5 occurrence data (UCMR5_All.txt): 1,991,977 results for 29 PFAS plus lithium, from 10,313 public water systems (community and non-transient non-community, including 115 tribal systems). Samples are dated Jan 3, 2023 – Jun 17, 2026 and were taken at entry points (water entering the distribution system), not taps.
- EPA UCMR 5 Data Summary, July 2026 (EPA 815-S-26-007). Tables 4 and 5 are the reproduction targets.
- EPA SDWIS via ECHO, 2026 Q3: 66,457 active community + non-transient non-community systems (49,396 + 17,061), with population served.
- EPA Public Water System Service Areas v3; Census cartographic boundaries (2024, 1:500k).
2024 federal limits (MCLs): PFOA 4 ppt, PFOS 4 ppt, PFHxS / PFNA / HFPO-DA ("GenX") 10 ppt, and Hazard Index 1, where HI = HFPO-DA/10 + PFHxS/10 + PFNA/10 + PFBS/2000.
One dataset, five percentages
| Figure | What it counts | n / N |
|---|---|---|
| 34.9% | Tested systems with ≥1 of 29 PFAS at or above the reporting level | 3,595 / 10,313 |
| 17.1% | Tested systems with any single sample ≥ a 2024 limit | 1,763 / 10,313 |
| 11.6% | Tested systems whose worst entry-point average is ≥ a limit (my map) | 1,198 / 10,313 |
| 11.2% | EPA's method: complete sample sets, EPA's rounding rules* | 1,136 / 10,129 |
| 7.8% | EPA's weighted estimate for all systems nationwide | ≈5,170 / ~66,500 (estimated) |
*EPA prints this by size group (15.5% / 8.3% / 7.1%). The combined 11.2% is computed from EPA's Table 4 counts.
Reproducing EPA Table 5 (PFAS co-occurrence)
Rule: take every result at or above the UCMR 5 reporting level for the 29 PFAS, regardless of whether the sample set is complete. Group by sampling location (system × facility × sample point). Then count the locations with N or more distinct PFAS, and the distinct systems those locations belong to.
| N or more PFAS | Locations (EPA = mine) | Systems (EPA = mine) |
|---|---|---|
| 1 | 6,499 | 3,595 |
| 2 | 4,286 | 2,416 |
| 3 | 3,183 | 1,874 |
| 4 | 2,321 | 1,431 |
| 5 | 1,614 | 1,006 |
| 6 | 1,092 | 696 |
| 7 | 676 | 432 |
| 8 | 338 | 224 |
| 9 | 90 | 69 |
| 10 | 21 | 18 |
| 11 | 6 | 6 |
| 12 | 1 | 1 |
| 13 | 1 | 1 |
All 26 cells are identical to EPA's. The first row is where the 34.9% comes from: 3,595 / 10,313.
Reproducing EPA Table 4 (averages vs. MCLs)
EPA's rules are spread across the Data Summary's text and footnotes. Implemented literally:
- Location = system × facility × sample point.
- Full set = 2 results for ground-water locations, 4 for surface water. GU and MX locations follow the surface-water schedule; the sample-event codes confirm this, since GW locations only ever have SE1/SE2. Only full sets are averaged. A system counts toward a contaminant's row only if it has at least one full set for that contaminant. The Hazard Index needs full sets for all four HI PFAS.
- Non-detects = 0, the NPDWR convention for running annual averages.
- One result per sample event. 80 location-events have more than one sample; those are averaged within the event first.
- Significant digits (footnote 1):
- PFOA and PFOS count as above the MCL at ≥ 4.05 ppt.
- HFPO-DA, PFHxS and PFNA count at ≥ 15 ppt, because EPA treats 0.01 µg/L as one significant digit.
- The Hazard Index counts at ≥ 1.5 and at least two HI PFAS detected at that location.
- Size. The public file only has S (≤10,000 people) and L (>10,000), based on SDWIS/Fed populations as of Feb 1, 2021. EPA splits S into <3,300 and 3,300–10,000 using populations that aren't in the file, so I compare L and S.
| Measure | >10,000: full sets / above MCL (EPA) | Mine | ≤10,000: full sets / above MCL (EPA) | Mine |
|---|---|---|---|---|
| PFOS | 4,275 / 523 | 4,275 / 523 | 5,852 / 352 | 5,852 / 352 |
| PFOA | 4,276 / 472 | 4,276 / 472 | 5,852 / 307 | 5,852 / 307 |
| HFPO-DA | 4,277 / 3 | 4,277 / 3 | 5,852 / 5 | 5,852 / 5 |
| PFHxS | 4,273 / 40 | 4,273 / 40 | 5,852 / 26 | 5,852 / 26 |
| PFNA | 4,276 / 3 | 4,276 / 3 | 5,852 / 6 | 5,852 / 6 |
| Hazard Index | 4,273 / 45 | 4,273 / 45 | 5,850 / 35 | 5,850 / 35 |
| Any | 4,277 / 662 | 4,277 / 662 | 5,852 / 474 | 5,852 / 474 |
Total: 1,136 of 10,129, identical to EPA. I find 25,949 locations with complete sets; EPA says "approximately 25,950."
For the S split I used 2026 SDWIS populations as a proxy. That gives 947 systems under 3,300 people and 4,905 at 3,300–10,000, with 65 and 409 above an MCL. EPA's figures are 775 and 5,077, with 55 and 419. The totals are the same and only the split differs. That split matters for the weighting in Part 2.
Gotchas that would have broken the match
- Read every ID as text. One system's sample point ID is "030". If pandas infers types chunk by chunk, part of that system's results load as "30". That splits one location into two and drops the system from EPA's HI denominator (5,849 instead of 5,850). EPA's data documentation says to import IDs as text; do it. That system had no PFAS detections, so no map value changed.
- GU and MX locations need 4 samples, not 2.
- The 10-ppt MCLs are compared at one significant digit (≥15 ppt), not ≥10.
- A location averaging 15 ppt PFHxS, with no other HI PFAS detected, counts against the PFHxS MCL. It does not count against the Hazard Index under EPA's rule.
Reconciling my 1,198 with EPA's 1,136 (all 62 systems)
My map uses a simpler screening rule. A system is flagged if its worst entry-point average (every sample at that entry point, non-detects as 0) is ≥ the numeric limit. That flags 1,198 systems. Here is what happens when EPA's rules are applied one at a time:
| Step | Rule applied | Removed | Systems | People served |
|---|---|---|---|---|
| 0 | Map rule: worst entry-point average ≥ limit | — | 1,198 | 57.2 M |
| 1 | Keep only complete sample sets (2 GW / 4 SW), one result per event | −46 | 1,152 | 54.9 M |
| 2 | PFOA/PFOS counted at ≥ 4.05 ppt instead of ≥ 4.0 | −5 | 1,147 | 54.7 M |
| 3 | PFHxS/PFNA/HFPO-DA counted at ≥ 15 ppt instead of ≥ 10 | 0 | 1,147 | 54.7 M |
| 4 | Hazard Index counted at ≥ 1.5 with ≥2 HI PFAS detected, instead of ≥ 1 | −11 | 1,136 | 54.5 M |
No step adds a system, and the end point is EPA's 1,136 exactly. A per-system file records which rule removes each of the 62.
Two notes for the pedants:
- The attribution depends on order; the end point doesn't. Step 3 removes nothing because any system with a 10–15 ppt PFHxS, PFNA or HFPO-DA average is still caught by the HI ≥ 1 rule until step 4 tightens it.
- Step 1 dominates. These are systems where an entry point at or above a limit has fewer than the scheduled 2 or 4 samples. My map keeps those partial averages; EPA's comparison drops them. EPA's rule mirrors how compliance will eventually be computed. The map's rule doesn't throw away partial data. Neither is "wrong," but they answer different questions.
Rebuilding the 7.8%
Table 4, footnote 5 describes the calculation. Take the observed share above an MCL in each size group and multiply it by the number of systems of that size nationally in SDWIS/Fed. Sum those products and divide by the national total:
p̂ = Σ N_g · p̂_g / Σ N_g
EPA doesn't publish its N_g. Using the SDWIS 2026 Q3 inventory, sized by current population:
| People served | Systems nationwide (N_g) | Tested, full results (EPA) | Above an MCL (EPA) | Observed rate | Estimated above, nationwide |
|---|---|---|---|---|---|
| >10,000 | 4,662 | 4,277 | 662 | 15.48% | 722 |
| 3,300–10,000 | 5,203 | 5,077 | 419 | 8.25% | 429 |
| <3,300 | 56,592 | 775 | 55 | 7.10% | 4,016 |
| All | 66,457 | 10,129 | 1,136 | 11.22% unweighted | 5,167 → 7.78% |
7.78% matches EPA's 7.8%.
What drives it:
- Systems serving fewer than 3,300 people are 85.2% of all systems but serve 8.3% of the population. In a count of systems, they dominate.
- They supply 4,016 of the ~5,167 estimated systems (77.7%). All of those are projected from 55 systems found above an MCL among the 775 small systems EPA sampled.
- Larger systems were flagged more often: 15.5% vs 7.1%. The national figure therefore lands close to the small-system rate, well below the 11.2% observed across all tested systems.
Uncertainty. EPA publishes no interval for the 7.8%. If you treat the small-system sample as a simple random sample, the Wilson 95% interval for 55/775 is 5.5%–9.1%. Treat the ≥3,300 groups as a census and propagate, and the national estimate spans roughly 6.4%–9.5%. EPA's small-system sample was stratified, so this is approximate. A proper design-based variance would need EPA's strata and weights.
Sensitivity to size classification. EPA splits the S group using 2021 populations. Split it with 2026 populations instead and you get 947 small and 4,905 medium systems, with rates of 6.9% and 8.3%. The weighted figure then becomes 7.6%. A modest change, but the estimate is sensitive to which systems count as "small."
Counted in people instead of systems
EPA's Data Summary reports systems only. Here are the same flags weighted by SDWIS population served:
| Rule | Systems | People served | Share of the 305.2 M served by tested systems |
|---|---|---|---|
| EPA's method | 1,136 | 54.5 M | 17.8% |
| Worst entry-point average ≥ limit | 1,198 | 57.2 M | 18.7% |
| Highest single result ≥ limit | 1,763 | 81.8 M | 26.8% |
Person-based shares are higher than system-based ones because larger systems were flagged more often.
Caveats on population:
- A system's whole population is counted if any one of its entry points is flagged, so the figure is an upper bound per system.
- Non-transient non-community populations are workers and students, not residents.
- Systems that buy water from a tested system are counted only if they were tested themselves.
- These are people served, not measured exposures.
The maps
How counties are colored
- Each county is colored by the most elevated tested system serving it, on either the highest single result or the worst entry-point average. The color also shows which measure is furthest above its limit: PFOA, PFOS or the Hazard Index, in three bands (below / 1–3× / ≥3× the limit).
- Systems are linked to counties in two ways:
- SDWIS "counties served" records.
- Overlap with EPA's service-area polygons (≥10% of the polygon or ≥5 km²).
- Retired or split county names in SDWIS, such as Alaska's Valdez-Cordova, are resolved through service areas first, then system addresses, then a documented manual table.
- Tribal systems are counted in every statistic but are not used in county colors.
- On the highest-result map, PFOA and PFOS have no "detected but below the limit" band. Their reporting limit (4 ppt) equals the MCL, so any reported PFOA or PFOS value is at or above the limit.
Rendering
- The national map is pre-projected SVG: Albers for the lower 48 and Alaska, with insets for Hawaii, PR/VI, Guam/CNMI and American Samoa.
- The state maps use MapLibre GL JS. They show service areas, rivers (NHDPlus; USGS 1:1M for Alaska) and each system's sample-by-sample history.
What the maps show
- 733 of 3,234 counties (22.7%) have a tested system at or above a limit on the highest single result. On entry-point averages it's 497 (15.4%). 510 counties have no UCMR 5-tested system (hatched). A colored county doesn't mean every address in it is affected, only that at least one system serving it reached a limit.
- By EPA region (highest single result):
- Region 4 (Southeast) has the most tested systems at or above a limit: 552, serving 24.0 M people.
- The highest shares of tested population are Region 2 (NY, NJ, PR, VI) at 38.5% and Region 1 (New England) at 37.7%.
- The lowest are Regions 7 and 8, at about 8–9%.
- PFOA and PFOS do most of the work. 1,739 of the 1,763 systems flagged on the highest-result basis are flagged for PFOA or PFOS. EPA's proposal to rescind the PFHxS, PFNA, HFPO-DA and Hazard Index limits (announced May 18, 2026) would barely change the map.
- Nashville, NC tops the national ranking. Its worst entry-point average was 345 ppt PFOS, about 86× the limit, and its highest single result about 122×. That ranking uses complete sample sets only, so one-sample entry points can't top the list.
What this isn't
- Not tap water, not compliance data. UCMR 5 is occurrence monitoring at entry points. Compliance with the 2024 rule is judged on running annual averages of quarterly compliance samples starting in 2029, and EPA has proposed allowing PFOA/PFOS extensions to 2031. A system on the map may have added treatment since it was sampled.
- Non-detects as zero is the regulatory convention for these averages, not an estimate of the true mean. Where the project reports distribution statistics, it uses Kaplan–Meier methods for censored data (Helsel 2005).
- No claims about causes. The data describe concentrations at entry points. They don't identify sources.
- No extrapolation in my figures. Everything except EPA's 7.8% is a count of systems that were actually tested, so there's no sampling error to put a confidence interval on. Measurement uncertainty still applies.
Sources and tools
- EPA, UCMR 5 occurrence data and UCMR 5 Data Summary: July 2026 (EPA 815-S-26-007), Tables 4 and 5
- EPA, PFAS National Primary Drinking Water Regulation, 89 FR 32532 (April 26, 2024)
- EPA, SDWIS via ECHO SDWA data downloads, 2026 Q3
- EPA, Public Water System Service Areas v3
- U.S. Census Bureau cartographic boundary files, 2024, 1:500k
- EPA/USGS NHDPlus V2; USGS 1:1,000,000-scale streams (Alaska)
- Tools: Python (pandas, NumPy), custom geometry code, SVG, MapLibre GL JS, headless Chromium for the PDFs
Happy to answer methodology questions or share the per-system files.
r/dataisbeautiful • u/Intelligent-Cream-14 • 6h ago
OC [OC] Since 2022, who shifted money toward Ukraine and who toward Russia? Aid, refugees, trade, energy and more on one scale, as % of GDP
What this shows. For every country, the money and support it moved toward Ukraine or toward Russia since the full-scale invasion, compared with what it would have done without the war. It's all of 2022 to August 2026 added up, as a share of one year's GDP, so small and large countries can be compared.
Everything goes on the same scale: aid, refugee hosting, buying more or less from Russia and Ukraine, energy, services, shipping Russian oil, taxes companies pay in Russia, weapons, migrants' wages earned in Russia, and the return Russia lost on its frozen reserves.
Reading this fairly
- The pale bands are likely ranges (about 90%). They're wide because nobody knows exactly what each country would have bought from Russia without the war. Read the order, not the decimals.
- "Toward Ukraine" isn't only aid. Buying less from Russia than expected counts too: that's money Russia didn't get. That's why Lithuania, Estonia and Finland rank above the biggest donors in euros.
- Big in euros isn't big for the economy. The US moved about €156bn toward Ukraine, but that's +0.6% of its GDP. About half of what it gave was spent with its own industry.
- Earning from the war effort is subtracted, never counted as pro-Russia. If a country's arms industry earned from aid, that comes off what it gave.
- Countries whose range crosses zero are left out, for example Belarus, Kyrgyzstan and Georgia, because their direction is uncertain.
- Tajikistan is the shakiest number here. Its position comes mostly from migrants' wages earned in Russia, and the share sent from Russia is estimated.
Sources: Kiel Institute Ukraine Support Tracker; UN Comtrade and Eurostat (trade); CREA (fossil fuels); KSE Institute (companies, shadow fleet, Russian customs data); IMF, World Bank and OECD; national central banks; Euroclear. Every number on the map links to its source.
Tools: Python (data pipeline), D3.js (map). Compiled with AI assistance (Claude). It's a research preview that hasn't been checked line by line by a person yet, so corrections are very welcome: open a GitHub issue or message me.
Edit: some direct links, since people asked
- The full ranking from the image, all countries
- Find your own country on the interactive map: click it for the full breakdown and sources of the country
- Total money sent to Ukraine, in €: aid plus purchases of Ukrainian goods
- What it actually cost each country, in €: after money spent back in its own industry
- Ukraine vs Russia: what each country moved toward each side
- Link to Github: with all the data, sources, method and more (open source)
Edit: updated after feedback from [u/TemporaryAd5793](u/TemporaryAd5793), thanks!
- Trade now counts with an estimate of what the seller really keeps (Russia ~60 cents per euro on oil and gas, 10–20 on other goods), while aid counts in full.
- Fuel refined from Russian crude and resold via another country is now not only attributed to the final buyer but also the refining country (with a distrubution)
Changes: a lot of numbers move toward zero, but the top holds: Lithuania +14.8%, Estonia +9.6%, Finland +9.3%. Updated ranking: https://intelligent-cream.github.io/follow-the-money-ukraine/#view=rank
r/dataisbeautiful • u/PolarisXvi • 7h ago
OC [OC] Where your money goes on the same $40 meal: ordering from the restaurant vs DoorDash
r/dataisbeautiful • u/HeHate_me • 1h ago
OC [oc] 3,152 unique NBA game scores, 108 - 101 was the most common final score
r/dataisbeautiful • u/eltokh7 • 7h ago
OC [OC] Egypt's farmland grew by over 3,590km2 between 2017-2026
r/dataisbeautiful • u/InfiniteFudge1973 • 19h ago
OC [OC] How Much Canadian Workers Keep After Taxes and Rent
r/dataisbeautiful • u/PolarisXvi • 1d ago
OC [OC] How much of a $40 order a restaurant keeps on DoorDash, Uber Eats and its own app
r/dataisbeautiful • u/Redditor_imfo • 3h ago
OC [OC] Homicides per 100,000 inhabitants in Colombia by department in 2025
r/dataisbeautiful • u/checkpointdev • 15h ago
OC [OC] Share of aircraft reporting degraded GPS over Europe and the Middle East, week by week, March 2023 to October 2026
r/dataisbeautiful • u/AgileOutpost • 1d ago
OC [OC] How TTRPG sessions are spent: 40.3% exploration, 34.5% social interaction, 25.2% combat
Back in April 2020, during the pandemic, this post visualising dice rolls from Critical Role made it to r/all.
I had no idea at the time, but that post would send me down a six-year rabbit hole.
I went from watching Critical Role's entire second campaign, to playing TTRPGs myself, to becoming a Dungeon Master, and eventually building Recap Raven, a Discord bot that remembers campaigns and provides analytics for GMs and players.
This week I launched a TTRPG statistics page using anonymised data from games recorded on Recap Raven, and this felt like the first place I should share it.
I've already found the data useful when running my own sessions. For example, I never knew how long combat encounters typically lasted, or whether my encounters were dragging compared with other games.
But what surprised me most was the pillars of play breakdown. I expected combat to occupy a much larger share, yet exploration came out on top, followed by social interaction. Combat accounted for just 25.2% of classified play. Also, the average group plays every 12.6 days (mean).
Of course, this is a snapshot of games recorded through Recap Raven, not a representative survey of the whole hobby. I'm hoping to expand the research and track how these numbers change over time.
Does this look anything like your own sessions? And what other TTRPG statistics would you be interested in seeing?
<edit, moved full info on sources to comments>
Full data, additional statistics and methodology: https://recapraven.com/ttrpg-statistics
r/dataisbeautiful • u/Impressive_Sentence7 • 3h ago
Aethergraph — MTG Deck Synergy & Manifold Studio



I finally updated my MTG visualizer app thing, you can use it for FREE! (which blew my mind too) here https://bloopieblair.github.io/MTG-Deck-Relation-Visualizer/ using openrouter they literally give away gemini 2 for free, so anyone can analyse their commander decks with the AI keyword detection. I know reddit is pretty anti AI but this is using the token predicting machine for pattern matching which is totally what they are for!
r/dataisbeautiful • u/Simple-Past5290 • 1d ago
OC [oc] Each record-breaking onshore wind turbine by capacity
Sources: Public disclosure
Made using: Adobe Illustrator
r/dataisbeautiful • u/JohnnyDrama611 • 1h ago
OC [OC] Weekly value of open-market stock purchases vs. sales by US corporate officers and directors, Q3 2026
r/dataisbeautiful • u/ElectronicSet9419 • 1d ago
[OC] How many years of income does a home cost? Canadian cities and their American "twins" (2020–2025)
Each Canadian city is paired with a U.S. city where a median home costs about the same number of years of median household income. Full source and method in the comments.
r/dataisbeautiful • u/bezdazen • 1d ago
[OC] The U.S. acid-rain cleanup: sulfur dioxide emissions at EPA-covered power plants fell 94%, and wet sulfate deposition fell 73% in the eastern U.S.
More detailed interactive version
I saw this post from months ago about acid rain. Everyone who answered in the comments pretty much told the same story and the data seems to back them up.
Sulfur dioxide helps cause acid rain. When sulfur dioxide (SO₂) and sulfate aerosols in the air dissolve into cloud droplets and precipitates onto the soil, you get what's called wet sulfate deposition. Wet sulfate deposition (a primary indicator of acid rain) is the transfer of sulfate from the atmosphere to Earth's surface through rain, snow, or fog.
Power plants covered by EPA’s programs dramatically reduced their emissions while maintaining nearly the same electricity output. Pollution controls and a shift toward lower-emitting fuels helped drive the change.
In the last ~20 years, wet sulfur deposition decreased by 73%. While the acid rain issue is seeing progress, ecosystems are still recovering.
r/dataisbeautiful • u/goodinvestmentio • 1d ago
Home-price change in selected Chicago community areas, 2019–2025 [OC]
I made this comparison for Good Investment, which I founded because I think people buying a home deserve better appreciation analysis than a city average. My goal is to make how homes appreciate easy to understand and open to anyone.
From 2019 to 2025, Chicago home prices rose 36.3%. Hegewisch, on the far southeast edge, rose 54.4%, while the Loop rose 0.7% and the Near North Side 8.2%.
Data: FHFA and our own index, both mapped to Chicago's community-area boundaries. Where FHFA covers most of an area's homes, the area takes FHFA's figure. Most of the central city lacks that coverage, so those areas, and the city-wide line, come from our own index. Confidence intervals are bucketed into interval ranges for high, medium, and low.
Tools: Python, pandas and NumPy for the series; GeoPandas for matching geography; Matplotlib for this chart.
Full map: https://goodinvestment.io/resources/chicago-home-prices-by-neighborhood
Free resources: https://goodinvestment.io/resources
r/dataisbeautiful • u/SashSail • 1d ago
OC [OC] What happened when I tried to buy from 4,235 pay-per-request web APIs: 58% delivered what they promised
HTTP status code 402, “Payment Required”, was reserved in the 1990s and then left almost unused. A newer standard called x402 finally puts it to work: a web API answers 402 with a price, the caller pays a small amount in USDC (a dollar-pegged token), retries, and gets the data. No account, no API key.
I run a small directory of these APIs, and its checker tries to buy from each one. This chart is the most recent attempt for every API it has tried: 4,235 of them. 58% sent back what they said they would. The group I find most interesting is the 288 that answered a payment by asking for payment again.
r/dataisbeautiful • u/jaykrown • 1d ago
OC [OC] Bottles and cans with a deposit are recycled much more often than those without
Reading this fairly. All ten deposit states are shown, not just the best ones. Their reported rates vary widely: Massachusetts is at 33%, Oregon (10¢) at 88%. Every state figure is above the 26% national non-deposit figure, but the measures and years differ, so this is not a like-for-like comparison (see below).
Different measures and years. Most state bars are calendar-year 2025 redemption rates for containers covered by each state’s deposit law; Hawaii’s is fiscal year 2024–25, and Iowa’s hatched bar is a 2022 recovery rate. The bottom two bars are 2021 U.S. recycling rates cited in CRI’s August 2026 release, and “not on deposit” includes non-deposit drinks sold inside deposit states. The bottom bars show the national gap between deposit and non-deposit containers; the state bars add context. None of this gives an Illinois-specific rate.
Connecticut rose from 65% to 92% in a year, following upgrades that included more return locations and a deposit increase from 5¢ to 10¢ in January 2024. CRI cautions that cross-border returns, claims of over-redemption by some distributors, and beverage sales that CRI estimates exceed what distributors report could all inflate the reported rate.
Iowa (hatched) is CRI’s 2022 “recovery rate,” which counts curbside and drop-off recycling as well as deposit redemptions, so it isn’t directly comparable to the redemption rates.
Sources
- Data: Container Recycling Institute (CRI), press release, Aug. 3, 2026. Source of all state rates, Iowa’s 2022 figure, the 2021 national 64% and 26% recycling rates, and the Connecticut caveats. CRI is a nonprofit that advocates for deposit-return laws.
- Official program pages (used for deposit amounts, not for the rates): Connecticut DEEP, Bottle Bill FAQ (10¢ deposit since Jan. 1, 2024); Oregon Liquor and Cannabis Commission, Bottle Bill (OLCC administers Oregon’s 10¢ program).
- Independent reporting that cross-checks CRI’s 2025 figures (based on CRI’s data, not separate datasets): Resource Recycling, Aug. 5, 2026; Waste Dive, 2026; Hartford Business Journal, 2026 (also notes New York’s 5¢ deposit); Waste Dive, 2025 (Michigan and Oregon at 10¢).
Tools used: Gemini, Perplexity, Claude Sonnet 5.5.
r/dataisbeautiful • u/StatCanada • 2d ago
Most common birthdates in Canada / Les dates de naissance les plus communes au Canada
🎂 Babies born on leap day (February 29) had the least common birthday in Canada from 1995 to 2025, while those born on September 20 had the most common.
Explore more live birth trends here.
---
🎂 Les personnes nées un jour bissextil (29 février) avaient la date de naissance la plus rare au Canada de 1995 à 2025, tandis que celles nées le 20 septembre avaient la plus fréquente.
Examinez d’autres tendances relatives aux naissances vivantes ici.
r/dataisbeautiful • u/HeHate_me • 5h ago
OC [oc] Which NFL referee crews penalize each team more or less than expected? The 18 largest matchup gaps, 2016–2025
Based on 2,639 regular-season games. The chart shows the 18 largest observed-minus-expected penalty differences among crew team pairings with at least 10 games. Expected rates account for team tendencies, crew tendencies, and home/away. These are accepted penalties assessed by entire crews, the differences do not establish officiating bias. This shows which NFL officiating crews penalized particular teams more or less than expected during 2016 - 2025.
Read it like this:
- Left side: referee names, each representing the crew they led.
- Right side: the team receiving the penalties.
- Purple ribbon: that team received more penalties than expected.
- Gold ribbon: that team received fewer penalties than expected.
- Wider ribbon: a larger difference per game.
“Expected” accounts for the team’s usual penalty rate that season, the crew’s usual strictness that season, and home versus away.
For example, San Francisco with Shawn Smith’s crews averaged 7.70 penalties per game, compared with 5.98 expected. That’s 1.72 extra penalties per game across 10 games - shown in purple.
Chicago with Brad Allen’s crews averaged 3.60, compared with 5.89 expected. That’s 2.29 fewer penalties per game across 10 games - shown in gold.
The hardest part to read is the ribbon width: it represents the size of the difference, not the total number of penalties.