Sources and method
What this calculator uses, what we measured ourselves, which numbers are our own convention rather than received fact, and what we do not do at all. The last two sections are the point: listing only the authoritative parts while staying quiet about the rest is borrowed credibility.
1. External data
Each of these is independently checkable. Versions are given so a claim can be reproduced against the same data we used.
Historical timezone offsets. This is what the whole site rests on: Peninsular Malaysia ran UTC+7:30 before 1982, UTC+9 under occupation 1941-45, and East Malaysia moved to +8 in 1933. We never hardcode an offset; we look up the one actually in force on the birth date.
Coordinates and timezone assignment for 519 cities. Longitude drives the true-solar-time correction. Licensed CC BY 4.0; this attribution is required by that licence.
Zi Wei Dou Shu star placement: the twelve palaces, fourteen main stars, auxiliary stars and brightness.
Lunar calendar conversion, the 24 solar terms, and the four pillars. Solar terms set the month pillar, so this feeds the BaZi directly.
Equation of time
approximation, ±~30s9.87·sin(2B) − 7.53·cos(B) − 1.5·sin(B), where B = 2π(n−81)/365. A standard approximation, accurate to roughly half a minute. That error can only change the answer if a birth falls within about thirty seconds of a 时辰 boundary.
2. What we measured ourselves
These are not citations. They are numbers we produced by sweeping charts, and the underlying data is published so the figures can be recomputed.
How much the timezone error matters
audit-data.json24.9% of Peninsular Malaysian births from 1946-1981 get the wrong main star (n=4000, sampled across three offset eras). This is the basis of the accuracy page.
A sweep of 51,840 charts. All forty-eight cells occur between 7.8% and 8.9% of the time, so no cell is a rare draw. This result is why the rarity badge we had planned was cut.
How often each formation fires
formations-data.jsonA sweep of 34,560 charts. Any formation matching more than a fifth of all charts is a rule written too loosely; that check removed three, one of which had been matching 58.9% of charts.
3. These are our conventions, not received fact
Some numbers in this engine have no authority behind them. We chose them. They affect what you see, so they are stated here rather than buried in the code.
The 四化 table follows 中州派
lineage choiceLineages disagree on the 戊 and 庚 rows. We follow 中州派 and say so on the chart. The point is not that this lineage is right, but that you can see which one was used.
Timeline scoring weights
conventionStem 0.4, branch 0.6; a branch's hidden stems weighted 0.6 / 0.3 / 0.1. Relation adjustments: trine 0.15, half trine 0.07, harmony 0.08, punishment −0.08, with the total capped at 0.30. These ratios are a convention, not a measurement.
Palace emphasis weights
conventionMain star 3.0, transformation 1.5, borrowed star 1.2, malefic 0.8, minor star 0.6. This is why that section shows a rank and a band and never the number: printing "13.7" would give these weights an authority they have not earned.
Only 24 formations, not the full lists
a subsetThe published lists run to sixty or more. We implement the twenty-four whose rule can be stated exactly. Where lineages are vague, nothing is claimed rather than something guessed.
English star names are conventional renderings
archetype, not translationThe Disruptor is not a literal translation of 破军; it is the rendering in common English use. 庚 is not a sword, it is yang Metal, and the sword is the image the tradition uses for it.
4. What we do not do
Worth stating plainly. These are either not built, or judged not buildable to a standard we would stand behind.
调候用神, the seasonal-climate method
not implementedThere are two methods for finding the 用神. We implement only 扶抑 (support-and-restrain), because it can be derived and checked. The other, 调候, reads the climate of the birth month — Wood born in winter needs Fire, Wood born in summer needs Water — and comes from 穷通宝鉴. The two sometimes disagree. We do not have that text, and reconstructing its hundred-and-twenty entries from memory is precisely what this site argues against.
Malefics are checked for presence, not full interaction
partialFor formations we check whether any of the six malefics falls across the Self triangle, because 無煞衝破 is an explicit classical condition. How malefics interact with each other, or are mitigated by auxiliary stars, is not modelled.
Clashes are reported but never scored
reported onlyA clash is disturbance, not misfortune. Clashing a branch you needed is bad; clashing one working against you can be a release. The direction depends on a reading this engine does not have, and assigning a sign anyway would be dressing a coin flip as a calculation.
This is not prediction
scopeThe decade and year ratings score whether a period's elemental character suits yours. They do not say what will happen. Identical birth details always produce identical output: this is a lookup, not a prophecy.
Corrections welcome, especially on lineage differences or anything here that has a citable source we have missed. This page is updated alongside the engine.