Verification corpus
31 cases the engine is tested against on every build. If any pillar below stops reproducing, the site does not deploy.
The point is not to claim we are right. It is to show where implementations diverge and why — so that when a chart here disagrees with another site, the disagreement can be located instead of disputed. See the conventions for the choices behind them.
Solar-term boundaries
A birth minutes either side of Li Chun changes the year pillar. These are the cases where feeding true solar time into the term comparison — the intuitive implementation — returns the wrong year.
| Birth | Correction | True solar time | Pillars | Note |
|---|---|---|---|---|
2024-02-04 16:26 Asia/Hong_Kong · 114.17° | lon −23.32m EoT −13.86m = −37.18m | 2024-02-04 15:48:49 | 癸卯 乙丑 戊戌 庚申 | One minute before Li Chun 16:27:07 CST |
2024-02-04 16:28 Asia/Hong_Kong · 114.17° | lon −23.32m EoT −13.86m = −37.18m | 2024-02-04 15:50:49 | 甲辰 丙寅 戊戌 庚申 | One minute after — year pillar must advance A naive true-solar chain returns year 癸卯. |
2024-02-04 03:30 America/New_York · -74.00° | lon +4.00m EoT −13.86m = −9.86m | 2024-02-04 03:20:08 | 甲辰 丙寅 戊戌 甲寅 | 03:30 EST = 16:30 CST, past Li Chun. A naive TST chain returns the wrong year A naive true-solar chain returns year 癸卯. |
2024-02-04 08:30 Europe/London · -0.13° | lon −0.52m EoT −13.86m = −14.38m | 2024-02-04 08:15:37 | 甲辰 丙寅 戊戌 丙辰 | 08:30 GMT = 16:30 CST — same trap, different offset A naive true-solar chain returns year 癸卯. |
2024-02-04 19:30 Australia/Sydney · 151.21° | lon −55.16m EoT −13.86m = −69.02m | 2024-02-04 18:20:59 DST in force | 甲辰 丙寅 戊戌 辛酉 | Southern hemisphere, ahead of CST |
Historical time zones
Singapore ran UTC+7:30 until 1982. Hong Kong observed summer time. China observed daylight saving from 1986 to 1991, which affects an entire cohort of mainland births. These are resolved from the IANA database rather than assumed.
| Birth | Correction | True solar time | Pillars | Note |
|---|---|---|---|---|
1970-01-15 12:00 Asia/Singapore · 103.82° | lon −34.72m EoT −9.28m = −44.00m | 1970-01-15 11:15:59 | 己酉 丁丑 乙未 壬午 | Singapore ran UTC+7:30 before 1982 |
1990-01-15 12:00 Asia/Singapore · 103.82° | lon −64.72m EoT −9.28m = −74.00m | 1990-01-15 10:45:59 | 己巳 丁丑 庚辰 辛巳 | Same city after the 1982 shift to UTC+8 |
1965-07-15 12:00 Asia/Hong_Kong · 114.17° | lon −83.32m EoT −5.81m = −89.13m | 1965-07-15 10:30:52 DST in force | 乙巳 癸未 庚午 辛巳 | Hong Kong observed summer time — UTC+9 |
2024-07-15 12:00 Asia/Hong_Kong · 114.17° | lon −23.32m EoT −6.03m = −29.35m | 2024-07-15 11:30:39 | 甲辰 辛未 庚辰 壬午 | Same city, no DST — control for the above |
1990-06-15 12:00 Asia/Shanghai · 75.99° | lon −236.04m EoT −0.30m = −236.34m | 1990-06-15 08:03:39 DST in force | 庚午 壬午 辛亥 壬辰 | China observed DST 1986-1991; far-west longitude compounds it |
1990-07-15 12:00 America/Los_Angeles · -118.24° | lon −52.96m EoT −5.93m = −58.89m | 1990-07-15 11:01:06 DST in force | 庚午 癸未 辛巳 甲午 | Western hemisphere DST, negative longitude |
Equation of time
The correction most calculators omit. It reaches roughly ±14 to ±16 minutes, which is enough to move an hour branch.
| Birth | Correction | True solar time | Pillars | Note |
|---|---|---|---|---|
1990-02-11 12:00 Asia/Hong_Kong · 114.17° | lon −23.32m EoT −14.30m = −37.62m | 1990-02-11 11:22:22 | 庚午 戊寅 丁未 丙午 | EoT annual minimum ~-14.2 min |
1990-05-14 12:00 Asia/Hong_Kong · 114.17° | lon −23.32m EoT +3.69m = −19.63m | 1990-05-14 11:40:22 | 庚午 辛巳 己卯 庚午 | EoT local maximum ~+3.7 min |
1990-07-26 12:00 Asia/Hong_Kong · 114.17° | lon −23.32m EoT −6.48m = −29.80m | 1990-07-26 11:30:11 | 庚午 癸未 壬辰 丙午 | EoT local minimum ~-6.5 min |
1990-11-03 12:00 Asia/Hong_Kong · 114.17° | lon −23.32m EoT +16.46m = −6.86m | 1990-11-03 11:53:08 | 庚午 丙戌 壬申 丙午 | EoT annual maximum ~+16.4 min |
1990-04-15 12:00 Asia/Hong_Kong · 114.17° | lon −23.32m EoT −0.16m = −23.48m | 1990-04-15 11:36:31 | 庚午 庚辰 庚戌 壬午 | EoT near zero crossing — sign errors hide here |
The day boundary
Where the two schools genuinely disagree. Both columns are shown; neither is presented as the error.
| Birth | Correction | True solar time | Pillars | Note |
|---|---|---|---|---|
1990-06-15 23:00 Asia/Hong_Kong · 114.17° | lon −23.32m EoT −0.41m = −23.73m | 1990-06-15 22:36:16 | 庚午 壬午 辛亥 己亥 | Clock 23:00 is NOT the start of zi at this longitude — TST 22:36 is still the 亥 hour. Guards against reading the zi boundary off clock time |
1990-06-15 23:30 Asia/Hong_Kong · 114.17° | lon −23.32m EoT −0.41m = −23.73m | 1990-06-15 23:06:16 | 庚午 壬午 辛亥 庚子 | Mid late-zi — the canonical school-difference case Other school gives day 壬子. |
1990-06-15 23:59 Asia/Hong_Kong · 114.17° | lon −23.32m EoT −0.42m = −23.74m | 1990-06-15 23:35:15 | 庚午 壬午 辛亥 庚子 | Last minute before midnight Other school gives day 壬子. |
1990-06-16 00:01 Asia/Hong_Kong · 114.17° | lon −23.32m EoT −0.42m = −23.74m | 1990-06-15 23:37:15 crosses calendar day | 庚午 壬午 辛亥 庚子 | Clock is past midnight but TST falls back to the previous day — crossedDayBoundary must be true and the day pillar must stay on the 15th Other school gives day 壬子. |
1990-06-16 00:30 Asia/Hong_Kong · 114.17° | lon −23.32m EoT −0.42m = −23.74m | 1990-06-16 00:06:15 | 庚午 壬午 壬子 庚子 | Genuine early zi: day pillar advances to the 16th while the hour stays 子 |
Extreme longitudes
Places far from their own zone meridian, where the correction runs to hours rather than minutes.
| Birth | Correction | True solar time | Pillars | Note |
|---|---|---|---|---|
1990-06-15 08:00 Asia/Shanghai · 75.99° | lon −236.04m EoT −0.27m = −236.31m | 1990-06-15 04:03:41 DST in force | 庚午 壬午 辛亥 庚寅 | Largest ordinary correction in the corpus (~-236 min) |
1990-06-15 07:00 Asia/Shanghai · 91.14° | lon −175.44m EoT −0.26m = −175.70m | 1990-06-15 04:04:18 DST in force | 庚午 壬午 辛亥 庚寅 | Tibet on Beijing time |
1990-06-15 12:00 Pacific/Auckland · 174.76° | lon −20.96m EoT −0.28m = −21.24m | 1990-06-15 11:38:45 | 庚午 壬午 辛亥 甲午 | Near the date line, large positive longitude |
2024-06-15 12:00 Pacific/Kiritimati · -157.47° | lon −29.88m EoT −0.50m = −30.38m | 2024-06-15 11:29:37 | 甲辰 庚午 庚戌 壬午 | [HAND-VERIFIED] Civil offset UTC+14 but geographic longitude ~-157° — sign mismatch across the international date line. Unwrapped arithmetic gives a ~1470-minute (24.5h) correction; hand check: reference meridian 210° (=840min/4), longitude re-expressed as 202.53° (=-157.47+360) is 7.47° from it, so the correction must be (7.47°×4=)~29.9 minutes, not 24.5 hours. |
Control charts
Ordinary births used to compare against independent references.
| Birth | Correction | True solar time | Pillars | Note |
|---|---|---|---|---|
1990-06-15 12:00 Asia/Hong_Kong · 114.17° | lon −23.32m EoT −0.31m = −23.63m | 1990-06-15 11:36:22 | 庚午 壬午 辛亥 甲午 | Known chart: 庚午 壬午 辛亥 甲午 on clock time |
2000-01-01 00:00 Asia/Shanghai · 116.41° | lon −14.36m EoT −2.91m = −17.27m | 1999-12-31 23:42:44 crosses calendar day | 己卯 丙子 丁巳 壬子 | Round date, reference-site comparison Other school gives day 戊午. |
1985-09-09 09:09 Asia/Taipei · 121.56° | lon +6.24m EoT +2.51m = +8.75m | 1985-09-09 09:17:45 | 乙丑 乙酉 辛亥 癸巳 | Third reference-site comparison |
Independent references — not yet populated
Agreement between two engines by the same author proves nothing, so the plan is to compare against implementations with separate lineage, and to check solar-term instants against the Hong Kong Observatory's published announcements rather than against any calculator. That cross-check has not been run yet — the reference columns above are empty, honestly, rather than pre-filled with a claim this page cannot back up. They will be populated per case before this page is presented as evidence of anything.