L0 · Trust Layer

Every rule is on the table.
Including our mistakes.

Most BaZi tools compute in secret and present output as oracles. We do the opposite: every convention that shapes your chart is declared below, every boundary case is covered by a permanent test suite, and every bug we have ever found is published in a corrections log. If a chart can't be audited, it can't be trusted.

The engine one paragraph

Charts are computed by the open-source lunar-javascript astronomical calendar library (maintained by 6tail), wrapped in our own convention layer — BaZi Engine v0.3.2 — which handles true solar time, time zones, daylight saving, the midnight rule, and ten-god attribution. The same engine code powers this website and our backend test rig, verified by an automated regression suite of 33 boundary cases that compares every pillar, hidden stem, ten god, and NaYin between the two implementations. When the two ever disagree, the site build fails.

The eight declared conventions

1 · Year pillar switches at Lìchūn

The year changes at the exact Lìchūn (Start of Spring) instant — not at Lunar New Year. A Feb 3 vs Feb 4 birth can be different years.

2 · Month pillar switches at the term instant

Month pillars change at each Jié solar term — a single global astronomical moment. We compare your birth instant (in UTC) against the term table, never by calendar date.

3 · Late Zi rolls the day (mainstream default)

Births at or after 23:00 roll the day pillar to the next day (Zi Ping mainstream, sect=1). The midnight rule is offered as a school option and your chart is labeled with the rule used.

4 · True solar time, v1 (longitude term)

Clock time is corrected by (birth longitude − timezone central meridian) × 4 min. The central meridian is always the timezone offset × 15 (UTC+8 → 120°E). The Equation of Time (±16 min) is not yet applied — planned for v2, and we will announce it here when it ships.

4b · Year & month by absolute instant

Solar-term boundaries are global moments, so the year and month pillars are determined by your birth instant converted to UTC — essential for far-longitude births near a term boundary. Day & hour pillars still use local true solar time, because the day rolls at local Zi hour.

4c · Ten gods relative to the true day master

Ten-god labels for the year and month stems are always computed against your actual day master — even when the absolute-instant chart has technically crossed into the next day (common for Americas births).

5 · China DST 1986–1991 handled

If you were born in mainland China between May 4 and Sep 14, 1986–1991, one hour is subtracted automatically and the correction is flagged on your result.

6–7 · Unknown hour & three element counts

An unknown birth hour yields an explicit three-pillar chart — we never guess. Five-element counts are shown in three conventions (stems + branch main-qi / hidden stems half-weight / full), because counting is itself a school difference.

School differences we surface never silently pick

Some questions have no single right answer — only schools. Where a convention choice changes your chart, we don't hide it behind a default:

Clock vs true solar time A 15:30 birth corrected to 14:29 crosses from Wei hour to Shen hour. We compute true solar time and show the applied correction; charts built on raw clock time may show the adjacent hour. 23:00 vs midnight Both day-pillar rules are available; yours is labeled. Element counting Three conventions, side by side.

Public corrections log the audit trail

Every defect found in this engine, how it was found, and what changed. This log starts on day one — including the bugs below — because a methodology page without corrections is a marketing page.

DateVersionDefect & fixHow it was found
2026-09-16v0.1 → v0.2True-solar baseline was hardcoded to 120°E (China's central meridian), breaking every overseas birth. Added explicit tzOffsetHours parameter (includes DST, e.g. London in July = UTC+1).Manual expert spot-check: 1991-03-23 11:00 New York — correct chart 辛未 辛卯 壬辰 丙午.
2026-09-16v0.2 → v0.3Year/month pillars now determined by the absolute instant (UTC) against the solar-term table; v0.2 fed local time where Beijing time was expected, mis-dating far-longitude births near a term boundary.Manual expert spot-check: 1993-07-07 15:30 London. Xiǎoshǔ 1993 = Jul 7 10:32:02 Beijing (three independent sources agree); birth = 22:30 Beijing → after the term → month pillar Jǐ-Wèi (己未). A popular app showing Wù-Wǔ (戊午) switches months by date, not by instant.
2026-09-16v0.3 → v0.3.1Ten-god labels for year/month stems were computed against the absolute-instant chart's day master, which has changed by the time an Americas birth converts to Beijing time. Ten gods are now always relative to the true day master.Dual-engine regression suite (33 cases, pillar-by-pillar) built during the web port.
2026-09-16v0.3.1 → v0.3.2The longitude-rounding heuristic for the true-solar baseline (e.g. Chengdu 104°E → 105°) contradicted the engine's own ±2h documentation for Ürümqi. Baseline is now always UTC-offset × 15, matching the textbook definition.Dual-engine regression suite — the web port's first gate caught two convention-level defects before launch.

How this page is verified

33-case boundary suite Permanent fixtures covering Lìchūn boundaries, term-day crossovers (before/after the instant, down to the minute), late-Zi under both schools, unknown hour, the 1986–91 China DST window, extreme longitudes (Ürümqi −2h09m), cross-day overseas births, leap days, and full coverage of the ten day masters.

Dual-engine regression The browser engine and the backend engine are one shared implementation, rerun against all fixtures on every change; any drift fails the build.

Human expert gate A domain expert spot-checks boundary charts against trusted references. Both defects caught by this gate are in the log above — which is exactly why the gate stays.

What this tool is not

BaZi is a traditional Chinese metaphysical framework for self-understanding and reflection — closer to a personality lens than a prediction machine. We make no claims about health, wealth, or the future, and nothing here is advice of any kind. Your birth data is used to compute your chart and nothing else.

Cast your chart →