Learning guide · calculators and conventions

Why BaZi calculators
give different answers.

A BaZi chart starts with a local clock reading, a place, a time-zone history, and disclosed calculation rules. The useful question is which of those inputs or conventions produced this chart.

Last reviewed · 2026-10-21 Static guide · no account or tracking Sources listed at the end

Answer first

A BaZi chart does not start with a self-defining value called “birth time.” It starts with a local clock reading, a place, a time-zone history, and a set of disclosed calculation rules. The IETF’s time-zone model also warns that a local clock time can map to more than one instant when UTC-offset or daylight-saving changes overlap. Different choices at any of those layers can change the Four Pillars before interpretation begins.

Independence and self-links. Sky Atlas is independently published and edited by Zhou Zhe. It also operates the portrait tool linked at the end of this guide, so that is a self-link rather than an independent endorsement. This guide has no sponsorship, paid placement, or affiliate relationship with any cited third-party calculator, code library, or source. Sky Atlas has no affiliation with any temple, lineage, professional association, government body, certification organization, or regulator. It does not provide personalized readings, claim that any school is official, or decide which interpretation is uniquely correct.

The same typed local time can produce different Four Pillars results when calculators resolve the time zone differently, use civil time or apparent solar time, choose a different year or late-Zi day boundary, calculate solar-term boundaries differently, or apply a different implementation rule. Those choices can change the structure before interpretation; school or editorial readings can then differ even when the pillars match.

Before comparing charts, compare their assumptions. The calendar and time-zone guide explains the date layer, while the Four Pillars guide explains the structural terms. A result is reproducible only when both the normalized input and convention are stated.

Six layers that can change a result

Layer Claim type Why the result can differ
Clock and time zone Verified input constraint A local time can map to zero, one, or multiple UTC instants when DST or historical offset changes overlap the entered time (RFC 9557; IANA).
Year boundary Implementation convention lunar-python calculates an exact Lichun-transition year, while overtrue/chinese-calendar uses Lunar New Year for its ganzhi year.
Late-Zi day boundary Implementation convention lunar-python exposes two rules for 23:00–23:59: retain the current day pillar or advance it to the next day.
Solar-term and month boundary Astronomical boundary The Hong Kong Observatory defines solar terms by solar longitude and notes that a near-midnight boundary can shift the displayed date by one day (conversion remarks).
Solar time Calculation choice NOAA distinguishes apparent solar time from civil time; longitude and the equation of time change the difference.
Interpretation School or editorial layer Strength models, hidden stems, Na Yin, texts, and school-specific readings are not part of the raw four-pillar string.

The first row constrains the timestamp; the next four rows choose how the calendar coordinate is calculated; only the final row interprets the resulting structure.

Public implementations expose different conventions

Implementation Public convention Observable difference
lunar-python Exposes two late-Zi sects; its exact year calculation uses the Lichun transition (source). A birth at 23:00–23:59 can retain the current day pillar or move to the next day, depending on the selected sect.
overtrue/chinese-calendar Uses Asia/Shanghai, moves 23:00 into the next day, and uses Lunar New Year for its ganzhi year; its README points readers elsewhere for the Lichun convention. Its calendrical year and late-Zi day can differ from an implementation using exact Lichun and a civil-midnight day boundary.

These are public implementation choices, not evidence that one lineage is universally correct. They show that the same named convention does not imply one universal implementation rule, so a calculator must disclose its own rules.

Within Sky Atlas, an element count is treated as a display of the calculated structure, not as a prescription that something is “missing” and must be corrected. The portrait reading guide explains how the project keeps calculation, tradition, and editorial interpretation separate.

Diagnostic map: find the layer that changed

What differs Check first Why
Year or month pillar Year boundary and solar-term transition Exact Lichun and Lunar New Year conventions can produce different year assignments, while solar longitude defines month boundaries.
Day pillar at 23:00–23:59 Late-Zi convention One implementation may keep the current day pillar; another may advance it.
Hour pillar, with the same date and pillars otherwise Time zone, DST, longitude, and solar-time basis A civil clock reading and apparent solar time are different inputs; historical UTC offsets can change the resolved instant.
Same four pillars but different reading School or editorial interpretation layer Strength models, hidden stems, Na Yin, and later commentary are not part of the raw four-pillar string.
Different results with no disclosed receipt Implementation identity and version Reproducibility requires the calculator to say which input and convention it applied.

Three visible examples

These examples are project-engine outputs generated by the Sky Atlas methodology. They demonstrate sensitivity to one stated convention at a time; they do not prove that one tradition or interpretation is universally correct.

Example 01 · Year boundary

Lichun changes the year and month pillars

Before the Lichun instant 2024-02-04 · 15:00 · Shanghai
01 / Year 癸卯 guǐ · mǎo water · wood
02 / Month 乙丑 yǐ · chǒu wood · earth
03 / Day 戊戌 wù · xū earth · earth
04 / Hour 庚申 gēng · shēn metal · metal

The year pillar remains 癸卯.

After the Lichun instant 2024-02-04 · 17:00 · Shanghai
01 / Year 甲辰 jiǎ · chén wood · earth
02 / Month 丙寅 bǐng · yín fire · wood
03 / Day 戊戌 wù · xū earth · earth
04 / Hour 辛酉 xīn · yǒu metal · metal

The year pillar becomes 甲辰.

Example 02 · Day boundary

23:30 can belong to different day positions

Late-Zi boundary · 23:00 2024-02-03 · 23:30 · Shanghai
01 / Year 癸卯 guǐ · mǎo water · wood
02 / Month 乙丑 yǐ · chǒu wood · earth
03 / Day 戊戌 wù · xū earth · earth
04 / Hour 壬子 rén · zǐ water · water

Day pillar 戊戌.

Civil midnight boundary · 00:00 2024-02-03 · 23:30 · Shanghai
01 / Year 癸卯 guǐ · mǎo water · wood
02 / Month 乙丑 yǐ · chǒu wood · earth
03 / Day 丁酉 dīng · yǒu fire · metal
04 / Hour 庚子 gēng · zǐ metal · water

Day pillar 丁酉.

Example 03 · Clock and solar time

Daylight saving and longitude can change the hour pillar

Clock time 1990-07-04 · 12:00 · New York
01 / Year 庚午 gēng · wǔ metal · fire
02 / Month 壬午 rén · wǔ water · fire
03 / Day 庚午 gēng · wǔ metal · fire
04 / Hour 壬午 rén · wǔ water · fire

Hour pillar 壬午.

True solar time 1990-07-04 · 10:59:36
01 / Year 庚午 gēng · wǔ metal · fire
02 / Month 壬午 rén · wǔ water · fire
03 / Day 庚午 gēng · wǔ metal · fire
04 / Hour 辛巳 xīn · sì metal · fire

Hour pillar 辛巳.

How to compare two calculators fairly

  1. 01
    Use the same city and IANA zone.

    A nearby city name is not enough when historical offsets or daylight saving differ.

  2. 02
    Use the same clock time or the same solar-time correction.

    “True solar time” can hide different longitude and daylight-saving assumptions.

  3. 03
    Check the stated year and day boundaries.

    Ask whether the year changes at Lichun and the day at 23:00 or 00:00.

  4. 04
    Compare the four pillar strings before the interpretation.

    If the structural output already differs, the interpretive disagreement has a prior cause.

  5. 05
    Ask which text or school supports the reading.

    A structural calculation does not select one interpretation by itself.

  6. 06
    Record the implementation and version.

    Two programs can implement the same named convention differently or change it across releases.

A reproducibility test

A reproducible calculator should expose the local date and time, IANA time zone, UTC offset, time basis, year boundary, late-Zi rule, solar-term treatment, implementation version, and interpretation source. Without those fields, a different result cannot be diagnosed.

What this does not mean

  • A different result does not prove that one calculator is fraudulent.
  • Showing a convention does not prove that its interpretation is scientifically valid.
  • For a time near a stated year, month, day, or solar-time boundary, more decimal places do not resolve which convention was used.
  • A variant is not a second destiny hidden behind the first.
  • No calculator can establish medical, legal, financial, or safety outcomes.

The standard is reproducibility: could another reader reconstruct the same output from the same input and stated rules? That is a narrower claim than saying a chart determines a life outcome, and a much more useful one.

Sources

Source review: 2026-10-21. See corrections or contact Sky Atlas with a source or reproducibility issue.

Next step

Inspect the convention behind one result.

Inspect the convention behind one result in the portrait tool. Then compare the receipt with the related calendar and time-zone guide and Four Pillars guide.

Compare conventions in the portrait