How GuanXing calculates your chart
Our calendar engine, solar terms, time zones, late-Zi rules, validation results and limitations.
Calendar engine
Four Pillars use lunar-javascript 1.7.7. Years change at Li Chun and months at the twelve Jie solar terms. The birth instant is converted to UTC+8 to compare those boundaries. Day and hour use the chosen local civil or corrected solar clock.
Three late-Zi choices
The default “split” option changes the day pillar at midnight but uses the next day’s stem for the 23:00 hour. “Midnight” keeps both day and hour derivation on the current date until 00:00. “Early” changes the day at 23:00. These conventions can legitimately produce different late-night charts.
Time zones and solar correction
Luxon and the browser’s IANA time-zone data interpret recorded local time, including historical daylight saving where available. Nonexistent clock times are rejected and repeated times offer an explicit first/second choice. Optional approximate solar time adds longitude × 4 minutes and an approximate equation of time to UTC. It is not certified astronomical precision.
What has been checked
An audit compared 8,730 inputs with the pinned RomanXSad/bazi-research Python calculator: all day pillars agreed, while its month-stem formula differed systematically. Independent checks against the Hong Kong Observatory’s stem tables and the 2024 Li Chun boundary support the current conventions. Agreement tests do not certify every historical date, place or solar-time approximation.
Counts, hidden stems and readings
Visible element bars weight every visible character equally. Hidden stems and Ten Gods are shown separately without claiming a strength or favorable-element score. Reading prompts are curated cultural reflections keyed to the Day Master element; they are not AI forecasts.
Calculation references
- Hong Kong Observatory: stems and branches ↗
- Hong Kong Observatory: 24 solar terms ↗
- lunar-javascript calendar engine ↗