About
How This Site Calculates BaZi
Most BaZi calculators on the English internet are wrong about something. Here’s exactly how this engine works, what it gets right, and what it doesn’t.
The short version
- A free, accurate, well-written BaZi resource for beginners and practitioners. Empirical voice, no mysticism.
- The engine is built on true solar time, precomputed solar term boundaries, and a verified day pillar anchor cross-checked against historical charts.
- The interpretive content distinguishes calculation (mechanical and verifiable) from interpretation (editorial). Both are done with care.
- No signup. No paywall. No ads. Free forever.
What we built
This site exists because the English-language BaZi internet had two kinds of resources and not much in between. On one side, entertainment sites with cartoon zodiac animals and horoscope-style yearly predictions — easy to find, almost always wrong on the details, and written in a voice that drifts toward fortune-telling within two paragraphs. On the other side, professional practitioner sites priced as paid consultations, with calculation engines hidden behind checkout flows and reading content gated behind courses.
The goal here is a third option: a calculator that is actually right, a reading library written at the level a serious beginner or working practitioner would want, and zero friction between landing on the site and getting your full chart. Free, accurate, well-written. No signup. No paywall. No ads. No upsell to a personal reading. Permanently.
The engine, in plain English
Nine things the calculation engine does that most free BaZi calculators don’t. This section is the trust signal — if you only care about one part of this page, it’s this one.
True solar time
Every chart is computed against the user's birth longitude, with the Equation of Time correction applied. A baby born at 12:00 local time in San Francisco does not have a noon-Beijing chart; the engine knows the longitudinal offset and the small seasonal wobble from the Earth's elliptical orbit, and applies both. Most online calculators skip this entirely, which is how two people born in different cities on the same clock time end up with silently wrong charts.
Solar term boundaries
节气Month pillars do not change on calendar months. They change on the twelve 节 (jié) terms — Lìchūn, Jīngzhé, Qīngmíng, and so on — each defined by the sun reaching a specific ecliptic longitude. Someone born on February 3 is still in the previous BaZi month, not the next one. The engine ships a precomputed table of all 24 solar terms for every year from 1849 to 2101 — 6,072 entries — generated from the astronomy-engine library and cross-checked against Hong Kong Observatory data.
The 23:00 day boundary
The day pillar advances at 23:00, not at midnight. The first 子 (zǐ) hour begins at 11 PM, which means a baby born at 23:30 on Tuesday belongs to Wednesday's day pillar — not Tuesday's. Casual calculators that treat midnight as the day boundary produce the wrong day stem for anyone born in the late-evening two-hour window, and a wrong day stem means the entire chart collapses, because every other interpretation is anchored to it.
The 立春 year boundary
立春BaZi years start at Lìchūn (立春), not on January 1. Lìchūn falls around February 4 each year, when the sun crosses 315° ecliptic longitude. A child born on January 15 still belongs to the previous year's pillar for BaZi purposes — the calendar says one thing, the chart says another. The engine handles this transition explicitly, so charts near the boundary resolve correctly every time.
Verified day pillar anchor
The day pillar is a 60-cycle that rolls forward one step per day, forever, starting from a single anchor date. This engine uses 2000-01-07 00:30 UTC = 甲子 (Jiǎzǐ, position 0 in the cycle) as its anchor, cross-checked against multiple authoritative 万年历 (perpetual calendar) sources. The result is externally validated against published historical charts. Mao Zedong's chart resolves character-for-character to the pillars cited in Chinese practitioner sources. Steve Jobs's chart resolves to 丙辰 — the day pillar cited by classical English-language sources — and not the popularly-repeated-but-incorrect 庚辰 that circulates on entertainment sites.
Calculated luck pillar start age
大运起运The first luck pillar's start age is computed from the actual distance between the birth datetime and the next or previous solar term, using the classical three-days-equals-one-year conversion, rather than rounding to an arbitrary number like eight or ten. Direction (forward or reverse through the 60-cycle) is set by gender combined with the polarity of the year stem — the classical rule. Two siblings born a week apart can have different luck pillar start ages for exactly this reason, and the engine tracks it precisely.
Hidden stem weighting
Earthly Branches contain one, two, or three hidden stems, weighted by main qi (primary), secondary, and tertiary positions. The engine's element balance respects this weighting — a Tiger branch in the month position does not count simply as 'Wood,' it counts as roughly 60% Yang Wood, 30% Yang Fire, 10% Yang Earth, scaled by position. Strength analysis and favourable element detection both depend on hidden stems being counted correctly, and skipping them is the single most common reason free calculators produce inconsistent readings.
Chart structure detection
格局Where applicable, the engine identifies the chart's classical structure (格局 géjú) — Direct Officer, Eating God, Seven Killings, Follow the Wealth, and so on. Structure detection is what lets the reading distinguish between charts that look similar on the surface but behave very differently in practice. Not every chart has a clean classical structure — when none applies, the engine says so explicitly rather than forcing a label that will mislead the reader.
Climate balance
调候用神For balanced charts, the favourable element is not guessed from a generic seasonal heuristic. The engine uses the classical 调候 (tiáohòu) table derived from 穷通宝鉴 (The Classic of Climatic Influences), which specifies the correct seasonal adjustment element for each of the ten Day Masters in each of the twelve months. A Yang Wood Day Master born in midwinter needs different climate support than a Yang Wood Day Master born in midsummer, and the table encodes that precisely rather than defaulting to 'the season's opposing element.'
The test suite
The engine is verified by an automated test suite that runs on every change. Twelve historical charts with externally-known correct pillars are tested end-to-end: Steve Jobs, Albert Einstein, Barack Obama, Marilyn Monroe, Bruce Lee, and Mao Zedong, plus several boundary cases designed to catch subtle errors — births near Lìchūn, births near 23:00, and births across the International Date Line. If any change to the engine causes any of the twelve to deviate from their expected pillars, the test suite fails and the change does not ship.
A separate famous-name attribution audit runs in parallel. Every famous person cited in the Day Master profiles is externally cross-checked against their actual day master — thirty entries total — so that when a profile says “Yang Fire: Steve Jobs,” that attribution has been independently verified rather than copied from a secondary source that may itself be wrong. This is the kind of error that propagates through the free BaZi internet invisibly, and the audit exists specifically to stop it.
The interpretive content
There is a clean line between calculation and interpretation. Calculation is mechanical and verifiable — either the engine resolves a birth datetime to the correct eight characters or it does not, and the answer is externally checkable. Interpretation is different. The Day Master profiles, Ten God descriptions, structure meanings, and annual forecasts on this site are the editorial perspective of one writer, built to be empirically grounded and honest about what the model can support, but not pretending to be the only valid reading. Reasonable practitioners will differ on some of it. We try to say so when that happens.
The voice principle is: model, not oracle. The content uses words like “tendency,” “pattern,” “common configuration,” and “associated with.” It does not use words like “destiny,” “fortune tells,” or “predicts,” because the model does not make those claims and the writer will not pretend it does. A lot of free BaZi content drifts toward fortune-telling within a few paragraphs, because fortune-telling voice is compelling and generates engagement. We don’t. This is an editorial choice, and it is the reason the whole site sounds like a reference work instead of a horoscope.
The practical consequence is that if you read a page here and it sounds less dramatic than what you would get from a horoscope site, that is on purpose. The model is descriptive, the voice reflects the model, and the reader is trusted to do the rest of the work.
What the engine does not do (yet)
An honest list of current gaps. These are tracked as work items, not hidden.
- Nayin (sound elements).The 60-cycle “nayin” layer — which assigns a sound-element label to each stem-branch pair — is not yet implemented. It is a secondary interpretive layer in most modern readings, but practitioners who use it regularly will find it missing here.
- Lineage-specific symbolic stars. The engine includes the standard symbolic stars (Nobleman, Peach Blossom, Travelling Horse, Sky Dog, and the commonly-used rest). Lineage-specific stars like 童子煞 (Tóngzǐshā) that only appear in certain schools are not included.
- Narrative compatibility reports. Compatibility analysis is structural — element interactions, Ten God dynamics between charts — rather than narrative. A long-form “here is how this relationship will unfold” write-up is out of scope for now.
- Medical or financial advice. Explicitly out of scope. Where the content notes that a profile is empirically associated with certain health or career patterns, that is a hypothesis worth testing against real data, not a diagnosis or a recommendation.
Sources and references
The engine and the writing draw on a standard set of references. This is the list, without outbound links — these are reference marks, not endorsements of any specific edition or site.
- Joey Yap’s BaZi books — the most complete English-language body of work for modern BaZi. Used as the primary reference for the Ten Gods framework, structure detection, and the interpretive vocabulary.
- Hong Kong Observatory — used to cross-check solar term dates produced by the astronomy-engine library before bundling them into the precomputed table.
- 万年历 (perpetual calendar) references — standard Chinese perpetual calendars used to verify the day pillar anchor across multiple independent sources.
- 穷通宝鉴 (The Classic of Climatic Influences) — classical source for the 调候 (climate balance) table used in favourable element derivation.
- The twelve stages of life table — classical source for stem-at-branch lifecycle positions, used in strength analysis.
Who runs this, and how to report errors
This site is run by one person. It is free forever. There are no ads, there is no tracking beyond aggregate analytics, and there is no upsell to a personal reading or a course. The whole project exists because the English-language BaZi internet deserved better and it was possible to build better.
If you find an error in the engine, the content, or a famous-name attribution, please report it. A proper feedback channel is coming; in the meantime, any practitioner who spots a mistake and wants to flag it can assume corrections are welcome. Engine errors will be treated as bugs and fixed. Content errors will be treated as editorial corrections and revised with a note.
Practitioner detail: what “externally validated” means in practice
The phrase “externally validated” does a lot of work in the engine description above, so it is worth being precise. For the historical charts in the test suite, validation means each chart’s expected four pillars have been cross-checked against at least two independent sources — typically one Chinese-language practitioner source and one English-language published chart — and the engine must match both to pass. Where the sources disagree (Steve Jobs’s day pillar is the canonical example), we document the disagreement, pick the answer supported by the calculation rules, and cite the reasoning.
For the famous-name attribution audit, validation means each person’s birth date has been verified from a primary or near-primary source (official biography, obituary of record, documented birth record) and their day master has been computed by the same engine that runs the live site. Attributions that cannot be verified — typically because the birth time is contested or unknown — are either removed from the profile or flagged explicitly as unverified.