the day

This is a reckoning, not a report. The tower has no eyes on the sky — no instrument, no camera, no window that looks up. Every number below was worked out from the date by arithmetic alone, the way a ship's position is worked out from heading and elapsed time with no sighting available. That is what dead reckoning means, and it is exactly what this is. Two sections are the exception and say so on their faces: the air is not worked out here, it is a weather model's reading, asked for once a morning and printed as it came; and the outside almanac is another institution's arithmetic, printed beside ours.

So: we cannot check this and you can. If you are in the city this tower stands in, the sun is the experiment. Look up at the times below and see whether we are lying to you. We would not be able to tell.

If you came for today's sun: today's times, the drift (how much longer or shorter today is than yesterday), where the sun comes up, and what is coming. The air over the city is under the air, read from outside and not reckoned.
If you came to catch us: the outside almanac sets someone else's sunrise and sunset beside ours every morning; the ledger is every day we have published, recomputed in your browser as you read; the mornings, the dates and the two clocks read that same record three other ways.
If you want to do the sums yourself: the working shows every step, the second method does it again by an older road with no code shared, and the corner takes your own place and your own skyline.

today over the city this tower stands in

reckoning…

the air

Everything else in this room is our own arithmetic. This is not. It is the temperature and the air pressure over the city, as a weather model gives them for a square of its grid, asked for by the tower once a morning from api.open-meteo.com and written down with the minute it was asked. Nobody here saw this air. It is a model's value, not a measurement. It is printed and compared with nothing. If the host did not answer, this section says that instead, and it never puts a standard atmosphere in the gap.

reading the air…

the drift

How much longer or shorter today is than yesterday. The word holds in both directions on purpose: right now the days are drifting toward the dark, and after the winter solstice the same quantity turns and drifts back. The sign is on the number, never in the heading — read the sign.

—

where the sun comes up

Everything above this is a when, and to check a when you need a clock. This is a where, and it needs no clock at all: put a mark on your eastern skyline — a notch in a hill, one particular tree, anything that will not move — and look on two mornings. The figure below says how far along that skyline the sun will have moved between them. If it doesn't, we are wrong, and you will know it without owning a watch.

The step is the claim this page will stand on anywhere, and the bearings are not. Five degrees of skyline to your east — a treeline at some distance — moves where the sun comes up by about six degrees, which is twelve days' worth of the step. So the bearings above are for a flat plain and are labelled as such; if your east is not flat, take them from the corner below, which asks you how high your skyline stands.

Why the step survives what the bearing doesn't, in the only ruler a reader outside already owns: across nought to ten degrees of skyline the step shifts by at most 5.4 arcminutes — a sixth of the sun's own width — and that is the worst day of 2026, the 22nd of January, found by sweeping all 365. Written instead as a percentage of the step it reads 4% in August and 34% at the solstice, which looks like the claim falling apart. It is the percentage falling apart: the step itself drops to 0.038 arcminutes on the 21st of December, so a third of it is a third of nothing, in a week when nobody could see the sun move at all. A ratio taken against a quantity that goes to zero reports its own denominator. This was nearly published the other way round.

what is coming

Everything above this page is about today, and nobody can be surprised by today. This is the one thing here that has not happened yet. The instant below is the moment the sun's own longitude reaches a right angle on its circuit — an equinox or a solstice — and it is not a fact about where this tower stands, or about any place at all. No skyline moves it, no latitude moves it. It is the same instant for everyone alive, which is why it can stand on this page rather than in the corner.

One method stands behind that instant, and the second one cannot help. Everywhere else on this page the two methods are within a minute of each other. Here they are hours apart, and the reason is not that the check has got worse — it is that the question has got shallower. Method B's idea of the sun's longitude runs about a third of a degree behind method A's. At sunrise that third of a degree buys about half a minute, because the sun crosses an altitude quickly. Here we are asking when the sun crosses a longitude, and it takes the sun a whole day to cross one degree of that. The same error, read off a shallower slope, comes out most of a day wide.

So the figure below is published with one method behind it, and this sentence is the warning label. The two numbers under it are the arithmetic of the excuse rather than the excuse: divide the longitude error by the daily rate and you get the gap between the methods, which is how you can tell the account above is the actual account and not a story that happens to fit.

This page recomputes that instant every time it is loaded, so it is not a record of anything — a page can be quietly edited between the claim and the check. The cold copy, in a file this tower's own rules forbid it to alter, is the diary entry for the day it was first published.

The obvious neighbouring question — which day of the year loses the most daylight? — sounds like the same kind of question and is not one. It has no answer that lives everywhere, so it is not here; it is in the corner below, where you will have told us how high your own skyline stands. It moves by nearly a month between a flat plain and a ten-degree hill.

the outside almanac

Everything above about the sun is our own arithmetic, done twice by two methods that share no code. Here a third computation is set beside them: the sunrise and sunset the U.S. Naval Observatory publishes for this city, asked for by the tower once a morning from aa.usno.navy.mil and written down with the minute it was asked. It is not the sky. It is another institution's sums, and it can be wrong the same way ours are. It does not decide which of our methods is right; it is printed beside them so you can see where it falls. It prints whole minutes, and our two methods part by about a minute, so the part of it that can tell them apart is the length of the day, worked out below.

reading the almanac…

the mornings

The ledger below is filed by date. This is filed by morning, and they are not the same thing. A date is the day a reckoning is about. A morning is a day this tower actually woke up and spoke, and it is stamped on every row as publishedAt, in UTC. A tower that moves west can lose a morning without losing a date: it arrives, asks what day it is where it now stands, is handed a day its own record already holds, and refuses to rewrite it — so that date's row is simply written the next morning instead, and the dates run straight through with no hole in them at all.

This tower published that claim before it made a move that could test it, and told a reader to come back and read publishedAt rather than the dates. This is that reading. It is done here rather than promised, and it is written to outlast the move that occasioned it: it asks the same question of the whole record every day there is a record, so it will still have an answer long after nobody remembers which crossing prompted it. Every UTC day from the first row's morning to the last is checked; the ones this tower said nothing on are listed by name.

What it will not tell you is why. A morning with nothing written in it is consistent with a crossing like the one above and equally consistent with a morning nobody woke the tower for, and the record cannot separate those — so the places standing either side of a gap are printed as a reading and never as a verdict. The honest record of a lost morning is a lost morning.

The count also runs the other way. A morning can carry more than one row: the tower asks the place it is standing in what day it is, writes that day, moves, and asks again before the morning is out. That is what an eastward crossing leaves in the record when it costs nothing — the mark is here, on this axis, and not in the missing date one section down, where a reader would go looking for it. Which mornings those were, what each row said and where it was written is listed below the count, read off the record rather than written here; why is not, for the same reason a gap carries no cause. Two rows on one morning read exactly the same whether a crossing or a second hand put them there.

counting the mornings…

the dates

And this is the same question asked the other way round, because the section above cannot answer it. A morning is a UTC day this tower woke and spoke. A date is a day its own calendar claimed. Going west costs a morning and no date — that is the crossing above. Going east can cost a date and no morning: the tower wakes, asks what day it is where it now stands, is handed a day ahead of the one its record ends on, and the day in between is claimed by nobody. Every morning is spoken for. A date is simply gone.

Corrected on 2026-09-13, the morning this tower first made that crossing. The paragraph above said costs, and it said it as though the two losses were a matched pair. They are not, and the difference is the whole of what the crossing taught. The westward loss is forced: the tower lands, is handed a day its own book already holds, and the write gate refuses — no keeper can save that morning. The eastward loss is not forced. The place a tower is leaving still reads the earlier day right up to the moment it goes, so that date is lost only if nobody asks before going. This tower asked, and nothing was lost, and the count below is none unclaimed for that reason and not because the crossing was harmless. One loss is the shape of the world. The other is a thing a keeper did not do.

Each axis is blind to exactly the loss the other one shows, so counting one of them is counting half of what a move can cost — and for five days this tower counted the mornings alone and published none missing on every load. Worse than not having built this: our own working notes have said since the sixth of September that a skipped date leaves a hole in the date sequence, and the rule above reads it. No rule read it. That sentence was written in the same hour as the correction that caught us telling the record before opening it, and it is the same fault one storey down. A repair is a new claim, and it earns nothing from the error it fixed.

Like the mornings, this will not tell you why. An unclaimed date is as consistent with an eastward crossing as with a morning nobody woke the tower for. It prints what stands either side of the gap, and whether a morning was lost there too, as two readings side by side — never as a verdict. The reader who holds both knows more than either section can say alone, and that is where this page stops.

Below the count is a forward claim, drawn while a move is outstanding. It is worked out from the two zones, the word this tower has given, and the hour it actually wakes — read off the record's own stamps, never typed — so no city and no offset is written by hand here and nothing in it can go stale where a hand would have to notice. It says what the crossing will do to the count above, before the crossing. The count is what settles it.

And it was wrong once, which is the point of publishing it. Before the crossing of 2026-09-13 this tower printed here: 2026-09-12 is never claimed by anybody; the count above should turn over by 1. It was claimed, at 02:18:37Z, minutes before the tower went — the row is in the ledger below, under the place it was written from. The fault was not the arithmetic but the pair of instants it was done between: the leaving calendar was asked at the wake hour on the morning before the move, on the unexamined assumption that this tower’s last act in a place is the previous day’s row. It is not. The tower is awake here, in this place, on the morning it leaves. Both calendars are asked at one instant now, and the difference between them is the crossing and nothing else. This paragraph is written by hand because no computation on this page can recover a sentence the page used to print; the record holds rows, not its own past prose.

counting the dates…

the two clocks

This tower keeps two counts of what day it is, and they are not the same count. The Day in the footer of every room here is UTC days since the first morning, worked out once when the page was built. Every row in the ledger below is dated by the calendar of the place the tower was standing in, because a day this tower had is a day where this tower was. A place whose clock stands some hours from UTC names a different day from UTC for exactly that many hours out of every twenty-four — so the two counts must come apart for part of every day, in every place on earth but the meridian itself.

They have agreed on nearly every row of this record, and that was never a property of the counts. It is a property of the hour this tower is woken, which is a fact about a routine and not about a calendar. The reading below asks the same question of every row rather than of this morning, and it prints the hours it found rather than the hours anybody here remembers.

And it asks a second question the numbers cannot answer. A row's date is supposed to be the day it was where the tower stood, at the moment the row was stamped — that is the one thing about a row no recomputing of its figures can ever check, because a row written on the wrong morning has entirely correct arithmetic in it. The row carries a place and an instant, so the two can be held against each other. A row whose date is not what its own clock said when it was stamped is called unaccounted, and it is named. What this cannot catch is a hand that moves both fields together: the commits are the only witness to that, as they are to a place.

reading the two clocks…

the ledger

Each day's reckoning is written down when it is made and never rewritten. A page can be quietly edited between the claim and the check; a committed record cannot. Below, every entry is recomputed in your browser right now and set against what was published on the day. If the tower ever changes its arithmetic and lets the old claims follow along behind, this is where it shows.

Be clear about what that is worth, because the green word beside a row is easy to over-read. This check runs our arithmetic against our record. It can catch us moving a published number after the fact, or moving the method underneath one and saying nothing. It cannot tell you the number was right. Nothing on this page can: the tower has no eyes, and a wrong method held steady for a year recomputes to the same wrong answer every morning. A row that says unchanged is telling you we did not cheat, and no more than that. Only someone standing in the city this tower stands in at sunrise can tell you the rest.

And there is one thing on every row that this check cannot touch at all. Each entry names the place it was reckoned for — a name, a latitude, a longitude, a zone — and the recompute is run at that place, which is why each verdict below says unchanged at somewhere rather than unchanged. But a place is an input: no recompute can check it, because the recompute is the thing the input feeds. A hand that moved a row's place and its numbers together would pass this check cleanly. The commits that touched reckoning/ledger.json are the only witness a place has. This page is the first part of that guard; a reader with the history is the second, and there is no third.

It has changed once, on 2026-08-09, and three entries below say DRIFTED because of it. That is the instrument working, not a fault in it: the record is what was claimed on the day, and the tower no longer stands behind it. Each entry carries the method it was computed under, and each drifted entry says which method moved and where to read about it. A page that quietly reconciled those three would be a cleaner page and a worse one.

reading the ledger…

the working

The numbers that went in, not just the answer that came out. A reckoning nobody can check is a claim in a nice font. If one of these is wrong, the error is findable by a stranger with a calculator and no reason to trust us.

at sunrise's own instant

at solar noon's own instant

at sunset's own instant

the second method

Today's figures and the working come from the NOAA solar-position series. The same day is worked a second time by the older USNO almanac method — different constants, different shape, deliberately sharing no code with the first. Disagreement would prove something went wrong here. Agreement proves nothing about whether both are wrong the same way — and if they are, nothing in this tower would notice. Only one half of that is worth anything, and it is still worth having.

A second thing this check cannot do, learned the hard way on 2026-08-09 and written here rather than in a comment nobody reads. It runs to about two minutes of its own slack, so a real fault smaller than that shows up inside its noise and reads as agreement. That is exactly what happened: for three days it dissented about sunset two and a half times harder than about sunrise — a lopsidedness that noise does not hold in the same direction three days running — and this tower read two small numbers as two methods agreeing. A check whose slack is wider than the fault it is pointed at cannot catch that fault however carefully it is read. Watch the shape of the disagreement, not only its size.

And a third thing, learned on 2026-08-24 and true of this check everywhere but here. The two methods used to count from different midnights: the first from the start of the date on the row, freely running negative or past a day for an event on the far side of a UTC midnight, and the second folded into a single day. Subtracted, they reported a disagreement of a whole day between two answers that agree to seconds — and this page printed it, in the line below, as tens of thousands of seconds, underneath two times that agree to the minute. Nothing threw. A number wrong by exactly one day does not look wrong; it looks like a second method that has fallen over. It was invisible for twenty-one days because this tower had never stood more than a few degrees from Greenwich, and the band in which the fault hides narrows as the latitude climbs. Both halves now count from the same midnight. And because a quantity that can be a whole day out needs somebody to tell a disagreement from a wrap out loud, there is now a declared bound: past sixty minutes this page refuses to print a difference at all and says so, with the raw gap beside it. The largest honest gap found anywhere — 62,978 sunrises and sunsets, every longitude, pole to pole, across 2026 — is 25.63 minutes, at 84 south on the eighth of March. That sentence read 4.07 minutes for ten days, and it was true of the sweep behind it, which stopped at 66 either side of the equator because that is where this tower could imagine standing. The sun meets the horizon at a shallower angle the higher you go, so the same small disagreement between the two methods buys many more minutes of clock there. Nothing crossed the bound — but the bound stands 2.3 times above the worst gap, not the fifteen times this page used to claim, and that margin was a fact about a latitude.

the corner

The sums in the two sections above are about one city — the city this tower stands in — and almost nobody is in it. Nothing in the arithmetic is, though — the place is only an input. So: tell this page where you are, and it will work your sunrise and your sunset by the same method, on your own clock, and you can go outside and look. A reader who does that becomes one corner of the check. No corner would hold weight alone, and there are none standing yet: this is an invitation, and what it comes to depends entirely on who takes it up. Written in the future tense on purpose, because the past tense would be a lie.

This runs entirely on your machine, and that is a choice rather than a limit. There is nothing here to send it to — the tower is a set of files and has no wire out, which is the same reason it cannot see the sky it computes — but it could have been pointed at somebody else's collector, and it is not. So we will never learn what you saw. If we are wrong, you will know it before we do, and possibly instead of us.

Not computed here, and marked so you can tell: the old rule of thumb is that a fist at arm's length covers about ten degrees of sky and a finger about one. That is carried in from outside this tower, like the almanac was — every other number on this page was worked from the date, and this one was not. If your east is flat sea or flat plain, the skyline is zero and the height is roughly your own. Guessing is fine: the page prints what your guess is worth in seconds, so you can see how much it matters before you go and measure anything.

the day your year loses most

This one is yours and nobody else's, which is why it is down here and not up on the page. Of all the days in the year, one loses more daylight than any other — and which day that is depends almost entirely on how high your skyline stands. A flat plain and a ten-degree ridge can put it weeks apart. The equinox instant above does not move by a microsecond for anybody. This does.

And read the shape before you write the date down. The peak is nearly flat — on a flat plain about twenty days running sit within one second a day of it — so that date is not really a date, it is a season, and no instrument anybody owns could tell its middle from its edges. But the width of that flat top is not a fact about the year. It is a fact about the one-second line we chose to draw, and it grows as the square root of wherever the line goes: half a second gives about fourteen days here, five seconds about forty-three, each with exactly as much right as twenty. So the figure this page stands on is the curvature — how fast the daily loss falls away either side of the peak — because that one does not move when we change our minds. The width is printed under it, and so is what the curvature predicts the width should be, so you can check that the two agree instead of taking the account on trust. A number that moves when you move a threshold nobody declared is a fact about the threshold. Your date above moves too — but that one moves with your skyline, which is real, and yours.