Chart Comparison Tool 排盤對拍
One birth moment in — three chart engines compute the four pillars independently, side by side, in your browser: this site's kernel, lunar-javascript, and tyme4ts. Where they diverge, the convention responsible is named and the exact solar-term instant is shown. No signup, zero network requests.
References: lunar-javascript 1.7.7 · tyme4ts 1.5.3 (both MIT, pinned by SHA-256 in the vendor manifest) — the same copies used in our machine differentials.
Compare one chart 同一輸入對拍
Loading the kernel…
Read the table
Four pillars, three engines. The hour-pillar row uses the 23:00 day-swap convention(晚子時換日干)because tyme4ts and lunar-javascript switch the day stem at 23:00 while our default keeps the civil day — outside the 23:00–23:59 window the two conventions coincide and our default is shown. Divergent cells are tinted; below each divergent row the tool prints the boundary instant involved and names the convention at play.
Try 4 February 1986, 10:00 (the default above): it is Lichun day, but before the exact Lichun instant (11:07 Beijing). Engines that switch the year pillar at the day's midnight already say 丙寅; engines that switch at the instant still say 乙丑. Both answers are honest — they follow different transmitted conventions. That difference, visible and explained, is what this page exists to show.
What this is, and what it isn't
- Reproducible by construction. The two reference engines are pinned MIT libraries served from this site (
/vendor/, SHA-256 in the manifest) — the byte-identical copies used in our 157k-sample machine differentials (acceptance layers 21–23). - Not a scrape of competitor sites. wofs.com and geomancy.net run closed engines; calling them live would prove nothing about which version answered. Two further references — sxtwl and an independent JPL-DE441 reconstruction — run server-side across ~290,000 samples; results are in the accuracy report.
- Hard invariants, in the open. Day and hour pillars: zero divergence across all samples — any regression fails our build. Year/month divergences concentrate at term boundaries and every one has a name: see dispute register entry D-07 (switch granularity) and the boundary-instant tables.
- Your data stays put. All three engines run locally; the shareable link encodes only the date and time.
FAQ
What does this comparison tool do?
You enter one birth moment. Three chart engines then compute the four pillars (八字) independently, side by side, entirely in your browser: this site's kernel, lunar-javascript, and tyme4ts. Where they agree you see agreement; where they diverge, the tool names the convention responsible and shows the exact solar-term instant involved.
Why compare against these two engines?
Because they are the open-source engines a large share of Chinese-metaphysics apps are actually built on, and because an honest comparison has to be reproducible. lunar-javascript and tyme4ts are MIT-licensed, so their exact versions run on this page — nothing is paraphrased or scraped. Two further references (sxtwl and an independent DE441 reconstruction) run in our server-side acceptance suite across roughly 290,000 samples.
Why do the engines sometimes disagree?
Almost always at a solar-term boundary, for one of two reasons. Granularity: some engines switch the year or month pillar at midnight of the term's calendar day, others at the exact astronomical instant — on the Lichun day itself those rules give different answers for hours. Instant precision: two engines' term tables can place the same boundary seconds or minutes apart. Both are documented, with examples, in our public dispute register entry D-07 and the accuracy report.
What is guaranteed to agree?
The day and hour pillars. Across roughly 157,000 samples in our differentials (lunar-javascript 9,100; tyme4ts 55,360; sxtwl 102,360 at two depths), day/hour divergence is zero — it is a hard invariant that fails the build if violated. Divergences you see on this page will therefore concentrate on year/month at term boundaries, and each one is explained rather than averaged away.
Does this call wofs.com, geomancy.net or other competitor sites?
No. Their engines are closed, and a live scrape would be neither reproducible nor honest about what version ran. Comparing against pinned open-source engines is verifiable: the exact files are served from this site's /vendor/ directory with SHA-256 hashes published, the same copies used in our machine differentials.
Is my birth data sent anywhere?
No. All three engines run locally — our kernel as WebAssembly, the two references as vendored JavaScript. The page makes zero network requests after loading, and the shareable link encodes only the date and time you entered.
Which engine is right when they diverge?
Right depends on the convention you accept, and the tradition itself transmits both. We switch at the exact astronomical instant (the same DE441-based astronomy as our solar-term tables); that is a defensible choice, not a verdict on other schools. The point of this tool is that the difference is visible and explained, not hidden inside a black box.
Related
Four-pillar chart · Verify a chart (full report + fingerprint) · School dispute register · Accuracy report · Errata · Methodology