紫ZIHENG RESEARCH

VALIDATION NOTE 01 · RELEASED 25 SEP 2026

1,000 checks.
One visible exception.

A deterministic cross-engine audit of Four Pillars calculations from 1900–2100, plus every 2024 solar term at two boundary offsets. Data, assumptions, and the late-Zi convention difference are public.

ORDINARY SAMPLES1,000

Deterministically selected midday dates.

EXACT MATCHES1,000

All four pillars matched in the ordinary set.

SOLAR TERMS24

Two checks around each 2024 term.

KNOWN DIFFERENCE23:00

The published late-Zi day-change convention.

Diagram of two independent Four Pillars engines meeting at a field-by-field calculation audit
Deterministic inputs are calculated independently, normalized to four pillar labels, and compared field by field.

WHAT THIS RESULT MEANS

Reproducible,
not predictive proof.

Software can be checked for consistent calendar and pillar calculations. That does not establish that symbolic interpretations predict life events, health, wealth, or relationships.

SUPPORTED CLAIM

The ordinary set agreed

For 1,000 seeded midday samples from 1900 through 2100, lunar-typescript 1.8.6 and stem-branch 0.8.0 returned the same Year, Month, Day, and Hour Pillars.

SUPPORTED CLAIM

Term boundaries agreed

At two hours before and after every 2024 solar term, the engines agreed on the Year and Month Pillars. Exact rows remain downloadable.

NOT SUPPORTED

No outcome validation

The study does not use biographies, events, medical records, income, or relationship outcomes. It cannot test predictive performance.

REPRODUCTION METHOD

Inputs before
interpretation.

The generator is versioned with the site. Anyone can inspect the sampling logic, download every row, and reproduce the comparison in an Asia/Shanghai runtime.

Engines and conventions

RoleImplementationVersionLicenseConvention
Production6tail / lunar-typescript1.8.6MITEightChar.setSect(1); day changes at 23:00
Comparisonh4x0r / stem-branch0.8.0Apache-2.0Independent astronomy and calendar implementation

Deterministic ordinary sample

state = 0x5a17 · repeat 1,000 times
state = (state × 1103515245 + 12345) & 0x7fffffff
year = 1900 + (state % 201)
month = ((state >>> 8) % 12) + 1
day = 14 + ((state >>> 16) % 2)
local time = 12:00:00 · compare Year, Month, Day, Hour Pillars
Why midday? The primary sample isolates ordinary calculations from a known school disagreement at the late-Zi boundary. Boundary behavior is tested separately instead of being hidden inside one headline rate.

Solar-term boundary sample

For each of the 24 solar terms returned for 2024, the audit compares a timestamp two hours before and two hours after the term. The Year and Month Pillars are the key term-boundary assertion. Exact four-pillar agreement is also recorded, with late-Zi differences labelled.

DECLARED DIFFERENCE

23:30 is not
an accidental mismatch.

At 1988-02-15 23:30, Ziheng’s configured production convention advances the Day Pillar at 23:00. The comparison implementation does not make that same change.

FixtureYearMonthDayHour
Ziheng production戊辰甲寅辛丑戊子
Comparison oracle戊辰甲寅庚子戊子

Interpretation: this fixture documents a school/convention choice. Ziheng publishes it so another calculator’s different result is not automatically called an error.

DOWNLOADS · CC BY 4.0 DATA

Audit every
comparison row.

Original dataset files may be reused with attribution. Software code remains under its upstream license; the dataset license does not relicense third-party software.

1,000 ROWS

Ordinary sample CSV

Flat field-by-field comparison for spreadsheets, notebooks, or independent audits.

Download CSV ↓
SUMMARY + ROWS

Full JSON dataset

Machine-readable metadata, engine versions, convention note, summary, and samples.

Download JSON ↓
48 ROWS

Solar-term checks

Every 2024 solar term at minus two and plus two hours, with exact-match fields.

Download CSV ↓

LIMITATIONS

What remains
outside the test.

A calculation audit narrows software uncertainty. It does not settle every traditional school, validate incomplete birth records, or demonstrate real-world forecasting.

  • The ordinary sample uses dates on the 14th or 15th at noon; edge cases are handled in dedicated boundary tests rather than estimated by the headline rate.
  • The solar-term set covers 2024. Automated tests separately protect the published late-Zi fixture and production snapshots.
  • Both implementations may share historical conventions or source assumptions. Agreement is not the same as independent astronomical certification.
  • True solar time depends on longitude and the correct historical UTC offset. Use the public converter to inspect that correction separately.
  • No data here justifies guaranteed health, money, legal, employment, or relationship claims.

SOURCES

Primary references
and code lineage.

Repository and astronomy links let readers inspect the implementation and formula beyond this site.

  1. 6tail, lunar-typescript, production Four Pillars implementation, MIT.
  2. h4x0r, stem-branch, independent comparison implementation, Apache-2.0.
  3. NOAA Solar Calculation Details, equation-of-time reference for the separate solar-time tool.
  4. Ziheng Calculation Methodology, published chart rules and interpretation limits.

FAQ

Read the number
at the right scope.

Does this prove BaZi predicts events?

No. This is a software calculation study. It tests whether two implementations produce the same four pillar labels for declared inputs and rules.

Why not report 100% accuracy?

“Accuracy” would imply an established external truth for every convention. The study reports calculation agreement, shows the fixtures, and isolates the published late-Zi disagreement.

Can I reuse the data?

Yes. The generated dataset is released under CC BY 4.0 with attribution to Ziheng. Third-party code remains under its own licenses.

Ziheng Editorial. “BaZi Calculation Validation Study: 1,000 Cross-Engine Checks.” 25 September 2026. https://getziheng.club/en/research/chart-validation-study/Open free BaZi chart →