BaZi Worked Examples
Ten complete derivation chains — from raw birth data to pillars, strength, pattern and Yong Shen direction. Every step is a deterministic rule from our Methodology, locked by tests in Engine Validation.
Follow any example and re-run it by hand or with any other calculator. If another tool disagrees with a step here, the difference is either a school convention (documented in Methodology §2) or a bug — and our 50-case corpus tells you which.
Strong Geng Metal (Yang Ren Ge)
| Season (得令) | Geng in You month → Wang (旺) for Metal | +3 |
| Rooting (得地) | Day Branch Chen hides Wu (Rob Wealth) → peer element for Geng | +0.5 |
| Rooting (得地) | Chen also hides Yi? No — Chen hides Wu/Yi? Chen = Wu(main)+Yi+Gui; Yi is not peer/resource → 0 | +0 |
| Network (得势) | Year/Month stems Yi & Yi — Yi is Geng’s Wealth, not peer/resource | +0 |
| Total | score ≈ 4.9 ≥ 3 → Strong (also ≥ 6 not met, so not Very Strong) | Strong |
| Pattern | Geng born in You month = its Yang Ren (Sheep Blade) month | 羊刃格 |
| Yong Shen | Strong → favorable = Officer (Huo), Output (Shui), Wealth (Mu); unfavorable = Resource (Tu) + Peer (Jin) | 克泄耗 |
This is the famous reference case (Day Pillar corpus #47). TST 15:20 → 14:28 (−52 min) keeps Wu hour; hour pillar Gui-Wei from Geng day stem.
Late-Zi Birth (Day Pillar Retained)
| Late-Zi rule | 23:30 = Late Zi → day pillar STAYS on the civil date (Bing-Wu) | Provenance: Yuan Heng Li Zhen / Wen Zhen |
| Hour stem | Wu Mouse hour from Bing day: (Bing idx 2 % 5)*2 + Zi 0 → Wu-Zi | 戊子 |
| TST | Shanghai correction ≈ −3 min → 23:27, still inside Zi | No hour change |
| Yong Shen preview | Bing in Xu month ( cemetery for Fire, Grave) — strength near balance; Da Yun direction from year stem Yin (Gui) → female forward / male reverse applied per gender | see chart |
This convention (Zao-Wan Zi Shi) matches Yuan Heng Li Zhen and Wen Zhen BaZi. Mixed-school engines may output Ding-Wei day here — that is a school difference, not an error.
Li Chun Minute Boundary (Year Switch)
| Li Chun 2024 | Astronomical moment: 16:21 Beijing time (VSOP87) | boundary |
| Clock comparison | 16:22 > 16:21 → AFTER Li Chun → Year = Jia-Chen (Wood Dragon), Month = Yin (Bing-Yin) | switch |
| Counter-case | 16:20 birth (1 min earlier) → still Gui-Mao / Yi-Chou | old year |
| Note | Solar-term boundary uses civil clock time; TST applies to hour-pillar placement only | axis rule |
Case #9/#10 in the public corpus. Any engine switching at day granularity will misclassify both these births.
Extreme Longitude Rollback (Kashgar)
| Clock time | 01:15 May 10 | start |
| Longitude | 75.99°E vs 120°E meridian → −176 min | step |
| EoT | May 10: +3.7 min | step |
| True Solar Time | 01:15 − 172 min = 22:23 May 9 (Hai hour) → day rolls BACK to May 9 | 癸酉 day |
| Hour | 22:22 = Hai (亥) hour; Gui day stem → Gui-Hai hour | 癸亥 |
A naive engine that skips day-rollback outputs Jia-Xu day — an entire day-pillar shift that invalidates the chart.
China DST 1986–91 (The Missing Hour)
| Historical DST | June 1988 is inside China’s 1986–91 DST window → wall clock was UTC+9 | detect |
| Revert | 13:00 DST → 12:00 standard time | −1h |
| TST | 12:00 − 14 min (lon+EoT) ≈ 11:46 → Wu hour preserved but at true noon | hour ok |
| Impact if missed | 13:46 TST would fall into Wei (未) hour → wrong hour pillar AND wrong hour interactions | why it matters |
1986–91 covers China’s 80s birth peak. The engine flags DST with a checkbox you can override.
Southern-Hemisphere DST (Sydney)
| DST detection | January = Southern summer → Sydney on AEDT (UTC+11) | detect |
| Revert | 14:30 AEDT → 13:30 AEST | −1h |
| TST | 13:30 + longitude(+5 min) + EoT(−9 min) ≈ 13:26 → Wei (未) hour, near boundary | hour |
| Why it differs north | Northern-hemisphere DST tables would wrongly show no DST in January — the rulebook is season-reversed | AU window |
January in Sydney is summer — DST runs October–April there.
Day Roll-Forward (Tokyo)
| TST | 23:50 + 19.8 min (lon) + 3.7 min (EoT) ≈ 00:12 May 16 — crosses MIDNIGHT forward | roll-forward |
| Day pillar | Rolls to May 16 → Jia-Xu day (Kashgar case is the mirror: rolls backward) | 甲戌 |
| Hour | 00:12 = Early Zi → Jia day stem → Jia-Zi hour | 甲子 |
| Symmetry | Both roll-back and roll-forward are tested (cases #35/#36) | corpus |
Tokyo’s eastern longitude inside UTC+9 pushes solar time past midnight — the mirror image of the Kashgar case.
Century Boundary (2100)
| Why hard | 2100 is NOT a leap year (century rule ÷400) — naive algorithms drift | calendar |
| Day pillar | Ren-Yin verified by three independent algorithms (UTC arithmetic, library, Julian-day) | 三源 |
| Hour | 00:01 = Early Zi, Ren day → Geng-Zi hour | 庚子 |
Part of the 1900–2100 triple-source scan (414 cases, case #44).
Self-Punishment Activation (You-You)
| Rule | Chen-Chen / Wu-Wu / You-You / Hai-Hai — same branch twice = Self-Punishment (自刑) | definition |
| Activation | Month branch You + another You anywhere → Self-Punishment card fires | detected |
| Why engines miss it | Pair loops written as branch[i] ≠ branch[j] silently exclude same-branch pairs | common bug |
Corpus case #19 zone. The engine iterates all pillar pairs without the same-name filter.
Luck-Cycle Month Carry (3y 8m)
| Rule | 3 days = 1 year, 1 day = 4 months; remainder months must CARRY into the start year | definition |
| Case | Birth 2 days before the prior Jie → 0 years 8 months → yearCarry = ceil(8/12) = 1 | carry |
| Result | First luck pillar startYear = birthYear + 0 + 1 = 2026 (not 2025) | 2026 |
| Bug avoided | Engines that drop the remainder mark the first pillar a year early | 断层 |
Corpus-adjacent: locked by test_self_punish.js assertion B (0y8m → fy 2026).
These chains are generated by the same deterministic rules exercised in Engine Validation — conventions in Methodology §2, scoring in §2.5.