How the chart is calculated, and how to check it
The same birth data, the same clock-basis setting and the same calculation rules produce the same Four Pillars. This page states the rules we follow, how we test them, and where the limits are, so you can check any result against an almanac yourself.
Last checked: 2026-10-15 · calculation rule ID e33c7b5c · lunar-javascript 1.7.7 · astronomy-engine 2.1.19 · commit 0c87234b
What we promise, and what we do not
- We promise: the same birth data and clock-basis setting give the same Four Pillars under the same calculation rules. The rules are identified by the rule ID and check date at the top, the calendar library versions are listed there too, and rule changes are recorded in the update log.
- We do not promise that the AI reading is “accurate”. This page covers only how the pillars and luck pillars are calculated; interpretation quality is evaluated separately.
- We do not use “the AI is accurate” as evidence. Every number here comes from a script you can rerun, not from user reviews.
The rules
- Year pillar: it changes at the exact moment of Start of Spring (立春), not on 1 January and not on Lunar New Year.
- Month pillar: it changes at the exact moment of each of the 12 solar-term boundaries (jie): Start of Spring, Awakening of Insects, Clear and Bright, Start of Summer, Grain in Ear, Minor Heat, Start of Autumn, White Dew, Cold Dew, Start of Winter, Major Snow and Minor Cold.
- A boundary is the instant the Sun reaches a given ecliptic longitude, the same instant everywhere on Earth. Our calendar library states it in Beijing time (UTC+8), so we first convert your birth moment to Beijing time and compare it there, whether you were born in Tokyo, New York or London.
- Day pillar: the sixty-day cycle runs continuously and can be checked against a well-known anchor (1 October 1949 is a Yang Wood Rat (甲子) day). The day changes at 00:00 on the clock you chose: civil time, local mean time or true solar time.
- Hour pillar: one two-hour period per branch, with the Rat hour at 23:00–01:00. During the late Rat hour (23:00–23:59) the day pillar does not change and the hour stem follows the next day’s stem, as measured in the table below.
- Luck pillars: direction comes from the year stem’s polarity and gender; the gap from birth to the next (or previous) boundary converts at three days per year. This also uses the converted birth instant.
- Clock basis: by default, places in China east of 97.5°E use Beijing time without correction, and places west of it use local mean time. Elsewhere, local mean time is applied only when the correction reaches 30 minutes. You can switch on the result page. These are the rules of the main chart; some tools skip the local-mean-time correction when no birthplace is chosen.
Measured behaviour around the Rat hour
The table shows what the engine actually outputs around midnight on 10 March 2024, to state the late Rat hour convention.
| Clock time | Day pillar | Hour pillar |
|---|---|---|
| 00:00 | Yin Water Rooster (癸酉) | Yang Water Rat (壬子) |
| 00:59 | Yin Water Rooster (癸酉) | Yang Water Rat (壬子) |
| 01:00 | Yin Water Rooster (癸酉) | Yin Water Ox (癸丑) |
| 22:59 | Yin Water Rooster (癸酉) | Yin Water Pig (癸亥) |
| 23:00 | Yin Water Rooster (癸酉) | Yang Wood Rat (甲子) |
| 23:59 | Yin Water Rooster (癸酉) | Yang Wood Rat (甲子) |
How we test it
The checks have five parts. The references (an astronomy library, a Julian-day formula, the twelve-period rule and Meeus’s formula) do not depend on the calendar library the chart uses; the month and year flip check also compares against that library’s own boundary times to confirm the time-zone conversion is consistent across birthplaces. The script is rerun whenever the library or the engine changes, so the numbers here are regenerated with it.
- Solar-term instants: with the astronomy library astronomy-engine we compute the exact moment of 2412 boundaries between 1900 and 2100 from the Sun’s apparent longitude and compare each with the calendar library’s table. Mean difference 12.7 s, maximum 62.4 s, 1 above 60 s (1900-1999: mean 11.1 s, max 47.5 s; 2000-2099: mean 14.1 s, max 62.4 s). This is the gap between two independent models and cannot be read as the error of either one; the long-term extrapolation of the Earth’s rotation (ΔT) is a prediction for both, and neither is ground truth.
- The engine’s real month and year flips: for the actual chart function we search, minute by minute within 24 hours either side of every boundary, for the minute the month pillar (and, at Start of Spring, the year pillar) really changes. Birthplaces: 5; Beijing is checked every year, the others every 5th year, all entered as standard-time clock readings with the civil-time basis. The third column of the table is the largest deviation from the independent ephemeris, which includes the library-versus-ephemeris gap and rounding to the minute (up to 60 s). The fourth counts flips outside the 0–60 second window after the calendar library’s own boundary time: 0, which confirms the time-zone conversion is consistent across birthplaces.
- Day pillar: 2005 dates, including 1 January 1900, 31 December 2100, leap days and the 1 October 1949 anchor, compared with a Julian-day formula. Mismatches: 0.
- Hour pillar: every one of 1440 minutes in a day compared with the twelve-period boundaries and the Five Rats rule. Mismatches: 0.
- Equation of time for true solar time: the product uses a low-order approximation. Against Meeus’s formula with the Sun’s apparent right ascension (every day, 2000–2030) the mean difference is 0.48 minutes and the maximum is 1.41 minutes. A birth time close to an hour boundary should therefore be treated as uncertain.
| Birthplace (clock time) | Boundaries checked | Largest deviation from the ephemeris (s) | Outside the window |
|---|---|---|---|
| Beijing (UTC+8) | 2412 | 114.5 | 0 |
| Tokyo (UTC+9) | 492 | 94.2 | 0 |
| New York (UTC−5, standard time) | 492 | 94.2 | 0 |
| London (UTC+0) | 492 | 94.2 | 0 |
| Sydney (UTC+10, standard time) | 492 | 94.2 | 0 |
Check it yourself
Start of Spring in 2024 happened at 2024-02-04 16:27:07 Beijing time (08:27 UTC). The table shows the year and month pillars the engine gives for someone born two minutes before and two minutes after that moment at different birthplaces. Any almanac lists the instant; the change should fall exactly between the two times.
| Birthplace | Local clock time | Year pillar | Month pillar |
|---|---|---|---|
| Beijing (UTC+8) | 2024-02-04 16:25 | Yin Water Rabbit (癸卯) | Yin Wood Ox (乙丑) |
| Beijing (UTC+8) | 2024-02-04 16:29 | Yang Wood Dragon (甲辰) | Yang Fire Tiger (丙寅) |
| Tokyo (UTC+9) | 2024-02-04 17:25 | Yin Water Rabbit (癸卯) | Yin Wood Ox (乙丑) |
| Tokyo (UTC+9) | 2024-02-04 17:29 | Yang Wood Dragon (甲辰) | Yang Fire Tiger (丙寅) |
| New York (UTC−5, standard time) | 2024-02-04 03:25 | Yin Water Rabbit (癸卯) | Yin Wood Ox (乙丑) |
| New York (UTC−5, standard time) | 2024-02-04 03:29 | Yang Wood Dragon (甲辰) | Yang Fire Tiger (丙寅) |
| London (UTC+0) | 2024-02-04 08:25 | Yin Water Rabbit (癸卯) | Yin Wood Ox (乙丑) |
| London (UTC+0) | 2024-02-04 08:29 | Yang Wood Dragon (甲辰) | Yang Fire Tiger (丙寅) |
Known limits
- Daylight saving time is not removed automatically. Enter the clock time with the daylight-saving hour subtracted; if you enter the daylight-saving clock reading as it was, about half of the hour pillars for births during daylight saving will be off by one, the day pillar will be wrong between 00:00 and 01:00, and the year and month pillars can be wrong within an hour of a boundary. The chart form does not currently warn about this.
- Historical time zones: the engine uses the birthplace’s current standard zone and does not look up historical zones. If local standard time in your birth year differed from today’s, convert it to the current standard time before entering it.
- Conversion from lunar-calendar input (including leap months) has not been independently verified, and the numbers on this page do not cover it.
- Birth time is accurate to the minute only. Within two minutes of a boundary or an hour change, either result is possible; treat that as the uncertainty range.
- After 2050 each model extrapolates the Earth’s rotation on its own, and the difference between them does not measure the size of the error.
- Saved charts and generated paid reports keep their original pillars, while features that calculate from birth data on the fly show the new rule, so an affected person may see different month pillars on different pages. Affected are: people born within N hours after a boundary where the birthplace’s standard time is N hours behind Beijing, people born within N hours before a boundary where it is N hours ahead, and people born near a boundary whose chart uses local mean time or true solar time (China west of 97.5°E, or chosen manually).
Your first chart is free and you can start without signing up.
Make my chartWas this reading useful to you?