The tail does not go away
2026-08-25
Yesterday I gave the home screen three states it had been missing — a short nap, a day with no nap, an early morning — because those are the moments a parent most needs a sentence and the app was saying something generic. Today I wrote the paragraphs behind them, which meant finally asking my own 675 days of logs how often each of those days actually happens. The answer changed what the paragraphs say. A morning that started fifty minutes or more before that period's usual wake time happened on about one day in ten, at every age I have data for. Under four months, 13%. Four to seven, 10%. Seven to twelve, 11%. Through the whole second year, 10%.
I had expected a curve. Early mornings feel like a phase — the thing you are in, and then survive, and then are out of. That is certainly how they are sold: every early-waking article on the internet is a troubleshooting guide, a list of causes with a list of fixes, written as though a correctly-run household produces a 7 a.m. child every day. My own data says the early morning is not a phase at all. It is the left tail of a distribution, it is about a tenth of all mornings, and it is still there at two years for a child whose sleep I would call, on any other measure, well-sorted.
That reframing is the whole article I ended up writing. If early mornings are a phase, the correct response to one is an investigation. If they are a tail, the correct response to most of them is to shift the day earlier and get on with it — and to save the investigation for a pattern, where the books' actual fork lives (a too-late bedtime and a met sleep need produce the same 5:30 a.m. child and take opposite treatments). I would rather hand a parent the base rate than a checklist. One in ten is a number you can hold at half past five in the morning.
The short nap has a shape, and it is not the one I assumed
The same exercise, run over 1,531 logged naps, produced the other surprise. The share of naps ending under forty minutes:
- Under 4 months — 26%, median nap 61 minutes
- 4–7 months — 38%, median 45 minutes
- 7–12 months — 18%, median 62 minutes
- 12–24 months — 5%, median 80 minutes
At four to seven months the median nap was a short nap. More than a third of them ended before forty minutes, which is the threshold both Weissbluth and Dubief use for "this does not count as a restorative nap." Then it resolved — down to a fifth, then to one in twenty — and nobody fixed anything. It resolved on the same six-to-nine-month schedule the books give for sleep-cycle consolidation, showing up in one real dataset with no intervention attached.
This one matters to me because four to seven months is peak sleep-training-marketing season, and the peak of the short-nap distribution sits exactly inside it. A product that sells you a fix during the months a thing is naturally at its worst gets to take credit for the calendar. I have no interest in that trade, so the article says the number and says that it fades by itself.
The honest caveats travel with both results: this is one child, hand-logged by my partner and me, and a missed log is indistinguishable from a missed nap. The no-nap-day rate I measured (essentially zero under a year, about 1% in the second year) is the one most exposed to that — but the order of magnitude is what the article leans on, and the order of magnitude is safe.
Publishing the article is the wiring
The mechanical half of today has one idea in it worth writing down. Each guide article has carried a moment: field in its frontmatter since the guide existed — anytime, pre-nap, night — and nothing consumed it. It was a promise to my future self that the app would one day surface the right paragraph at the right point of the day.
Today it became load-bearing, and the shape of that turned out to matter. The obvious implementation is a table in the app: state short_nap links to article the-short-nap. I didn't write that table. Instead the state's own phase id is the moment key, spelled with hyphens instead of underscores, so short_nap finds whatever article declares moment: short-nap. There is no second list. Writing the article and giving it that one line of frontmatter is the entire act of wiring it up; deleting the article unwires it; and there is no way for the two halves to drift apart, because there are not two halves.
The reason I care about a small piece of plumbing is that this app is one person's evenings. Every mechanism that needs two edits to stay consistent is a mechanism that will eventually get one. The guide is meant to grow for years. It should grow by writing.
Where the link goes, and where it doesn't
One more decision, and it is a calm-principles one. The link does not appear on the resting screen. NaniNani's home is a picture with a single sentence on it, and the deal that sentence makes is that it will never ask you for anything. A "learn more" under it, on the morning your child got up at ten to six, is the app suggesting you have homework.
So the paragraph lives one deliberate pull away, in the sheet where the day's numbers already are — visible to the parent who went looking, invisible to the parent who opened the app for five seconds and got their answer. And it appears only for the three states that have an article written for them. A link that is always there is furniture; a link that appears only on the days it is about is a small, quiet offer. That is the difference I want the app to keep making.