Telemetry · Rhythm

What a laptop knows about your week

I have a small program on my laptop that writes down what the machine is doing every 322 seconds and sends it somewhere I can keep it. It has been running for 126 days, which works out to 27,301 readings.

None of those readings are interesting on their own. A laptop was awake at 3pm on a Tuesday in April; so what. But stack up four months of them and a shape appears that no single day contains — when the work actually happens, how sharply the weekend differs, and roughly when the person operating it goes to bed.

The week has an unmistakable shape

Each square below is one hour of one weekday, coloured by how often the machine was actively being used during that hour across the whole history. Darker means more.

The band across the small hours is the most obvious feature: from about 02:00 to 07:00 the laptop is essentially never in use, seven days a week. The quietest hour of all is 05:00, active just 2% of the time; the busiest is 10:00 at 78%. Weekends are visibly paler than weekdays, and Monday and Tuesday evenings run late in a way the rest of the week doesn't.

A chart like this needs a lot of data to mean anything. Every one of these 168 squares has at least 90 readings behind it. Build the same picture from a day and a half of history and each square holds one or two samples — it would look convincing and say nothing.

0003060912151821 Mon Mon 00:00 — 36% active (121 samples) Mon 01:00 — 10% active (106 samples) Mon 02:00 — 0% active (112 samples) Mon 03:00 — 0% active (110 samples) Mon 04:00 — 0% active (107 samples) Mon 05:00 — 0% active (114 samples) Mon 06:00 — 0% active (115 samples) Mon 07:00 — 22% active (128 samples) Mon 08:00 — 58% active (152 samples) Mon 09:00 — 78% active (158 samples) Mon 10:00 — 85% active (169 samples) Mon 11:00 — 72% active (179 samples) Mon 12:00 — 66% active (174 samples) Mon 13:00 — 72% active (166 samples) Mon 14:00 — 84% active (187 samples) Mon 15:00 — 91% active (190 samples) Mon 16:00 — 90% active (195 samples) Mon 17:00 — 87% active (197 samples) Mon 18:00 — 65% active (194 samples) Mon 19:00 — 44% active (190 samples) Mon 20:00 — 56% active (203 samples) Mon 21:00 — 55% active (195 samples) Mon 22:00 — 74% active (198 samples) Mon 23:00 — 87% active (199 samples) Tue Tue 00:00 — 79% active (188 samples) Tue 01:00 — 46% active (167 samples) Tue 02:00 — 12% active (169 samples) Tue 03:00 — 7% active (166 samples) Tue 04:00 — 7% active (169 samples) Tue 05:00 — 3% active (172 samples) Tue 06:00 — 1% active (166 samples) Tue 07:00 — 17% active (173 samples) Tue 08:00 — 53% active (193 samples) Tue 09:00 — 65% active (201 samples) Tue 10:00 — 83% active (203 samples) Tue 11:00 — 88% active (201 samples) Tue 12:00 — 74% active (195 samples) Tue 13:00 — 85% active (187 samples) Tue 14:00 — 82% active (202 samples) Tue 15:00 — 73% active (188 samples) Tue 16:00 — 66% active (182 samples) Tue 17:00 — 73% active (184 samples) Tue 18:00 — 57% active (189 samples) Tue 19:00 — 49% active (190 samples) Tue 20:00 — 36% active (181 samples) Tue 21:00 — 52% active (192 samples) Tue 22:00 — 77% active (202 samples) Tue 23:00 — 80% active (199 samples) Wed Wed 00:00 — 68% active (184 samples) Wed 01:00 — 26% active (186 samples) Wed 02:00 — 7% active (188 samples) Wed 03:00 — 0% active (188 samples) Wed 04:00 — 0% active (182 samples) Wed 05:00 — 0% active (181 samples) Wed 06:00 — 1% active (181 samples) Wed 07:00 — 15% active (199 samples) Wed 08:00 — 47% active (193 samples) Wed 09:00 — 75% active (192 samples) Wed 10:00 — 90% active (199 samples) Wed 11:00 — 77% active (198 samples) Wed 12:00 — 84% active (179 samples) Wed 13:00 — 72% active (180 samples) Wed 14:00 — 82% active (176 samples) Wed 15:00 — 86% active (196 samples) Wed 16:00 — 80% active (187 samples) Wed 17:00 — 80% active (196 samples) Wed 18:00 — 68% active (181 samples) Wed 19:00 — 46% active (177 samples) Wed 20:00 — 46% active (189 samples) Wed 21:00 — 74% active (202 samples) Wed 22:00 — 87% active (197 samples) Wed 23:00 — 74% active (198 samples) Thu Thu 00:00 — 46% active (202 samples) Thu 01:00 — 22% active (199 samples) Thu 02:00 — 6% active (188 samples) Thu 03:00 — 6% active (189 samples) Thu 04:00 — 6% active (188 samples) Thu 05:00 — 5% active (189 samples) Thu 06:00 — 8% active (184 samples) Thu 07:00 — 19% active (191 samples) Thu 08:00 — 42% active (191 samples) Thu 09:00 — 68% active (197 samples) Thu 10:00 — 91% active (195 samples) Thu 11:00 — 91% active (195 samples) Thu 12:00 — 86% active (189 samples) Thu 13:00 — 61% active (193 samples) Thu 14:00 — 83% active (166 samples) Thu 15:00 — 85% active (186 samples) Thu 16:00 — 85% active (178 samples) Thu 17:00 — 74% active (182 samples) Thu 18:00 — 62% active (178 samples) Thu 19:00 — 49% active (177 samples) Thu 20:00 — 35% active (179 samples) Thu 21:00 — 65% active (175 samples) Thu 22:00 — 67% active (186 samples) Thu 23:00 — 73% active (201 samples) Fri Fri 00:00 — 56% active (188 samples) Fri 01:00 — 31% active (180 samples) Fri 02:00 — 7% active (169 samples) Fri 03:00 — 0% active (178 samples) Fri 04:00 — 0% active (170 samples) Fri 05:00 — 0% active (171 samples) Fri 06:00 — 0% active (185 samples) Fri 07:00 — 9% active (184 samples) Fri 08:00 — 54% active (208 samples) Fri 09:00 — 68% active (211 samples) Fri 10:00 — 80% active (205 samples) Fri 11:00 — 87% active (174 samples) Fri 12:00 — 75% active (162 samples) Fri 13:00 — 70% active (145 samples) Fri 14:00 — 68% active (154 samples) Fri 15:00 — 74% active (163 samples) Fri 16:00 — 87% active (155 samples) Fri 17:00 — 79% active (136 samples) Fri 18:00 — 65% active (129 samples) Fri 19:00 — 53% active (110 samples) Fri 20:00 — 44% active (128 samples) Fri 21:00 — 41% active (123 samples) Fri 22:00 — 64% active (121 samples) Fri 23:00 — 54% active (110 samples) Sat Sat 00:00 — 31% active (103 samples) Sat 01:00 — 13% active (104 samples) Sat 02:00 — 7% active (101 samples) Sat 03:00 — 0% active (97 samples) Sat 04:00 — 0% active (98 samples) Sat 05:00 — 0% active (100 samples) Sat 06:00 — 0% active (100 samples) Sat 07:00 — 2% active (104 samples) Sat 08:00 — 46% active (119 samples) Sat 09:00 — 63% active (134 samples) Sat 10:00 — 65% active (155 samples) Sat 11:00 — 66% active (140 samples) Sat 12:00 — 61% active (126 samples) Sat 13:00 — 50% active (131 samples) Sat 14:00 — 51% active (138 samples) Sat 15:00 — 48% active (118 samples) Sat 16:00 — 45% active (121 samples) Sat 17:00 — 57% active (131 samples) Sat 18:00 — 62% active (122 samples) Sat 19:00 — 42% active (128 samples) Sat 20:00 — 38% active (101 samples) Sat 21:00 — 58% active (124 samples) Sat 22:00 — 60% active (135 samples) Sat 23:00 — 63% active (136 samples) Sun Sun 00:00 — 45% active (108 samples) Sun 01:00 — 11% active (111 samples) Sun 02:00 — 0% active (92 samples) Sun 03:00 — 0% active (90 samples) Sun 04:00 — 0% active (90 samples) Sun 05:00 — 0% active (96 samples) Sun 06:00 — 0% active (95 samples) Sun 07:00 — 18% active (121 samples) Sun 08:00 — 56% active (113 samples) Sun 09:00 — 58% active (158 samples) Sun 10:00 — 46% active (164 samples) Sun 11:00 — 46% active (167 samples) Sun 12:00 — 50% active (158 samples) Sun 13:00 — 53% active (165 samples) Sun 14:00 — 54% active (152 samples) Sun 15:00 — 60% active (153 samples) Sun 16:00 — 55% active (157 samples) Sun 17:00 — 51% active (167 samples) Sun 18:00 — 39% active (143 samples) Sun 19:00 — 32% active (141 samples) Sun 20:00 — 34% active (143 samples) Sun 21:00 — 43% active (156 samples) Sun 22:00 — 73% active (151 samples) Sun 23:00 — 62% active (140 samples)
less active
more active

Weekends are real, but only just

One bar per day, showing hours of active use. Weekends are greyed out. The typical weekday runs 11.5 hours against 6.6 hours on a Saturday or Sunday — so there is a weekend, but it is a shorter working day rather than a day off. The longest single day in the record is 19.1 hours, on 2026-04-16.

0.0 9.5 19.1 2026-03-19: 1.7h active 2026-03-20: 12.3h active 2026-03-21: 10.7h active 2026-03-22: 9.4h active 2026-03-23: 11.9h active 2026-03-24: 15.7h active 2026-03-25: 13.2h active 2026-03-26: 14.6h active 2026-03-27: 8.0h active 2026-03-28: 9.4h active 2026-03-29: 8.9h active 2026-03-30: 14.8h active 2026-03-31: 13.9h active 2026-04-01: 13.2h active 2026-04-02: 13.3h active 2026-04-03: 10.6h active 2026-04-04: 4.8h active 2026-04-05: 4.4h active 2026-04-06: 9.4h active 2026-04-07: 9.4h active 2026-04-08: 11.3h active 2026-04-09: 11.5h active 2026-04-10: 15.0h active 2026-04-11: 6.0h active 2026-04-12: 6.6h active 2026-04-13: 12.3h active 2026-04-14: 15.6h active 2026-04-15: 14.4h active 2026-04-16: 19.1h active 2026-04-17: 8.9h active 2026-04-18: 4.5h active 2026-04-19: 13.9h active 2026-04-20: 12.3h active 2026-04-21: 16.6h active 2026-04-22: 11.9h active 2026-04-23: 10.1h active 2026-04-24: 10.8h active 2026-04-25: 4.7h active 2026-04-26: 8.7h active 2026-04-27: 15.7h active 2026-04-28: 13.2h active 2026-04-29: 15.1h active 2026-04-30: 14.6h active 2026-05-01: 11.1h active 2026-05-02: 6.6h active 2026-05-03: 1.2h active 2026-05-04: 12.2h active 2026-05-05: 15.7h active 2026-05-06: 11.5h active 2026-05-07: 13.9h active 2026-05-08: 8.0h active 2026-05-09: 1.3h active 2026-05-10: 0.5h active 2026-05-11: 13.0h active 2026-05-12: 15.1h active 2026-05-13: 13.0h active 2026-05-14: 15.1h active 2026-05-15: 12.9h active 2026-05-16: 11.9h active 2026-05-17: 13.1h active 2026-05-18: 14.4h active 2026-05-19: 13.7h active 2026-05-20: 14.4h active 2026-05-21: 15.1h active 2026-05-22: 13.9h active 2026-05-23: 9.3h active 2026-05-24: 7.6h active 2026-05-25: 10.6h active 2026-05-26: 13.0h active 2026-05-27: 14.6h active 2026-05-28: 10.4h active 2026-05-29: 9.3h active 2026-05-30: 11.4h active 2026-05-31: 4.0h active 2026-06-01: 13.0h active 2026-06-02: 13.7h active 2026-06-03: 9.3h active 2026-06-04: 8.6h active 2026-06-05: 12.3h active 2026-06-06: 5.8h active 2026-06-07: 4.1h active 2026-06-08: 6.2h active 2026-06-09: 9.8h active 2026-06-10: 8.0h active 2026-06-11: 8.2h active 2026-06-12: 7.6h active 2026-06-13: 5.8h active 2026-06-14: 8.0h active 2026-06-15: 10.7h active 2026-06-16: 7.4h active 2026-06-17: 10.6h active 2026-06-18: 11.1h active 2026-06-19: 1.9h active 2026-06-22: 9.5h active 2026-06-23: 10.0h active 2026-06-24: 14.8h active 2026-06-25: 12.2h active 2026-06-26: 8.3h active 2026-06-27: 6.1h active 2026-06-28: 6.4h active 2026-06-29: 10.0h active 2026-06-30: 11.8h active 2026-07-01: 11.4h active 2026-07-02: 3.3h active 2026-07-03: 0.9h active 2026-07-04: 6.7h active 2026-07-05: 8.3h active 2026-07-06: 6.4h active 2026-07-07: 10.5h active 2026-07-08: 16.4h active 2026-07-09: 10.6h active 2026-07-10: 4.0h active 2026-07-11: 0.7h active 2026-07-12: 3.7h active 2026-07-13: 5.7h active 2026-07-14: 2.1h active 2026-07-15: 3.1h active 2026-07-16: 2.7h active 2026-07-17: 5.6h active 2026-07-18: 0.9h active 2026-07-19: 8.9h active 2026-07-20: 11.2h active 2026-07-21: 10.1h active 2026-07-22: 12.7h active 2026-07-23: 9.9h active 2026-07-24: 2.7h active weekday median 11.5h 2026-04-012026-05-012026-06-012026-07-01

The work comes in long blocks, not fragments

Group the active readings into uninterrupted runs — stretches where the machine stayed in use with no idle gap — and you get something like a log of focus sessions. There are 1,010 of them across 126 days, about 8.0 a day, adding up to 1,235 hours.

The typical session runs 43 minutes, but the average is dragged up to 73 minutes by a long tail — the single longest unbroken run was 11.4 hours.

The chart below is the interesting part. It splits active time, not session count, by how long the session lasted. Short sessions are common but barely register here, because they hold so little time between them. 81% of all focused time lands in blocks of an hour or more — the day is a handful of long stretches with brief ones scattered around them, not an even scatter of medium ones.

0 18 35 5–15m: 206 sessions, 2% of active time 15–30m: 198 sessions, 5% of active time 30–60m: 200 sessions, 12% of active time 1–2h: 200 sessions, 24% of active time 2–4h: 157 sessions, 35% of active time 4h+: 49 sessions, 22% of active time 5–15m15–30m30–60m1–2h2–4h4h+

Each bar is the share of total active time spent in sessions of that length.

Week by week, it's been tapering off

Total focused hours per week. It ran near 92 hours a week through the spring and has come down since — the first half of the record averaged 73 hours a week against 58 in the second, and the typical session got shorter alongside it.

0 46 92 week of 2026-03-16: 32.6h focused, 30 sessions, median 36m week of 2026-03-23: 82h focused, 59 sessions, median 54m week of 2026-03-30: 74.3h focused, 56 sessions, median 35m week of 2026-04-06: 66.9h focused, 46 sessions, median 69m week of 2026-04-13: 89.8h focused, 54 sessions, median 55m week of 2026-04-20: 75.2h focused, 63 sessions, median 53m week of 2026-04-27: 81.3h focused, 42 sessions, median 101m week of 2026-05-04: 65h focused, 57 sessions, median 32m week of 2026-05-11: 92.1h focused, 57 sessions, median 59m week of 2026-05-18: 90.2h focused, 57 sessions, median 64m week of 2026-05-25: 72.6h focused, 59 sessions, median 59m week of 2026-06-01: 67.6h focused, 68 sessions, median 37m week of 2026-06-08: 50h focused, 63 sessions, median 27m week of 2026-06-15: 45.6h focused, 36 sessions, median 47m week of 2026-06-22: 64.7h focused, 54 sessions, median 40m week of 2026-06-29: 53.7h focused, 56 sessions, median 40m week of 2026-07-06: 54.3h focused, 62 sessions, median 32m week of 2026-07-13: 27.6h focused, 48 sessions, median 17m week of 2026-07-20: 49.7h focused, 43 sessions, median 32m first-half avg 73h 2026-04-062026-05-042026-06-012026-07-06

And it's a midweek thing

Average focused hours by day of the week. Wed is the peak at 12.6 hours, and the blocks are longest early in the week — Mon sessions run a median of 63 minutes. Both the amount and the length taper toward the weekend, which bottoms out around 6.3 hours.

0.0 6.3 12.6 Mon: 11.9h avg, median session 63m (142 sessions) Tue: 12h avg, median session 48m (165 sessions) Wed: 12.6h avg, median session 49m (148 sessions) Thu: 10.4h avg, median session 53m (143 sessions) Fri: 8.2h avg, median session 27m (160 sessions) Sat: 6.3h avg, median session 27m (134 sessions) Sun: 6.9h avg, median session 37m (118 sessions) MonTueWedThuFriSatSun

A locked screen is a decent sleep tracker

The laptop has no idea when I sleep. What it does record is whether the screen is locked. Take the longest unbroken locked stretch that overlaps the middle of the night, and you get something that behaves a lot like a sleep log — 77 nights out of 126 days, the gaps being nights I left the machine unlocked or away from it entirely.

The median night is 7.6 hours, running from about 1:09 AM to 8:26 AM. The wake time barely moves all week. Nearly all the variation is in when I stop.

Which produces the one genuinely uncomfortable finding on this page: Tue nights are the worst, at 6.8 hours, and Sun nights the best, at 8.3. That's a 1.5-hour spread driven almost entirely by bedtime drift across the week, against a wake-up time that is essentially fixed.

Median night
7.6h
1:09 AM → 8:26 AM
Worst night of the week
6.8h
Tue, over 15 nights
Best night of the week
8.3h
Sun, over 8 nights
Night beginning Asleep Awake Median Nights
Mon 1:16 AM 8:25 AM 6.91h 5
Tue 1:42 AM 8:36 AM 6.81h 15
Wed 1:02 AM 8:50 AM 7.09h 19
Thu 1:04 AM 8:20 AM 7.42h 11
Fri 12:59 AM 8:20 AM 7.87h 14
Sat 12:44 AM 8:45 AM 7.69h 5
Sun 12:25 AM 8:06 AM 8.27h 8

Some weekdays have only a handful of nights behind them, so treat the day-by-day numbers as indicative rather than precise. The overall median, drawn from all 77, is the solid figure.

0 11 22 3–4 hours: 0 nights 4–5 hours: 0 nights 5–6 hours: 5 nights 6–7 hours: 22 nights 7–8 hours: 20 nights 8–9 hours: 16 nights 9–10 hours: 5 nights 10–11 hours: 5 nights 11–12 hours: 4 nights 34567891011

Nights grouped by length, in hours. The distribution is tighter than I expected — the short nights are not rare events, they're a routine.

Two windows account for most of it

1,350 hours of foreground use, grouped into categories. A terminal and a browser take 86% of it between them, which is either a damning indictment of modern software development or a completely unremarkable description of it.

Only the category is recorded here. A list of individual application names with timestamps is a meeting schedule and a social graph, so the names are mapped to buckets during processing and thrown away. Time spent at a locked screen is dropped rather than counted as anything.

Terminal
654h
Browser
513h
Comms
40h
Editor
33h
Games
31h
Meetings
31h
Other
30h
Media
20h