PHPMem v2.0.1

Version
1.6.45
Uptime
15 days 14 hours 10 minutes 41 seconds

Memory

Total
512MB
Used
9,38MB (1.83%)
Free
502,62MB

Keys

Current
11 436
Total (since start)
35 066
Evictions
0
Reclaimed
738
Expired Unfetched
0
Evicted Unfetched
0

Connections

Current
14 / 1 024 max
Total
174 889
Rejected
0
llm:95ed192a936dde9bb94c91513825a57ed3244d625efd608bf22d208b64577ea1
TTL 6 days 21 hours 36 minutes 22 seconds Size 3,23KB Export
Edit
**The data is structurally clean. The one real inconsistency is that `sleep_debt_category` does not follow cleanly from `total_sleep_hours`. There are no nulls, duplicates, impossible values, mixed formats or mixed units.** **What checked out clean** (profile queries, steps 0 and 5) - **Completeness and keys:** all 8,500 rows have a distinct `user_id`, and every measure and classifier column has 8,500 non-null values. - **Value ranges are all plausible:** | Column | Range | |---|---| | `age` | 18–65 | | `bedtime_phone_minutes` | 1–180 | | `screen_brightness_pct` | 10–100 | | `caffeine_post_5pm_mg` | 0–250 | | `physical_activity_min` | 0–112 | | `total_sleep_hours` | 3.2–9.8 | | `next_day_fatigue_score` | 1–10 | | `morning_alarm_snoozes` | 0–7 | - **Sleep percentages:** `deep_sleep_pct` runs 8.1–28.0 and `rem_sleep_pct` 9.6–27.0. Deep plus REM never exceeds 100% (0 rows). - **Formats:** category labels are consistent, with no spelling or case variants. `blue_light_filter_active` is a clean 0/1 flag (4,524 zeros, 3,976 ones). Column types match their content, so there is no text-encoded numeric data. - **Units:** none appear mixed. Units are carried in the column names (`_min`, `_hours`, `_pct`, `_mg`). **Issues and things to watch** 1. **`sleep_debt_category` is not a clean function of `total_sleep_hours`** (steps 2–4). - The cut-offs look like Mild Deficit 6.75–7.74 h and Optimal Recovery 7.75–9.8 h, and those two categories do not overlap. - Moderate Debt (3.2–6.74 h) and Severe Sleep Debt (3.2–5.38 h) overlap heavily. Moderate Debt includes 207 users under 4 hours, while Severe Sleep Debt has only 440 of its 647 users under 4 hours. - So the category must also depend on something else, or was assigned inconsistently. Don't re-derive it from hours alone, and don't treat it as a pure hours bucket. 2. **Sleep latency has a long right tail, concentrated in one group.** Latency ranges 6.0–123.3 min with a median of 37.6. Of the 117 users above 90 minutes, 104 are in Severe Sleep Debt and 13 in Moderate Debt. Severe Sleep Debt averages 72.7 min versus 28.9 in Optimal Recovery. The tail looks like a genuine signal rather than an error, but it will distort averages and linear models. 3. **Several columns sit at sharp limits.** `total_sleep_hours` bottoms out at 3.2 and tops out at 9.8, fatigue spans exactly 1.0–10.0, and phone minutes stop at 180. That pattern often means clipping or a generated range. It is worth confirming before treating the extremes as natural. 4. **Zero-inflated caffeine.** 4,950 of 8,500 users (58%) report 0 mg after 5pm, so the column is a mix of "none" and "some". Use a zero/non-zero split or a two-part model rather than a plain mean. 5. **Imbalanced groups.** Non-Binary has only 248 rows against 4,347 Female and 3,905 Male. Severe Sleep Debt has 647 rows against 4,462 Moderate Debt. Estimates for the small groups will be noisy. 6. **Sensitivity.** The card flags `bedtime_phone_minutes` as person-identifying, so report it only in aggregate. Overall, the main caveat for analysis is item 1. The rest are modelling considerations rather than errors that need fixing.