Why Two BaZi Calculators Disagree: The Six Conventions Behind Different Charts
When two apps show different four pillars for the same birth data, the cause is almost always one of six stated conventions — not a calculation error. This page lists them, shows a side-by-side example matrix, and gives a four-step way to reconcile any two charts.
Direct answer
Four-pillar disagreements between calculators come from six conventions: whether the day rolls over at 23:00 or at midnight; whether the year turns at 立春 or at Lunar New Year; whether the month flips at the exact solar-term instant or by date; whether true solar time is applied; whether historical time zones and daylight saving are reconstructed; and which ephemeris supplies the term instants. Align those six and any two charts either match or the remaining difference is a genuine bug. This site publishes its choices and a reproducible baseline so the comparison can be done line by line.
Key terms in this page
- Convention (口徑)(kǒu jìng)
- — a stated, reproducible rule choice where the tradition allows more than one reading; not an error.
- Late Zi rollover (晚子換日)(wǎn zǐ huàn rì)
- — whether 23:00–23:59 belongs to the current day pillar or the next.
- Lichun year boundary (立春換年)(lì chūn huàn nián)
- — whether the year pillar turns at the Start of Spring instant or at Lunar New Year.
- Sectional term (節)(jié)
- — the twelve solar terms that flip the month pillar; the other twelve (中氣) do not.
- Ephemeris (曆表)(lì biǎo)
- — the table or algorithm that supplies solar-term instants; sources differ by seconds to minutes.
01The six conventions, in the order they usually bite
First, the day rollover: a birth at 23:30 is either the current day pillar (midnight convention) or the next (23:00 convention). Second, the year: 立春 versus Lunar New Year, which differ for up to about two weeks each year. Third, the month: the exact sectional-term instant versus the calendar date — indistinguishable except on twelve days a year. Fourth, true solar time: with or without longitude and equation-of-time correction, which shifts the hour pillar near boundaries and can shift the day pillar near midnight. Fifth, historical time zones: whether 1986–1991 daylight time and older offsets are reconstructed. Sixth, the ephemeris: two astronomical implementations can disagree about a term instant by a minute or two.
Each convention is defensible. None is universal. The problem is silence: software that does not state its choices forces users to compare charts without a common reference.
02Worked example: five births, three engines, one table
The matrix below uses five probe births chosen to isolate one convention each. Columns show the four pillars under a convention-aware engine (this family's baseline), lunar-javascript 1.7.7, and tyme4ts 1.5.4, all run on 31 October 2026 and archived with the page.
23:30 on 1 December 1990: midnight-rollover engines return 庚午 丁亥 庚子 戊子; 23:00-rollover engines return 辛丑 for the day pillar. 10:20 on 4 February 1990: with true solar time the year and month pillars are 己巳 丁丑; with wall clock they are 庚午 戊寅, because 立春 fell at 10:14 and the correction is about −14 minutes. 09:14 on 5 April 1990: true solar time keeps the month at 己卯; wall clock has already crossed the 09:12:56 term instant and shows 庚辰. 17:30 on 1 December 1990 in Ürümqi: true solar time gives 甲申; wall clock gives 乙酉. 03:30 on 15 April 1990: DST-aware reconstruction gives 丁丑; an uncorrected clock gives 戊寅.
Every difference in the table is explained by one of the six conventions. No engine is wrong; each is explicit or silent about a different set.
03Reconciling two charts in four steps
Step one: compare day pillars. If they differ, check whether the birth time is between 23:00 and 23:59 and whether one tool uses the 23:00 rollover.
Step two: compare year and month pillars. If the day matches but the year or month differs, check whether the birth falls within two weeks of 立春 or on a sectional-term day, and whether one tool applies true solar time.
Step three: compare hour pillars. If the first three pillars match, check birthplace longitude and whether the birth year falls in a daylight-saving window.
Step four: if a difference remains only at a term instant, compare the ephemeris: two implementations can legitimately differ by a minute, and a birth within that minute has two candidate month pillars. Anything outside these four categories is worth reporting as a possible bug.
04Limits: what a convention comparison is not
A convention is not a quality ranking. A tool that uses wall-clock time is not worse at arithmetic; it is answering a different question. This page describes behaviour and states our own choices; it does not claim that one set of conventions produces better readings.
The comparison also cannot validate an uncertain birth record. If the time is unknown to the hour, no convention can recover it, and the chart should be treated as ambiguous.
Finally, a convention baseline is versioned. Engine versions change, ephemerides improve, and historical time-zone data is revised; every comparison must carry a date, as this one does.
05Checklist
- The birth time's position relative to 23:00 was checked first
- The birth date's position relative to 立春 was checked next
- The birth date's position relative to the nearest sectional term instant was checked
- The birthplace longitude and historical time zone were checked for the hour pillar
- Any remaining difference was attributed to the ephemeris, with versions and dates recorded
Frequently Asked Questions
Sources reviewed on 2026-10-31
- Bazi convention baseline v1 (conventions-v1.json) — 12 cases across five conventions, three engines, reviewed 2026-10-31
- lunar-javascript 1.7.7 — reference engine for the wall-clock column
- tyme4ts 1.5.4 — second reference engine, default 23:00 rollover
- Our BaZi engine (divination-core) — midnight rollover, 立春 year, sectional-term month, true solar time, IANA historical zones
Computed values on this page were produced by running the engine versions listed above at the reviewed date; school disagreements are reported as disagreements, not resolved to a single answer.
Related entries
- Late Zi Hour (23:00–23:59): Does the Day Pillar Change at 23:00 or at Midnight?The late Zi hour is the one boundary where two BaZi traditions disagree about the day pillar itself. This page states both conventions, shows what each one outputs for the same birth time, and explains how to tell which convention your charting software uses.
- Does the BaZi Year Change at Lichun (立春) or at Lunar New Year?Two calendars, two new-year dates, one year pillar. This page pins the exact 2026 boundary to the minute, shows the same date charted under both conventions, and explains why the gap between 立春 and Lunar New Year can move your year pillar by a full pair.
- The Month Pillar Changes at the Exact Solar-Term Minute — Not on the DateThe month pillar flips at an astronomical instant, which can fall in the middle of a double-hour. This page shows a birth at 21:58 charted with one month pillar and a birth two minutes later with the next — and why some software disagrees.
- True Solar Time in BaZi: Why 17:30 in Ürümqi Is Not the You HourWall-clock time is a political standard, not the sun's position. This page shows the two corrections that turn a clock reading into true solar time, with a worked example from western China where the gap reaches nearly two hours.
- China's 1986–1991 Daylight Saving Time: The Hour Pillar Shift Nobody ChecksFor six years, Chinese clocks ran one hour ahead from spring to autumn. Births in those windows need that hour removed before any hour-pillar calculation — otherwise the pillar can be off by one.
Updated 2026-10-31