Public calculation lab
Bazi Calculation Benchmarks
Twenty-six synthetic cases make the engine's boundary behavior inspectable: what went in, what must come out, and which convention explains the result.
26
synthetic cases
6
boundary categories
0
customer records
Verification contract
Recalculated before release
Every case is computed by the production engine during the site build. A release fails if a pillar, correction receipt, UTC/DST offset, direction, reference Jie, or start timestamp drifts from its pinned expectation.
01
Synthetic input
A fixed date, zone, longitude, and gender exercise one boundary.
02
Pinned facts
The expected output is versioned in the repository, not fetched from a customer chart.
03
Build gate
The current engine recalculates the case and blocks publication on a mismatch.
calculation-benchmarks-v1 · reviewed 2026-09-05
Solar-term boundaries
6 casesYear and month pillars switch at Lichun and the relevant Jie, not at January 1 or the first day of a Gregorian month.
Case 01
Before Lichun: the Bazi year has not changed
A February date can still belong to the preceding Bazi year.
乙巳 · 己丑 · 戊申 · 戊午
Case 02
After Lichun: the Bazi year changes
The paired case moves beyond Lichun and changes both year and month pillars.
丙午 · 庚寅 · 庚戌 · 壬午
Case 03
Before Jingzhe: the Yin month remains
March 4 is still inside the solar month that began at Lichun.
丙午 · 庚寅 · 丁丑 · 丙午
Case 04
After Jingzhe: the Mao month begins
The paired March case crosses the Jie and changes the Month Pillar.
丙午 · 辛卯 · 己卯 · 庚午
Case 05
Before Qingming: Gregorian April is still Mao month
April 4 remains on the pre-Qingming side of the month boundary.
丙午 · 辛卯 · 戊申 · 戊午
Case 06
After Qingming: the Chen month begins
The paired April case advances to the next solar month.
丙午 · 壬辰 · 庚戌 · 壬午
Historical time zones
4 casesThe same wall-clock hour can carry a different historical UTC or daylight-saving offset depending on place and date.
Case 07
Beijing 1990: historical daylight saving applies
China observed daylight saving time on this synthetic summer date.
庚午 · 壬午 · 辛亥 · 癸巳
Case 08
Chicago 1990: western longitude plus DST
A North American historical record exercises a negative UTC offset and summer time.
庚午 · 壬午 · 辛亥 · 甲午
Case 09
Lord Howe: a 30-minute DST offset
Not every daylight-saving transition is a full hour.
甲辰 · 丁丑 · 甲申 · 庚午
Case 10
Singapore: no daylight-saving adjustment
A stable UTC+08:00 zone separates longitude correction from DST.
庚午 · 壬午 · 辛亥 · 癸巳
True-solar crossings
4 casesLongitude and Equation of Time corrections can move a record across an Hour Pillar or civil-day boundary.
Case 11
Chengdu: clock time crosses an Hour Pillar
Historical DST and western longitude move 11:30 back to 09:26.
庚午 · 壬午 · 辛亥 · 癸巳
Case 12
Kashgar: correction crosses into the previous day
A far-western longitude within China Standard Time produces a large negative correction.
乙巳 · 戊子 · 壬子 · 辛亥
Case 13
Jiamusi: correction crosses into the next day
An eastern longitude can push a late civil record beyond midnight.
乙巳 · 丁亥 · 甲申 · 甲子
Case 14
London: Equation of Time crosses an hour boundary
Near the February Equation-of-Time minimum, a small clock difference can change the hour branch.
庚午 · 戊寅 · 戊申 · 壬子
Zi Hour and midnight
4 casesAfter true-solar normalization, the current sect 2 contract starts Zi Hour at 23:00 and changes the Day Pillar at 00:00.
Case 15
Before 23:00: the chart remains in Hai Hour
The first half of a controlled pair sits before the Zi Hour boundary.
丙午 · 甲午 · 戊午 · 癸亥
Case 16
After 23:00: Zi Hour begins without changing the day
The paired case crosses 23:00 but stays before civil midnight.
丙午 · 甲午 · 戊午 · 甲子
Case 17
Before corrected midnight: sect 2 keeps the current Day Pillar
A 23:45 true-solar result is already in Zi Hour but still on the same Bazi day under sect 2.
丙午 · 甲午 · 戊午 · 甲子
Case 18
After corrected midnight: sect 2 changes the Day Pillar
The second corrected-time case keeps Zi Hour while advancing the day.
丙午 · 甲午 · 己未 · 甲子
Unknown birth time
2 casesAn internal noon placeholder must not escape as an invented Hour Pillar, exact solar time, or exact Luck Pillar start.
Case 19
three-pillar disclosureUnknown time: leap-day adult stays three-pillar
A leap-day date is reproducible without pretending that noon was supplied by the user.
丙子 · 庚寅 · 丙申 · ?
Case 20
three-pillar disclosureUnknown time near Lichun: disclose the remaining boundary risk
A date close to a major boundary must not turn an internal placeholder into certainty.
丙午 · 庚寅 · 己酉 · ?
Luck direction and nearby Jie
6 casesYear-stem polarity and gender determine direction; the selected Jie and raw interval determine the start receipt.
Case 21
Yang year plus male: forward Luck Pillars
One half of the polarity-and-gender direction matrix.
庚午 · 甲申 · 丁巳 · 乙巳
Case 22
Yang year plus female: reverse Luck Pillars
The same synthetic moment changes direction when gender changes.
庚午 · 甲申 · 丁巳 · 乙巳
Case 23
Yin year plus male: reverse Luck Pillars
The direction matrix is repeated with a Yin year stem.
辛未 · 丙申 · 壬戌 · 乙巳
Case 24
Yin year plus female: forward Luck Pillars
The fourth matrix case completes both polarities and genders.
辛未 · 丙申 · 壬戌 · 乙巳
Case 25
Near Jie: two hours before Jingzhe
A short interval to the next Jie produces a near-immediate start receipt.
丙午 · 庚寅 · 戊寅 · 壬戌
Case 26
After Jie: the forward reference switches
Crossing Jingzhe changes the month and moves the next-Jie reference to Qingming.
丙午 · 辛卯 · 戊寅 · 癸亥