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.

Example 01 — 1985-10-08 15:20 · Singapore (103.82°E, UTC+8)

Strong Geng Metal (Yang Ren Ge)

乙丑 · 乙酉 · 庚辰 · 癸未 · Day Master: Geng (Yang Metal)
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
Totalscore ≈ 4.9 ≥ 3 → Strong (also ≥ 6 not met, so not Very Strong)Strong
PatternGeng born in You month = its Yang Ren (Sheep Blade) month羊刃格
Yong ShenStrong → 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.

Example 02 — 2023-10-15 23:30 · Shanghai (121.47°E, UTC+8)

Late-Zi Birth (Day Pillar Retained)

癸卯 · 壬戌 · 丙午 · 戊子 · Day Master: Bing (Yang Fire)
Late-Zi rule23:30 = Late Zi → day pillar STAYS on the civil date (Bing-Wu)Provenance: Yuan Heng Li Zhen / Wen Zhen
Hour stemWu Mouse hour from Bing day: (Bing idx 2 % 5)*2 + Zi 0 → Wu-Zi戊子
TSTShanghai correction ≈ −3 min → 23:27, still inside ZiNo hour change
Yong Shen previewBing in Xu month ( cemetery for Fire, Grave) — strength near balance; Da Yun direction from year stem Yin (Gui) → female forward / male reverse applied per gendersee 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.

Example 03 — 2024-02-04 16:22 · Beijing (116.41°E, UTC+8)

Li Chun Minute Boundary (Year Switch)

甲辰 · 丙寅 · 戊戌 (+ hour) · Day Master: Wu (Yang Earth)
Li Chun 2024Astronomical moment: 16:21 Beijing time (VSOP87)boundary
Clock comparison16:22 > 16:21 → AFTER Li Chun → Year = Jia-Chen (Wood Dragon), Month = Yin (Bing-Yin)switch
Counter-case16:20 birth (1 min earlier) → still Gui-Mao / Yi-Chouold year
NoteSolar-term boundary uses civil clock time; TST applies to hour-pillar placement onlyaxis rule

Case #9/#10 in the public corpus. Any engine switching at day granularity will misclassify both these births.

Example 04 — 2024-05-10 01:15 · Kashgar (75.99°E, UTC+8)

Extreme Longitude Rollback (Kashgar)

甲辰 · 己巳 · 癸酉 · 癸亥 · Day Master: Gui (Yin Water)
Clock time01:15 May 10start
Longitude75.99°E vs 120°E meridian → −176 minstep
EoTMay 10: +3.7 minstep
True Solar Time01:15 − 172 min = 22:23 May 9 (Hai hour) → day rolls BACK to May 9癸酉 day
Hour22: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.

Example 05 — 1988-06-25 13:00 · Beijing (116.41°E, UTC+8)

China DST 1986–91 (The Missing Hour)

戊辰 · 戊午 · 辛亥 · 甲午 · Day Master: Xin (Yin Metal)
Historical DSTJune 1988 is inside China’s 1986–91 DST window → wall clock was UTC+9detect
Revert13:00 DST → 12:00 standard time−1h
TST12:00 − 14 min (lon+EoT) ≈ 11:46 → Wu hour preserved but at true noonhour ok
Impact if missed13:46 TST would fall into Wei (未) hour → wrong hour pillar AND wrong hour interactionswhy it matters

1986–91 covers China’s 80s birth peak. The engine flags DST with a checkbox you can override.

Example 06 — 2024-01-15 14:30 · Sydney (151.21°E, UTC+10)

Southern-Hemisphere DST (Sydney)

癸卯 · 乙丑 · 戊寅 · 己未 · Day Master: Wu (Yang Earth)
DST detectionJanuary = Southern summer → Sydney on AEDT (UTC+11)detect
Revert14:30 AEDT → 13:30 AEST−1h
TST13:30 + longitude(+5 min) + EoT(−9 min) ≈ 13:26 → Wei (未) hour, near boundaryhour
Why it differs northNorthern-hemisphere DST tables would wrongly show no DST in January — the rulebook is season-reversedAU window

January in Sydney is summer — DST runs October–April there.

Example 07 — 2023-05-15 23:50 · Tokyo (139.69°E, UTC+9)

Day Roll-Forward (Tokyo)

癸卯 · 丁巳 · 甲戌 · 甲子 · Day Master: Jia (Yang Wood)
TST23:50 + 19.8 min (lon) + 3.7 min (EoT) ≈ 00:12 May 16 — crosses MIDNIGHT forwardroll-forward
Day pillarRolls to May 16 → Jia-Xu day (Kashgar case is the mirror: rolls backward)甲戌
Hour00:12 = Early Zi → Jia day stem → Jia-Zi hour甲子
SymmetryBoth 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.

Example 08 — 2100-01-01 00:01 · Beijing (116.41°E, UTC+8)

Century Boundary (2100)

己未 · 丙子 · 壬寅 · 庚子 · Day Master: Ren (Yang Water)
Why hard2100 is NOT a leap year (century rule ÷400) — naive algorithms driftcalendar
Day pillarRen-Yin verified by three independent algorithms (UTC arithmetic, library, Julian-day)三源
Hour00:01 = Early Zi, Ren day → Geng-Zi hour庚子

Part of the 1900–2100 triple-source scan (414 cases, case #44).

Example 09 — 2025-09-25 14:00 · Beijing (116.41°E, UTC+8)

Self-Punishment Activation (You-You)

乙巳 · 乙酉 · 丁卯 · 丁未 (sample) · Day Master: Ding (Yin Fire)
RuleChen-Chen / Wu-Wu / You-You / Hai-Hai — same branch twice = Self-Punishment (自刑)definition
ActivationMonth branch You + another You anywhere → Self-Punishment card firesdetected
Why engines miss itPair loops written as branch[i] ≠ branch[j] silently exclude same-branch pairscommon bug

Corpus case #19 zone. The engine iterates all pillar pairs without the same-name filter.

Example 10 — 2025-10-10 10:10 · Beijing (116.41°E, UTC+8)

Luck-Cycle Month Carry (3y 8m)

乙巳 · 丙戌 · 丁丑 · 乙巳 (sample) · Day Master: Ding (Yin Fire)
Rule3 days = 1 year, 1 day = 4 months; remainder months must CARRY into the start yeardefinition
CaseBirth 2 days before the prior Jie → 0 years 8 months → yearCarry = ceil(8/12) = 1carry
ResultFirst luck pillar startYear = birthYear + 0 + 1 = 2026 (not 2025)2026
Bug avoidedEngines 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.