How the chart is computed, and how the reading is translated
What we do
- Compute BaZi four pillars and a Zi Wei Dou Shu chart from birth data
- Translate stems, branches, Ten Gods, palaces and yearly/monthly flow into readable plain language
- Provide past-event validation and follow-up tracking so you can judge the framework yourself
- Publish the rules and the boundaries, and accept recomputation and challenge
What we don't do
- No fatalistic claims — we never say an event "must" happen
- No medical, investment, legal or life-decision advice
- No fear-selling ("without this remedy something bad will happen")
- No implication that paying changes your fate
1. Calendar rules
| Item | Our choice |
|---|---|
| Stems & branches | Ten heavenly stems (甲乙丙丁戊己庚辛壬癸) × twelve earthly branches (子丑寅卯辰巳午未申酉戌亥) |
| Four pillars | Year / month / day / hour — one stem + one branch each |
| Day master | The day pillar's stem; the reference for Ten Gods |
| Month boundary | By solar terms (定气法) — not by the first day of the lunar month |
| Solar-term instants | The exact instant of each of the twelve jie (節) boundaries, resolved to the second from the lunar-javascript ephemeris — not a calendar date. Instants are evaluated in UTC+8, the same basis as the entered clock time |
| Year boundary | Lichun (立春), the traditional start of spring — applied consistently to both BaZi and Zi Wei. The switch happens at the exact Lichun instant, not on Lunar New Year's Day and not on 1 January |
| Lunar ↔ solar | Both inputs supported; conversion uses the lunar-javascript ephemeris |
2. Time handling — including what's missing
| Item | Our choice |
|---|---|
| Time zone | The entered clock time is used as-is; assumed UTC+8 (Beijing time) |
| Historical daylight saving | Not implemented. China observed summer time for six years (4 May 1986 – 15 Sep 1991; clocks were put forward one hour each April–September, e.g. 1990: 15 Apr – 16 Sep). This calculator treats every entered time as UTC+8 and applies no historical DST correction — a birth recorded during one of those summers may be one hour off, which can shift the hour pillar and occasionally the day pillar |
| True solar time | Not implemented. We do no longitude or equation-of-time correction. This is a known accuracy gap and is on our roadmap |
| Hour boundaries | The Zi hour starts at 23:00; 13 selectable slots (early-Zi, 丑…亥, late-Zi) |
| Time granularity | The birth time is entered as one of 13 two-hour slots, and the chart is computed at the midpoint of the chosen slot (HH:30). The exact minute is not used: 07:05, 07:30 and 07:55 in the 辰 slot all produce the identical chart |
| If a boundary falls inside your slot | Known limitation. When a solar-term instant or a day rollover falls inside the slot you picked, the chart reflects that slot's midpoint. A birth in the other half of the slot can therefore receive a different pillar. Worked case: Lichun 1990 falls at 10:14 on 4 February, inside the 巳 slot (09:00–11:00, computed at 09:30) — so a birth at 10:40 that day is charted with the previous year pillar. We do warn about this case and show the alternative chart alongside the primary one, with the reason (we never pick for you). Workaround: compare the neighbouring slots |
| Late-Zi day rollover | Born 23:00–24:00 → the day pillar rolls to the next day, and the hour stem is derived from the next day's day stem, so late-Zi and the following 00:30 early-Zi give the same hour pillar. Mainstream 子平 convention; we do not use the "same day" school |
| Unknown birth hour | Date-reference mode is supported — choose “Uncertain (date only)” and we derive candidate year / month / day pillars only: no hour pillar, no full Zi Wei chart and no precise luck-pillar start. Because the day rolls at 23:00–24:00 and a solar term can fall inside the day, the day/month/year pillar may not be unique — both candidates are shown and nothing is chosen for you. Adding the hour later requires a recalculation; saved records are never overwritten silently |
| Supported date range | Not declared — a known gap. The underlying library returns a chart for dates far outside the range it is validated for (tested 1600 and 2200: both return a chart, no error, no warning). We neither reject nor flag out-of-range dates, so a chart for a date far from the modern era should be treated as unvalidated. Explicit range rejection is on our roadmap |
3. Zi Wei Dou Shu
| Item | Our choice |
|---|---|
| Engine | The open-source iztro library |
| Star placement | iztro's default algorithm (we have not switched to the Zhongzhou school option) |
| Year boundary | Set to Lichun, matching our BaZi engine |
| Four transformations (四化) | iztro's built-in year-stem table (禄 / 权 / 科 / 忌) |
| Major decade (大限) | Starting age derives from the Five Elements Class (e.g. Metal-4 class starts at age 4); the site shows your current decade, with the nominal-age range converted to calendar years |
4. Yearly & monthly flow
| Item | Our choice |
|---|---|
| Yearly flow | The yearly stem/branch read against the natal chart's Ten Gods and interactions |
| Monthly flow | Twelve months, each with Ten God · mode · suggestion · caution |
| Energy curve | A deterministic rhythm score derived from the month's Ten God plus branch relations (repetition / clash / combination). It is a pacing aid for output vs. consolidation — not a luck forecast |
| Decade change | We flag the year a luck decade shifts; folk sayings about it are cultural references only, not fortune claims |
5. Disputed points — where we stand
Different lineages read the same chart differently. We pick one path that is documentable, recomputable and explainable — and we don't claim to be the only correct one.
| Issue | Common disagreement | Our choice |
|---|---|---|
| Month / year boundary | Solar terms vs. lunar month; Lichun vs. lunar new year | Solar-term months + Lichun year (both systems unified) |
| Zi-hour school | Three schools: split-Zi (day pillar stays, hour stem advances), early-Zi (both advance), pure late-Zi (both stay) | Early-Zi (早子) — the day pillar advances at 23:00 and the hour stem comes from that next day's stem. Several English calculators label themselves "late-Zi" while implementing split-Zi; we name ours explicitly so you can compare it against your teacher's rule |
| Hidden stems | Traditional vs. modern tables | Traditional table (used for Ten God derivation) |
| Shensha (symbolic stars) | Pile them all on vs. keep minimal | Minimal — no shensha stacking in BaZi; Zi Wei shows only the stars the engine emits |
| Strength / structure | Temperature adjustment / support-suppress / structural / combined | Rule-based qualitative reading; we publish no "accuracy percentage" |
| Blind-school / new-school | Include or not | Not included |
Recompute it yourself: anchor, formula, and a measured check
Three public statements are enough for anyone to reproduce a chart by hand. These are ours:
| Item | Our value |
|---|---|
| Supported year range | Validated 1900–2100 (every one of the 2,412 solar-term boundaries in that span was cross-checked — see below). The form does not hard-limit the birth year: dates outside 1900–2100 still produce a chart, with no warning and no rejection, and should be treated as unvalidated — the underlying calendar returns 1600 or 2200 just as readily. An explicit range check and out-of-range notice is a known gap, planned |
| Day-pillar anchor | 1 October 1949 = 甲子 (cycle index 0). The sexagenary day cycle runs unbroken, so every other day follows by counting from this date. Cross-check: 1900-01-31 is 18,140 days earlier, 18,140 mod 60 = 20, so that day must be 甲辰 — which is what our engine returns. (Some calculators publish 1900-01-31 = 甲子 as their anchor; that is irreconcilable with 1949-10-01 = 甲子, because the gap between those two dates is not a multiple of 60 days.) |
| Hour stem | Derived from the day stem with the standard Five Rats (五鼠遁) rule; spot-checked against all ten day stems, 10/10. |
| What we measured: solar terms vs. an independent ephemeris | We compared every jie-term instant in 1900–2100 (12 terms × 201 years = 2,412 boundaries) between the calendar library our engine uses and an independent astronomical computation (astronomy-engine, which searches for the Sun's apparent ecliptic longitude — a different model, not a lookup table). Result: mean difference 12.7 s, maximum 62.4 s (Lichun 2098), and exactly one boundary above 60 s. By era: 1900–1999 mean 11.1 s / max 47.5 s; 2000–2100 mean 14.2 s / max 62.4 s. |
| Internal consistency of the flip | Separately, we checked the minute our month pillar actually flips against the same library's stated instants across 18 boundaries (the six jie terms of 1990, 2000, 2024): the flip lands within 60 s (mean 56.7 s), at the next whole minute after the term. |
| Recompute it in code | The same engine is published as yilibazi-core on npm (MIT), with source at GitHub. It exports this page's conventions as constants (CONVENTIONS) and provides ambiguityReport(), which returns the alternative chart whenever a convention would change the result — the same behaviour you can see on the chart page. |
How to read that table. The figure is the difference between two independent models, not the error of either one. Both depend on long-term extrapolation of the Earth's rotation (ΔT); far from the present that extrapolation is itself a prediction, and neither library is ground truth. So read it as "two independent computations agree to within about a minute" — not as "the true term instants are known to ±12 seconds". Still outstanding: spot-confirmation against a published almanac or observatory table for a sampled set of years. Until that exists, we do not claim better than "agreeing to about a minute".
6. Reading principles
| Principle | Meaning |
|---|---|
| Pattern over prediction | We describe tendencies and pacing; we do not declare that events will happen |
| Rule-based | Translations follow explicit rules (Ten God interactions, palace logic, yearly activation) — not improvised mysticism |
| Plain language first | Written so a non-specialist can follow; terminology is explained in the glossary |
| Two-way validation | Past events validate backwards; dated statements are checked forwards |
| Personal calibration | What matters is whether the framework has explanatory power for you — not universal truth claims |
7. The validation mechanism
Past-event validation (backwards)
You enter real events from the last 5–10 years (marriage, property, job changes). The system computes the corresponding yearly stems/branches and Ten God relations, and shows whether they harmonise with what you described.
- A match is called "resonance", not "destiny"
- A miss is information too: it means the framework explains less for you
Follow-up tracking (forwards)
Checkable statements from a reading are recorded with a time window; when the window passes, you mark them met / partly met / not met.
8. Boundaries
- Not medical, psychological or health advice
- Not investment, legal, employment or marital advice
- No predictions about death or disasters
- No "pay to change your fate"
- We do not sell or rent your birth data
Data: birth information and chart results are stored in your browser's local storage by default and are not uploaded. Payment details are handled by our payment provider.
9. Changelog
| Date | Change |
|---|---|
| 2026-10-23 | Package published: the same engine is now available as yilibazi-core on npm (MIT) with source on GitHub — conventions exported as constants, plus ambiguityReport() for the alternative chart. Machine-readable: a SoftwareSourceCode block on this page |
| 2026-10-23 | Reproducibility added (gap analysis vs. cited competitors): published the day-pillar anchor (1949-10-01 = 甲子) with a worked cross-check, named the Five Rats (五鼠遁) hour-stem rule (10/10 verified), named our Zi-hour school (early-Zi) against the other two, declared the undeclared supported date range as a gap, and added a measured 18-boundary internal-consistency check (flip within 60 s) explicitly labelled as not an accuracy claim |
| 2026-10-23 | Boundary disclosure completed: added the exact solar-term instants (evaluated in UTC+8), the 13-slot midpoint granularity (charts computed at HH:30) with its consequence when a solar-term instant falls inside the selected slot, the late-Zi hour-stem rule, and the previously undeclared 1986–1991 daylight-saving gap |
| 2026-09-19 | English method page published |
| 2026-09-17 | Year boundary unified: Zi Wei switched to Lichun, matching BaZi (previously lunar-new-year, which produced a different year during the ~13 days between Lichun and lunar new year) |
| 2026-09-17 | Late-Zi rollover clarified: 23:00–24:00 births roll the day pillar to the next day |
| 2026-09-17 | Fixed the current major decade (大限) not displaying |
If our rules differ from your lineage, we're happy to compare notes. We don't claim to be uniquely correct — we commit to rules that stay stable and self-consistent.
The method is public. The chart is still yours.