The dataset with 13-year-old retirees
A 7,000-person "social media and mental health" dataset is exactly the kind of thing that goes viral as a chart. We audited it before charting it — and the audit became the story.
A 7,000-person "social media and mental health" dataset is exactly the kind of thing that goes viral as a chart. We audited it before charting it — and the audit became the story.
Screen time and mental health is the most chartable subject on the internet: everyone has a phone, everyone has a feeling about it, and a Kaggle dataset promising daily hours, anxiety scores and sleep for 7,000 people looks like a headline machine. The temptation is to load it, find "TikTok users sleep least," and ship the graphic by lunch.
We run every dataset through a statistical audit before a single pixel gets drawn. This one failed in an unusually instructive way — and what it failed at, and what it didn't, is a better lesson in data literacy than most real datasets can teach.
Tell one: the workforce. Cross-tabulate age against occupation and you meet 26 retirees under the age of 16, another 221 under-16s in full-time employment, and 81 retirees under 25. Real surveys contain entry errors; they do not contain a labor market where an eighth of the retirement community is in middle school. Age and occupation were generated independently — the columns never met.
Tell two: the IDs. All 7,000 participant IDs run in perfect sequence, P300000 through P306999, with not one gap. Real panels have dropouts, exclusions and re-numbering. Generators count.
Tell three: the wrong-signed correlation. In the file, the anxiety score and the low-mood score correlate negatively (r = −0.20). In real populations, anxiety and low mood are strongly comorbid — they travel together, reliably and positively, in essentially every published sample. A negative sign here isn't an outlier finding; it's a psychometric impossibility. Whatever produced these two columns wasn't a human answering both questions.
Verdict: this is a simulation — a synthetic dataset, not a survey. That's not a scandal (Kaggle hosts many, often for teaching), but it changes what you're allowed to say on a chart built from it.
Here's the part most people would get wrong. The obvious headline — which platform is worst for you — does not exist in this data. Group the 7,000 participants by most-used platform and the means are dead flat: daily screen hours sit between 3.19 and 3.43 across all eight platforms; mean anxiety spans 11.2 to 11.5; sleep spans 6h 52m to 7h 01m. TikTok equals LinkedIn equals Reddit. Any chart implying otherwise would be decorating noise.
What the generator did build in is one clean spine: a dose gradient on total daily hours. Split the panel into five bands and every wellbeing metric walks in step:
A second, smaller gradient sits beside it: night-time use. Participants who say they never use the phone in bed average 7h 30m of sleep; "every night" users average 6h 21m. Both gradients are associations in a simulation — the generator's opinion of how the world works, not evidence about the world. The chart says so, in the subtitle, on the chart.
Because the form was worth building. The chart reads the five bands like a phone's own weekly Screen Time report — the one interface every viewer already knows how to parse. The phone is the chart: tap a band and the report re-reads as that group, the at-risk bar filling from 3% to 74%. That borrowed-interface pattern now lives in our template library and will carry real client data — panels, cohorts, funnel stages — where the numbers have earned their drama.
And because publishing it honestly is the point. The label "simulated dataset — design study" travels with the chart: in the subtitle, in the footer, in this post. The discipline is the product.
Five bars, not a timeline — the bands are the "week" of the borrowed grammar, sized by share of participants (26.3% / 42.8% / 21.2% / 7.4% / 2.3%). The at-risk share is the hero row because it moves furthest; anxiety, sleep, FOMO, life satisfaction and notifications each carry a small track showing where the selected band sits across the five-band range. Counters tween, then snap to the exact computed value — a rounded interpolant is never allowed to be the settled number. Four themes are named for phone display modes: Titanium, OLED, Night Shift, E-ink. And the readouts exclude what the file couldn't answer: 105 blank sleep responses are dropped from sleep means, and the footer says so.
One row per respondent (or unit), with a grouping number to band on and the outcome metrics you want read.
| id | daily_hours | anxiety | sleep_hours |
|---|---|---|---|
| P1 | 1.3 | 8 | 7.3 |
| P2 | 9.1 | 19 | 6.0 |
Novice tip: bring the raw rows, one per person — don't pre-band or pre-average. The agent cuts the bands, computes each band's means and share, and (as this post shows) audits the file before it charts a thing.
Audit before you chart. A dataset that fails the audit can still be worth designing for — but only if the label travels with the graphic, and only if the chart tells the story the data actually contains. This one contains a dose gradient and some flat platforms; it does not contain a villain app, and it does not contain the real world.
Have a dataset you want read this carefully? Drop it into the Nomogram Lab agent for three chart proposals on your real numbers, see more of the work, or read about bespoke commissions.