Methodology
How every figure on this site is computed
Everything here comes from about a hundred and twenty lines of arithmetic you can read. This page says what the rules are and how they are checked.
Whole days, in UTC
A date is a year, a month and a day — not a moment. Every calculation converts to midnight UTC, does integer arithmetic on whole days, and converts back. This matters twice a year: local-time arithmetic across a daylight-saving boundary gains or loses an hour, and an hour is enough to move an answer onto the wrong date. The one place local time is used is the word "today", because that is a question about where the reader is standing.
The eleven federal holidays
From 5 U.S.C. 6103(a), computed rather than listed: the fixed dates (1 January, 19 June, 4 July, 11 November, 25 December) and the floating ones (the third Monday in January and February, the last Monday in May, the first Monday in September, the second Monday in October, the fourth Thursday in November).
Juneteenth was added by Pub. L. 117-17 in June 2021, so a calculation over an earlier year has ten holidays, not eleven. That is not a rounding: a business-day count across 19 June 2019 must not skip a day the country worked.
The observed-date rule
Under 5 U.S.C. 6103(b) a holiday falling on a Saturday is observed the Friday before, and one falling on a Sunday the Monday after. The observed date is the day offices are shut, so that is the day a working-day count removes.
One consequence is easy to get wrong, and this site handles it: when 1 January falls on a Saturday, the day off is 31 December of the previous year. A calculation that looked only at one year's own holidays would count that 31 December as a working day.
How the rules are checked
They are cross-checked against a second, independently written implementation of the same statute — different structure, written from the law rather than from the shipped code — across every month of a twenty-six year span, on every build. Two implementations agreeing is a far stronger claim than one implementation passing its own tests, and the cross-check has already caught a real error here before it shipped: the 31 December case above.
How the moon phases are computed
The usual way to find a moon phase is to count days from a known new moon and divide by 29.530588. That is the mean synodic month, and the real interval between new moons is never exactly it — the Moon's orbit is an ellipse, so it moves faster near perigee than near apogee and consecutive lunations run from roughly 29.27 to 29.83 days. The error does not average out within a lunation; it accumulates to as much as fourteen hours, which is enough to name the wrong calendar day for a full moon several times a year and to give no indication that it has done so.
This site instead computes the positions themselves, using the series in Jean Meeus's Astronomical Algorithms: chapter 47 for the Moon, 25 for the Sun, 48 for the illuminated fraction, and 49 for the instants of new, first quarter, full and last quarter. Those instants come out in Dynamical Time, so they are converted to Universal Time using the Espenak & Meeus piecewise fit for delta-T — the accumulated drift of the Earth's rotation, which is about minus three seconds in 1900 and plus sixty-four in 2000. A day is given one of the four principal phase names only when that instant falls inside it; every other day is named for the crescent or gibbous shape it actually has.
The check is external, because a calculation verified against itself is not verified. Two hundred and fifty phase instants published by the United States Naval Observatory — drawn from 1900, 2006, 2026, 2048 and 2100, so that the higher-order terms and the delta-T fit are all exercised far from their reference epoch — are held as a fixture in the test suite, and every one is compared on each build. Agreement is within a minute everywhere the Earth's rotation has actually been measured, and no instant falls on the wrong calendar day in any of those years. A second, independent check runs alongside it: the position series and the phase series share no code, so the elongation between Sun and Moon computed by the first must land on its exact multiple of ninety degrees at every instant found by the second.
Past about 2050 the dates remain right and the clock times become uncertain, because delta-T is measured rather than predicted and nobody knows how fast the Earth will be turning. Reputable sources already differ by a minute or two over a full moon in 2100. This site uses the standard long-term projection and states the limit rather than implying a precision it does not have.
How the moon sign and day-type are computed
The sign is the Moon's sidereal ecliptic longitude — its position measured against the stars rather than against the equinox, which itself drifts by about one degree every seventy-two years. Sidereal longitude is tropical longitude minus a quantity called the ayanamsa, and the ayanamsa is a convention rather than an observable, so it has to be named to mean anything. This site uses Fagan-Bradley: twenty-four degrees, two minutes and thirty-one seconds at 1950.0, carried forward by the standard general-precession series, which puts it a little over twenty-five degrees in the present decade.
The sky is then divided into twelve equal thirty-degree signs, and each sign carries one of the four classical elements in the usual triplicities. Fire gives a fruit day, earth a root day, air a flower day, water a leaf day. Changeover instants are found by solving for the moment the sidereal longitude crosses a multiple of thirty degrees, by bisection rather than by formula — safe here because the Moon is never retrograde in longitude, so a crossing inside a bracketing interval is unique.
Two deliberate departures from the printed calendars are worth stating. First, those calendars use the observed constellation boundaries, which are very unequal — Virgo spans over forty degrees of the ecliptic and Scorpius about seven — so their day-types will differ from these, often by a day. Second, the sequence here is computed rather than reproduced, because a published calendar is somebody's work. The disagreement is the visible consequence of not copying it.
The tradition holds that these days differ in effect. That is a claim about the world and this site does not make it: the trials behind it concern sowing rather than tasting, they are contested, and the substantial independent study of the question found effects from other lunar rhythms but not from this one. What is printed here is where the Moon is and what the tradition calls that day.
Checking the positions against an outside source
Lunar and solar positions are checked on every build against NASA JPL's Horizons ephemeris — 105 lunar positions across 1900, 2026 and 2100, and eighteen solar ones. This matters more than it sounds: the moon phase check compares the Moon against the Sun, so any error the two share cancels out of it and cannot be seen. One did. Position was being computed from Universal Time using series that are defined in Terrestrial Time, a difference of about seventy-five seconds, which moves the Moon forty-one arcseconds and the Sun only three. Every phase test stayed green throughout. It took an absolute reference to find, which is the reason there is now one.
What is not here
No state or municipal holidays, no non-US calendars, no business-hour arithmetic, and no working days according to any particular institution's schedule. Where a deadline counts differently from plain weekdays-minus-federal-holidays, this site will not know it — which is why the holiday switch exists.