Skip to main content
By AskStar EditorialUpdated 2026-07-12

Why ChatGPT Gets Zi Wei Charts Wrong

Handing a birth date to ChatGPT and asking for a Zi Wei Dou Shu chart is many people's first taste of "AI fortune telling" — and the fastest way to receive a wrong chart. This article stays concrete: we fix one birth datum, publish the complete reference chart computed by a deterministic engine, then explain exactly where and why general-purpose language models go wrong. Every claim comes with a way to verify it yourself.

What this article does (and does not do)

What it does: (1) fixes one birth datum — March 15, 1990, 23:30, Taipei, male; (2) computes the complete Zi Wei chart for that datum with this site's deterministic charting engine and publishes it below as the reference; (3) organizes the recurring errors general-purpose language models (ChatGPT, Gemini, Claude and other chatbots) make when casting Zi Wei charts into four verifiable classes, with the mechanism behind each.

What it does not do: we will not paste a screenshot of "what ChatGPT said" as evidence. A single conversation is not reproducible — model version and sampling both shift the output, so arguing from a one-off transcript would be neither fair nor scientific. Instead, we state the errors as classes, each with a verification you can run yourself. The reproducible verification method is the argument.

The conclusion up front: casting a Zi Wei chart is a chain of table lookups where every step has exactly one correct answer; a language model is a probabilistic text generator with no built-in almanac and no star-placement tables. Asking it to cast a chart is like asking someone with an impressive memory — who never opens a book — to recite an entire almanac: the broad strokes are often right, and you cannot predict where the details are wrong.

The reference chart: 1990-03-15, 23:30, Taipei, male

The three tables below are this site's charting engine's complete output for the datum — an open-source Zi Wei engine (iztro) computing by table lookup under traditional San He school placement rules. The code is fixed, the same input always yields the same output, and an automated test pins these exact values: if any engine change invalidated the numbers on this page, the test would fail.

Two computation conventions, stated up front (they are also the legitimate sources of difference between tools): (1) the hour branch is determined from the local clock time you enter — no true-solar-time correction; (2) 23:00–23:59 is treated as the 子時 (Zi hour) of the same calendar day (no day advance). Before comparing any tool against this chart, confirm whether it shares these two conventions.

Input (fixed birth datum)
Gregorian birth date1990-03-15
Birth time23:30早子時
GenderMale
Time conventionTaipei local clock time (no true-solar-time correction; 23:00–23:59 treated as same-day 子時)
Engine output · chart summary
Lunar date一九九〇年二月十九
Four pillars (year month day hour)庚午 己卯 己卯 甲子
Five-Element bureau土五局
Life palace (命宮)卯 palace (stem-branch 己卯)
Body palace (身宮)Same palace as Life (卯) — Zi-hour births place them together
命主 / 身主文曲火星
Birth-year transformations (庚 year)太陽化祿、武曲化權、太陰化科、天同化忌
Engine output · full 12-palace placement
PalaceStem-branchMajor stars (brightness · transformation)Auxiliary/malefic stars
兄弟貪狼(平)
命宮天機(旺)、巨門(廟)鈴星
父母紫微(得地)、天相(得地)文曲
福德天梁(落陷)左輔
田宅七殺(旺)
官祿(empty — borrows opposite palace)天鉞、陀羅
僕役廉貞(廟)祿存、天馬
遷移(empty — borrows opposite palace)右弼、擎羊
疾厄破軍(旺)文昌
財帛天同(廟) 化忌地空、地劫
子女武曲(旺) 化權、天府(廟)
夫妻太陽(不得地) 化祿、太陰(廟) 化科天魁、火星

Star and palace names are the engine's raw output in Traditional Chinese — the canonical tokens of the system, kept untranslated so any tool's output can be compared byte for byte. Brightness marks (廟, 旺, 得地, 利, 平, 不得地, 落陷) follow this engine's brightness table; schools differ slightly on brightness, so compare star POSITIONS first.

Failure class 1: calendar-conversion errors

The first step of casting is converting the Gregorian birth date to the lunisolar calendar. For this datum, the correct answer: March 15, 1990 = the 19th day of the 2nd lunar month, 1990. A single table lookup — and the single most common place language models stumble: a lunar date off by a day or two, leap months misremembered (assigned to the wrong month), or inconsistent handling of the Zi-hour day boundary.

The mechanism is simple: the lunisolar calendar is astronomically defined — each month begins at an actual new moon, and solar terms are fixed by the Sun's ecliptic longitude. It cannot be derived by mental rules; it must be looked up. A computation engine ships the full conversion tables; a language model can only probabilistically "recall" almanac fragments scattered through its training data. To the model, "19th" and "20th" are equally fluent text — choosing the wrong one triggers no internal alarm.

Calendar errors are devastating because they sit at the very top of the computation chain: a wrong lunar date corrupts the day number used to place Zi Wei, and everything downstream inherits the error.

Failure class 2: star-placement rule errors (one slip shifts all 14 stars)

With the calendar right, the next stage is star placement — the most tightly-chained part of Zi Wei computation: the Life palace position comes from birth month and hour; the Five-Element bureau comes from the Life palace's stem-branch nayin (for this datum: Life palace 己卯, nayin "City Wall Earth", hence Earth-5 bureau); Zi Wei's palace comes from a table lookup on bureau plus lunar day (Earth-5 bureau, 19th day: Zi Wei in 辰); and all thirteen other major stars are derived from Zi Wei's position.

Note the structure: get the bureau wrong by one class and Zi Wei's position is wrong; put Zi Wei one palace off and all fourteen major stars shift wholesale — not "one wrong star" but a fully misplaced chart. Birth-year transformations are equally rigid: a 庚 (Geng) year is always Sun→祿, Wu Qu→權, Moon→科, Tian Tong→忌 — a fixed lookup where one memory slip corrupts everything, and where competing school mnemonics coexist in training data, making them easy for a model to cross-wire.

For a computation engine these rules are a few lines of table lookup. For a language model they are a multi-step chain where no step may be "approximately right" — precisely what probabilistic generation cannot guarantee.

Failure class 3: same input, different chart on every run

This is the easiest class to verify yourself: give the same birth data to the same chatbot in two separate conversations, ask for a Zi Wei chart both times, then compare the Life palace, Five-Element bureau, and major-star positions item by item.

Casting is deterministic computation — same input, same output; the two results should match to the character. But language-model generation includes sampling randomness, so two "castings" can contradict each other on the lunar conversion, the bureau, or star positions. If the two runs disagree, at least one is wrong — and the model cannot tell you which.

This test is powerful because it requires zero metaphysics knowledge: you do not need to know how to cast a chart, only how to compare two tables.

Failure class 4: confident fabrication — it never says "I can't compute this"

A computation engine raises an explicit error on input it cannot handle. A language model behaves in the opposite way: certain or not, it generates a fully formatted, professionally worded, entirely plausible-looking chart — correct parts and wrong parts delivered in the same confident tone, with no "this may be wrong" markers attached.

This follows from the training objective: language models are optimized to produce fluent, helpful responses, not to refuse computational tasks. For the user it means errors carry no signal — a wrong chart and a right chart are visually indistinguishable. The only defense is checking against an external reference, which is exactly why this page's reference chart exists.

Side-by-side: deterministic engine vs. general-purpose LLM

The four failure classes against engine behavior, in one table:

AspectDeterministic engineCommon general-purpose LLM errors
Calendar conversionBuilt-in almanac lookup: Gregorian↔lunar, leap months, solar-term boundaries"Recalls" the almanac from training data; lunar dates, leap months, Zi-hour day boundary all error-prone
Five-Element bureauDerived from Life-palace stem-branch nayin lookup; unique answerOften asserts a bureau outright, or contradicts its own stated stem-branch
Zi Wei placementTable lookup on bureau + lunar day; position is uniqueZi Wei one palace off → all 14 major stars shift wholesale
Birth-year transformationsFixed table by year stem (庚: Sun/Wu Qu/Moon/Tian Tong)Mnemonic misremembered or schools cross-wired
Repeat runsSame input, same chart, alwaysSame input can yield mutually contradictory charts
Error handlingInvalid input raises an explicit errorRarely says "cannot compute"; confidently outputs a complete chart

Verify it yourself (two minutes, no casting knowledge needed)

Three checks, from lightest to deepest — pick any one:

  • Repeatability test: in two fresh conversations, ask the same chatbot to cast a Zi Wei chart for "a male born March 15, 1990, 23:30, Taipei", then compare the two outputs' Life palace, bureau, and star positions.
  • Reference comparison: take any tool's output (chatbots included) for this datum and check it cell by cell against this page's reference chart — lunar date, four pillars, bureau, Life palace, 14 major-star positions, birth-year transformations. First confirm the tool's Zi-hour and true-solar-time conventions (see the reference-chart section).
  • Calendar spot-check: skip the chart, verify one upstream fact — ask for "the lunar date of March 15, 1990" and check it against any published almanac (correct answer: 19th day of the 2nd lunar month). If the very top of the chain is wrong, nothing downstream needs checking.

The honest conclusion

This article is not saying language models are useless — our own product uses AI heavily. The point is division of labor: casting is table computation, so it belongs to a deterministic engine; reading is a language task, so that is where AI comes in. That is exactly AskStar's architecture — the engine computes the chart first, the AI only translates the finished chart into plain language, and the computation layer never passes through a model. Details are public on the Methodology page.

So the one-line answer to "why does ChatGPT get Zi Wei charts wrong": because casting charts was never a language model's job. Use the right tool for each half — a lookup engine when you need a chart that is guaranteed correct, and AI when you want to understand it.

Frequently asked questions

So ChatGPT is completely useless for Zi Wei Dou Shu?

No. Language models are unsuited to casting, but handing an already-correct chart to one and asking for interpretation is an entirely reasonable use — that is a language task, their actual strength. Order matters: produce a correct chart with a deterministic tool first, then paste the chart data to the AI and ask reading questions.

Why can't a language model manage what is just table lookup?

Because it is not looking anything up — it is predicting the next token. Almanacs and star-placement tables exist in its training data only as scattered fragments, reconstructed probabilistically at generation time. "The 19th" and "the 20th" are equally fluent outputs, and no built-in mechanism checks which one is fact. A computation engine literally ships the tables and reads them.

How was this page's reference chart computed?

By this site's charting engine (the open-source Zi Wei program iztro, following traditional San He school placement rules), from the input 1990-03-15, 23:30, male. No AI was involved at any step, and an automated test pins this exact output — if an engine change invalidated these numbers, the test would fail and the page would be corrected in the same change.

A tool gave me a different chart for this datum — who is wrong?

First rule out the two legitimate convention differences: the Zi-hour boundary (this chart treats 23:00–23:59 as the same day's Zi hour) and true solar time (this chart applies no correction). If those match and results still differ, check the most upstream layer — the lunar conversion and four pillars, which any almanac can adjudicate objectively. If the calendar matches but star positions differ, the placement computation is usually at fault.

Could AskStar's AI make these same mistakes?

The architecture removes the opportunity: AskStar's AI never touches chart computation — the deterministic engine finishes the chart first, and the AI only receives the computed result for synthesis and interpretation. That is the difference between "deterministic computation + AI reading" and "letting a chatbot cast the chart"; see the Methodology page for details.

Cast one on the deterministic engine

Free, no sign-up. Enter your own birth data, get a chart you can verify cell by cell — then compare it against any AI's output.

Why ChatGPT Gets Zi Wei Dou Shu Charts Wrong: A Verifiable Test | AskStar