← back to the chart

methodology verified computation

computed, not generated — every number on your chart is reproducible from public math

the engine

  • Day pillar — a pure Julian-day count, exact and checkable by hand. 2000-01-01 = ; that anchor calibrates every other day.
  • Year and month pillars — the true solar-term boundaries (立春 for the year; the 12 for the months), computed with the VSOP87D planetary series, nutation, ΔT, and the equation of time.
  • Hour pillar — two schools, both shown: clock time and 真太阳时 true solar time (longitude + equation of time). No school is chosen for you silently.
  • Doctrine tables十神, 藏干, 纳音, 空亡, 大运 / 起运, 合冲刑害, 神煞 — pinned test-by-test against an independent Python oracle (lunar_python) in CI.

how we verify

  • The oracle gate — a Python reference implementation (skyfield + JPL DE421 ephemeris, lunar_python) regenerates the pinned fixtures on every CI run; the TypeScript engine must byte-match. The badge is the trust artifact.
  • Precision targets — solar-term times within ±120 seconds of skyfield+DE421; equation of time within ±30 seconds.
  • Independent review — every engine sprint is reviewed by a fresh, independent code reviewer before it is accepted; findings are fixed and pinned as regression tests.
  • Open source — MIT-licensed. Anyone can rerun the corpus, the fixtures, and the tests. Nothing here depends on our say-so.

boundary honesty

  • A birth within ±1 minute of a gets an explicit warning: the pillar may split across schools. The app says so instead of guessing.
  • Unknown birth hour? The app supports it as a question mark — better an honest gap than a fabricated pillar.
  • Both hour schools (clock / true solar) are always displayed with their school named.

data, plainly

Computing runs in your browser, and there is no account to make. But this is a research commons: entering your birth data is consent — every chart computed here becomes a research record (the birth inputs you entered plus everything derived from them: pillars, 十神, 藏干, 纳音, 空亡, 大运). Records are held under covenant and are deletable from the intake page; they are queued in this browser until the commons endpoint ships.

If that trade is not for you, close the tab — the engine is MIT-licensed and can be run offline from source, no data kept by anyone.

What the math cannot do: the engine computes positions, pillars, and relations — a map. It computes no meaning, no fortune, no verdict. Where the map stops, reading begins — and reading is yours, not the machine's.