
Costs
Part of September birthdays, cross-checked against the record
How much of September birthdays is genuinely settled?
September birthdays by day: why absence has kinds, what a template does when given nothing, and how to design a day index around a gap rather than fill it.
Most of the interesting decisions in a day index are about the entries that do not have a day. A list has to render something, and what it renders in place of an absent value is the choice that decides whether the page is honest.
What to take away
- Absent is not the same as zero, blank, or the first of the month, and a system that conflates them will publish values nobody recorded.
- There are several different reasons a value can be absent, and they call for different handling.
- A page can say that it does not know. That option is usually available and usually skipped.
Absence has kinds
Missing data is a field of study, not a nuisance. Its first lesson: missingness has structure.
A value can be absent because nobody recorded it, the record was lost, the source declined to publish it, the compiler could not verify it, or the field does not apply. Those five states flatten into one empty cell and cannot be recovered.
The consequence for a day index is direct. An entry with no day because the source only gave a month is in a very different position from an entry with no day because two sources disagreed and the compiler removed both. Displayed identically, they invite the same inference, and only one of them deserves it.
Empty is a value, and that is the problem
In a database an absent value is usually represented by a marker meaning unknown. The behavior of that marker is deliberately strange: comparisons involving it do not come out true or false, and aggregates skip it. Those rules exist because unknown really is different from any particular value, and code written without them in mind produces confident nonsense.
The failure that reaches a published page usually happens one layer up, in the template. A rendering step given nothing has to print something, and the defaults it reaches for are all wrong in the same way.
| What the template does with an absent day | What the reader sees | What was actually known |
|---|---|---|
| Prints the underlying storage default | The first of the month | Nothing about the day |
| Prints an empty string inside a formatted date | A malformed date the reader mentally repairs | Nothing about the day |
| Omits the entry entirely | A shorter list that looks complete | That an entry exists |
| Groups absent values under one arbitrary day | A day with an implausible pile of entries | Nothing about any of them |
| Prints a placeholder that looks like data | A number | Nothing |
The third row is the quiet one. Dropping incomplete entries makes a page look better and makes the collection look more complete than it is, and nothing on the page records that anything was dropped.
Designing for the gap
- Store the precision alongside the value. An entry known to the month is a month-precision entry, not a day-precision entry with a hole in it.
- Give the template an explicit branch for each precision, so that nothing has to invent a value in order to render.
- Show the gap. A line that says the source gives the month only is short, honest and immediately useful to anyone trying to improve the entry.
- Never let a sort put absent values somewhere meaningful. If they must appear, put them in their own group and label it.
- Keep the reason for the absence, because it is the field that tells a later editor whether the gap is closeable. The January by-day pages describe the shape a partial record should take.
Why this month page is shorter than it could be
A day index for any month could be padded by promoting month-precision entries to a day, and the result would look richer. It would also be a fabrication, and one that spreads: a value published with a day gets copied by anyone building on it, and the copy carries no trace of where the day came from.
The September index treats the month as the unit it can actually defend. That is not modesty for its own sake. It is the level of precision the sources support, and the level at which the February index argues a public page should stop in any case.
Common questions
Is it better to leave an entry out than to show it with a gap?
Showing it with a gap is better, provided the gap is labeled. Leaving it out hides both the entry and the fact that something is missing, which makes the collection harder to improve.
How can a reader tell whether a day was recorded or supplied?
Only if the page says. That is the argument for saying it on every entry rather than in a footnote, and it is the one piece of metadata that costs nothing and changes how everything else should be read.
Does an unknown day mean the entry is unreliable?
No. A carefully sourced month is more reliable than a confidently guessed day. Precision and accuracy are different properties, and a page that treats them as one will always prefer the wrong entry.
What should happen if a day turns up later?
The entry gains precision and the record should show when and from what. A value that changes silently is indistinguishable from a value that was always wrong, which is why the January index keeps the correction route in public.







