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. Every clock change, region by region
Coordinates and timezone assignment for 748 cities, mainland China’s prefecture-level cities among them (not Xinjiang’s: Beijing time and Xinjiang time are both in daily use there, and a recorded birth time could be on either). Longitude drives the true-solar-time correction. Licensed CC BY 4.0; this attribution is required by that licence.
The reference implementation for Zi Wei star placement. The positions are now computed here (src/engine/Ziwei.php, from 卷二 安身命例); iztro no longer ships. It stays as the build-time second opinion: hundreds of charts compared palace by palace and star by star on every build, and one disagreement fails the build and blocks the deploy.
Lunar calendar conversion, the 24 solar terms, the four pillars and 纳音. Solar terms set the month pillar, so this feeds the BaZi directly.
The same author's JavaScript version, a 1:1 counterpart of lunar-php. Likewise build-time comparison only; it no longer ships.
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 the two 用神 methods conflict
n=1,200Across 1,200 charts: the stems 调候 names fall in the element set 扶抑 calls unfavourable 45.9% of the time; the two agree on at least one element in 31.9%; the named stems fall outside both sets in 17.2%; and in 5.0% the transcription we have carries no usable entry. By day master, 甲 conflicts most (78%) and 乙 least (21%). This is why we do not adjudicate: the conflict is the normal case, not the exception, and picking a method is picking a lineage. Reproduce with test/tiaohou-conflict.php.
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.
How often each 子平真詮 configuration holds
pattern-route-data.jsonA sweep of 17,280 charts. The denominator is the PATTERN, not all charts: 财旺生官 can only occur on a 财 chart, and measuring it against everything would make every reading look rare. Any configuration holding for more than nine charts in ten of its own pattern is not a distinction 沈 was drawing but a condition every such chart meets — that check caught two, one of them holding for 74.8% of 印 charts. The rate is printed beside each reading, written from the same sweep that checks it.
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. The My day page rates each day and each hour the same way. The classics rate periods down to the year; rating a day or an hour is this site carrying the same convention a step further, and that page says so.
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 27 formations — and two were checked and rejected
27 kept, 2 rejectedThe published lists run to sixty or more. We implement the twenty-seven whose rule can be stated exactly; where lineages are vague, nothing is claimed rather than something guessed. 卷三 论诸星同垣 added three: 机月同梁 (4.19%), 风流彩杖 (1.16%), 泛水桃花 (1.84%). Two more from the same section were checked and rejected, and both refusals are measurements rather than opinions. 马头带箭: the section reads 天同贪羊陀居午位, but 天同 and 贪狼 never share a palace at all (0 in 960 charts), so that run is two aphorisms with the punctuation missing. 府相朝垣: read loosely it fires on 24.4% of charts, which is not a distinction worth naming; read tightly, following the gloss 命寅申,府相在财帛宫, it fires on 0.00%. No reading in between is stated by the text, and inventing one to make the number look right is exactly what this module exists not to do.
The fourteen star characters
now backed by the workWhat each main star is -- 武曲 as decisive and cool, 破军 as separation and clearing -- is broadly agreed across lineages, and we use it to say what a transformation is landing ON. But it is written from the standard reading as we understand it, and two readers pointed at places where that understanding was thin. It is no longer the only thing standing behind those lines: all fourteen 問X所主若何 sections of 卷一 are now translated and shown with the star, so the short character line has a source to be answerable to.
Star-in-palace: translated, not written by us
translationVolume 2 of 《紫微斗数全书》 lists a clause for each main star in each of the twelve palaces — 163 in all. All 163 are translated here, with the Chinese printed beside the English and the source linked on the same page, so the translation can be checked rather than trusted. The clauses are conditional ("庙旺有二人,不合,陷宫加杀只一人" — "Well placed, two, and they do not get on. Badly placed with malefics, only one"), and that structure is kept rather than resolved into a verdict. The 命宫 section is built differently, carrying verses for a man, a woman and a decade: the decade verses are omitted as belonging to a decade rather than the natal palace, and the verses that fix a woman's outcome as concubine, courtesan or maid are in the text and are not printed here as a reading about a living person. All 848 translations on this site — these 163 and the 114 from 《窮通寶鑑》 among them — are checked by machine against the passage they translate: every star, stem and transformation the source names must appear in the English, and the English may not name one the source does not. That check runs before every deploy (bin/audit-translations.py) and it currently passes with two documented exceptions, both one-character corruptions in the transcriptions themselves.
Volume 3, the sections about periods
n=8,160Volume 3 of 《紫微斗数全书》 is about time, and none of it was being used. Six sections now are. 论大限十年祸福何如 names five decade configurations; the engine checks which ones a period actually matches and prints the clause. 论行限分南北斗 splits the ten years — the northern dipper's stars read to the first five, the southern dipper's to the last — and which dipper a star belongs to is read out of the work itself by the fetch script rather than typed from memory. 论人生时要审的确 is the one that argues this site's premise: the 子 and 亥 hours are hardest to settle, and 若差讹则命不准矣 — if it is out, the chart is not accurate. A Ming text setting the requirement that any calculator hardcoding UTC+8 fails. It is shown on the 时辰-firmness card. Also 论羊陀迭并, 论二限太岁吉凶 and 论流年太岁吉凶星杀. Across 8,160 decades: quiet 25.7%, mixed 43.6%, opening 26.1%, guarded 23.4%, helpers present 45.3%, and 11.6% match nothing — where the text says nothing, nothing is shown.
淵海子平: the BaZi side finally has a text
extracted and translatedEvery sentence the Zi Wei side says about a person is quoted from 《紫微斗數全書》 and machine-checked against it. The BaZi side had one text, 《窮通寶鑑》, used only for 调候. 淵海子平 is the work the BaZi tradition actually argues from, and it is on Wikisource with a public revision history — the same provenance as 紫微斗數全書, and better than the community-edited transcription 窮通寶鑑 had to be taken from. All 73 sections are extracted. Of the ten labels this engine assigns, eight have a section of their own (食神, 伤官, 正财, 正官, 七杀, 印綬, 倒食, 劫财). Two do not: 比肩, which the work treats inside 论劫财, and 偏财, which it declines to separate — 论正财 says 大抵财不论偏正,皆喜印綬. Both absences are recorded rather than filled in. Clauses fixing a woman's outcome by her sex are cut on the same policy as the Zi Wei corpus: nine of them across six sections. Two headings in the transcription are written inline without being marked up — 论偏财 at the tail of 论正财, 论偏官 at the tail of 正官论 — so neither appears in the section list. Reading the list instead of the text had me record 偏财 as absent from the work, which was wrong, and would have filed half of 七杀's material under 正官.
Hidden stems: checked against 淵海子平's 藏遁歌
sets 12/12The hidden stems decide the day master's strength and are weighted 0.6 / 0.3 / 0.1 BY POSITION in the timeline, so both what a branch contains and which stem leads matter — and both came from lunar-typescript unchecked. 淵海子平's 又地支藏遁歌 lists the contents branch by branch, and the sets agree on all twelve. The order differs on five (丑, 辰, 巳, 未, 戌 — the mixed-qi branches) and it should: the 歌 is a mnemonic built to rhyme (丑癸辛金己土同), not a ranking. The library orders 本气 first, which is what the weighting needs. Taken as an order, the verse would have put the 0.6 on the wrong stem in five branches out of twelve.
The 卷一 treatises: quoted in full, none of it judged
eight, quoted not judged太微賦, 增補太微賦, 形性賦, 星垣論, 斗數發微論, 重補斗數彀率, 斗數準繩 and 女命骨髓赋 — the eight treatises, the aphoristic layer of the work and the seam the named formations came out of, now translated in full and shown at the foot of the chart. None of it is judged. Most of what they say states a relation this engine cannot check (主強賓弱可保無虞 — host strong and guest weak and there is nothing to fear), and only the twenty-seven whose rule can be stated exactly are implemented. They are there so a reader can see the part of the book we did not compute from. 重補斗數彀率 turns out to attest 泛水桃花 (貪狼居子乃為泛水桃花) independently of the section it was implemented from, which is a second witness for a formation that had one. 星垣論 is worth reading on its own: it is the only place in the work that explains WHY the stars sit where they do, in terms of the five phases and the directions — the closest this book comes to giving a reason. Two things about 女命骨髓赋 are worth stating. Its heading covers only its first ninety characters; after that the transcription runs a dozen further sections together whose headings it never marked up — the same defect as the two buried headings in 淵海子平, and a reminder that a section list is not a table of contents in either work. And we expected the gendered-fate policy to refuse a great deal of it. It refused three clauses out of 1,591 characters. The rest are outcome claims — poor, widowed, blessing not whole — which that policy has never cut and does not cut here. The prediction was wrong and the measurement is what settles it.
The short 卷三 sections, including what to do when nobody wrote the hour down
seven sectionsSeven more short 卷三 sections are translated: 论人生时安命吉凶, 定小儿生时诀, 论小儿命, 论小儿克亲, 论七杀重逢, 论阴骘延寿, 论命先贫后富. 定小儿生时诀 speaks directly to the flow on this site for people who do not know their birth time, where until now we could only say what we could not compute. The work has a method for exactly that case — the crown of the head (single at 子午卯酉, double at 辰戌丑未) and the way a newborn lies. It cannot be verified and nothing is cast from it. But a reader with a parent still alive to ask now has a question to ask them, which is more than "there is no way to know", so it sits in that flow with its nature stated. 论阴骘延寿 is worth noting on its own: the work says that a person who has done good may pass through an ill limit and not die. Even this book declines to treat its own ill verdicts as fixed.
The year-branch star table from 卷三
12 of 12论立命行限宫歌 keys a table to the branch the 太岁 lands on: a favourable list and an ill list for each of the twelve. The 流年 block already computes which palace the year falls on and which main stars sit there, so the two meet exactly, and the page can quote the work's verdict instead of only listing stars. Where the work qualifies an ill verdict with 减半论之 — read it at half weight — that is the work discounting its own verdict, part of the claim, and it is translated rather than dropped. The engine keeps a copy of the table so it has no file dependency at runtime, so every build compares that copy with the corpus branch by branch and star by star. It also checks that neither side of any branch is empty: 午, 酉 and 戌 parsed with no ill list at all until the section's other turn markers (若值, 如遇) were handled, and an empty side is the shape that failure takes.
接木 and 犯岁君: two rules that are not conventions
marked, not scoredThe decade and year ratings measure the pillars against your favourable elements on weights this page states as a convention. 《淵海子平》 has two rules that are not conventions at all, and neither was implemented. 论大运: the twelve branches fall into four directional triads, and a decade stepping from the last branch of one into the first of the next is 转角接木, a graft. The work both derives this from the four quarters AND lists the four corners outright — 丑交寅, 辰交巳, 未交申, 戌交亥 — so the two are checked against each other: the derivation produces exactly the four listed, and inside a triad (寅卯辰, 申酉戌, 亥子丑) the work says 皆非接木, which must not fire either. 论太岁吉凶 and 论征太岁: the day stem controlling the year stem is 犯岁君; the day pillar clashing the year pillar is 征; binding it is 晦. These ask a different question from whether the year's elements suit you, so they are marked and not scored — the work says whether they bring calamity turns on whether the chart holds a rescue (五行有救,其年反必招财), which is a judgement this engine does not make. All five timing sections translated and audited.
六亲: which character stands for whom
two mappings, as statedLabelling every stem with a 十神 and then saying nothing about people leaves out the layer that makes the labels useful. 《淵海子平》's 六亲总篇 maps them in a single paragraph: 正印 is the mother, 偏财 the father, 比肩 the brothers and sisters, 七杀 the son, 正官 the daughter. The year is the ancestors, the month the household you came from, the day the spouse and the self. The work gives a different mapping for a man's chart and a woman's and says so — 妇人命取六亲,与男命不同. Both are implemented as stated and the page says which is in use. One place we decline to speak for it: 正财 is the wife in the man's list and the women's list gives no replacement, so nothing is shown for it on a woman's chart. Carrying it over would be our inference, not the work's word. This is a Song text and its family is a Song family. Which character stands for whom is stated plainly and can be computed; what the work then says about that person is its verdict, translated and not endorsed.
The corpus stops here: a fourth work stays shut
three works, the fourth on a triggerThis site draws on three works: 《紫微斗數全書》, 《淵海子平》 and 《窮通寶鑑》. A fourth — 《三命通會》, the largest in the tradition — is untouched, and deliberately so. Opening a new work doubles both the corpus and the surface that has to be checked, and text has never been what this site is short of: 474 translations, 0 discrepancies, 19 build checks, and zero readers. A fourth source would thicken the half of the project that was never the constraint. When to revisit is written as a condition that can be checked rather than an intention: if three readers say the reading is not deep enough, the site's own stats page reports TRIGGER MET. A condition that lives only in a document is one nobody looks at.
The gendered-fate filter: one clause got through, and has been cut
two leaks, both closedThis site removes clauses that fix a woman's outcome as courtesan, maid or concubine BECAUSE she is a woman, from both source works, and records every removed clause in the corpus rather than discarding it quietly. Two clauses were getting through. Neither was a judgement call gone wrong; both were faults in the mechanism. First, 風塵 was not in the sensitive-word list. 卷一's 問紫微所主若何 runs 女人會帝座…若與桃花會,飄蕩落風塵 — a woman meeting the emperor's seat, and with 桃花, drifting into the demimonde — which is precisely the sentence this policy exists to refuse, and it was being SHOWN, on women's charts included, because no word in it matched. 風塵, 妓 and 煙花 are now on the list, still requiring a female subject within forty characters: 風塵 also means the dust of travel and a hard life, and cutting it everywhere would delete ordinary lines. Second, the filter measures distance from the female subject in CHARACTERS, so cutting one clause moves every clause after it and a single pass under-cuts. 先看月令,次看淺深 kept 娼妓之徒 on the first pass and dropped it on the second. It now runs to a fixed point. And a check was added that would have caught both: re-run the filter on what it kept, and if it would still cut anything, fail the build. That check found the second fault within seconds of the first being fixed.
The seven 女命 sections: not carried, and why
seven sections, none carried《淵海子平》 holds seven sections on women's charts — 论妇人总诀, 女命富贵贫贱篇, 女命总断歌, 女命贵格, 女命贱格, 滚浪桃花, 阴命赋 — some 2,521 characters. None of it is used here. This is not the 女命骨髓赋 case. There, three clauses out of 1,591 characters fixed a woman's outcome by her sex; the filter cut those three and the rest was translated like anything else. Here the objectionable claim IS the section: 女命贱格 is a list of twenty "base" configurations for a woman and nothing else, and 滚浪桃花 reads 伤官桃花,为妓女命. What is new on this page is only that the omission is now STATED. Until now these seven were passed over silently, and a silent omission is a different thing from a declared refusal — the sixty-odd Zi Wei formations this site declines, and 论天干地支暗藏总诀, are all named here with their reasons. The position is: not carried. Of the three available courses — leave them out, translate them as history and never apply them to a chart, or apply them as the work states — this site takes the first. Applying them would mean a woman casting her own chart being shown a computed verdict that it is a 贱格, a base pattern. That is not a thing this site will print about a person. Translating them as history is defensible and is not ruled out: it would need a place that shows the source and connects to no one's chart, and what this site is short of right now is readers, not text. It remains a small change to make if it is wanted. One measurement belongs in the record. The mechanism that removes gendered-fate clauses cuts NOTHING from these seven — 2,233 characters, 0.0%. It looks for a female subject and a status word near each other, and here the section is the gendering while the clauses are bare pattern names (女命贱格 reads 官杀混杂。官杀无制。杀星太重。). So "translate them and let the safeguard handle it" was never an available course, and anyone revisiting this should know that before they start.
Repetition used as a check: what the corpus keeps saying, and whether we do it
8 corroborated, 8 declined, 2 gaps closed35 sections of 《淵海子平》 remain untranslated — 38,263 characters, most of it the same method restated in a different verse form, which would add almost nothing to a reading. But many of those sections are independent of one another and say the same things, and agreement across independent sources is evidence. So the repetition is used as a check rather than as copy. The method: take those 35 sections and count the four-character phrases appearing in the most DISTINCT sections — once per section, so one wordy essay cannot manufacture a consensus. Anything appearing in four or more must be classified as either done or declined-with-a-reason. Anything unclassified fails the check, so a doctrine half the corpus agrees on can never sit here unnoticed. It found two real gaps. 官杀混杂 appears in seven sections and 伤官见官 in six — both stated more often than 日干为主 (four), which this engine was built on — and neither was detected at all. Both conditions are exact, two labels present together, so both were implemented. 财多身弱 appears in six sections and was NOT implemented: 多 has no threshold in any section that uses it. The 财 count and the strength verdict are both on the page already, and joining them into one claim would be our arithmetic, not the work's.
相心赋: the same question about a person, on a second axis
27 of 27 clauses, 12 keyed, 15 declined论性情 reads character off the day master's element. 相心赋 asks the same question along a different axis: the ten gods and the named day-pillar patterns — 官星愷悌…性优游而仁慈宽大, 魁罡性严有操持. Both are labels this engine has computed all along and never used for this, so the section keys onto a chart exactly. Seventeen of its twenty-seven clauses key onto something computed. Ten are declined with a reason each. Five of those ten used to be declined because they name a 格局 "this engine does not judge" — which was the engine's reason and not the work's. The 喜忌篇 and 三命通會 patterns are judged now, so those five key on. Of what remains: four state a condition with no threshold in it (火炎土燥 does not say how much Fire), and the rest open or close the piece. Every rule records the clause it came from, and the build checks that the label it keys on actually appears in that clause — the same discipline as the 无根 table.
Five sections read whole, computed not at all
five translated, none computed五行生剋赋, 神趣八法, 论疾病, 伤官说 and 格局生死引用 put no condition on a chart, so none of them is computed. They are translated in full and shown beside the Chinese with their citations. The reason for carrying them at all: what this site can compute is on the page anyway, and leaving out what it cannot would mean a reader only ever hears our summary of the work instead of reading it. 论疾病 carries an added warning. It is thirteenth-century medicine that keys organs to stems and diseases to elemental imbalance. It is reproduced and translated because trimming a corpus to taste is a form of falsifying it — but it is not applied to anyone's chart, and the page says outright that nothing in it should be used to judge a person's health.
无根: the work splits "weak" finely; we had one word for it
32 of 32 clauses, 28 ruled, 4 declinedThe engine has judged 身强 / 身弱 since its first build, and "weak" has been one word for one thing ever since. 淵海子平 does not treat it that way: 弃命从杀论 and 身弱论 together name thirty-two particular configurations, and 丙火申提,无根从杀 is not the same claim as 癸巳无根,火土重见. The conditions are exact — a day stem, sometimes a whole day pillar, a month command, whether a given branch appears, whether a given 十神 is in the chart, and whether the stem has a root — so they are computed. The consequences are not (水多转贵 says water in quantity turns it noble without saying how much), so they are quoted and never scored, the same footing as 接木 and 犯岁君. One definition needs stating: the 得地 test on this site counts a branch as rooting the day master if its hidden stems share the element OR produce it. 无根 in these two sections is the narrower thing — 印 is support, not a root — so it is computed separately rather than reusing the looser test. Twenty-eight of the thirty-two clauses became rules. Four did not: 弃命从财,须要会财 and its neighbours say how to READ the pattern rather than putting any condition on a chart. All four are listed with the reason. This is the second hand-written table in the engine and it gets no benefit of the doubt: every rule records the exact clause it came from, and each build checks that every character the rule tests for actually occurs in that clause. A rule that drifts from its text fails the build instead of quietly misreading charts — which is how the 己日逢杀 rule was caught testing for 七杀 in a clause that writes 杀.
A fourth source work: 《三命通會》
9 volumes, 344 sections, 1 drawn onThe first three works answer "is what we print true to a named text". This one is for a different question — "is what we print COMPLETE" — and the distinction is worth stating rather than blurring. This site judges no pattern from the month branch, shows no symbolic stars, computes no twelve life stages, no conception pillar, no BaZi 命宫, and does not show the clashes and harmonies among your own four pillars. The first three works either lack those or state them too loosely to compute. 《三命通會》, compiled by 萬民英 in 1578, is the compendium of this tradition and holds most of them. Taken so far: 卷二 论人元司事. Provenance is the same model as the other two Wikisource works — public revision history, one page per volume. 卷十 to 卷十二 are not carried there. If something turns out to live only in those, this site will not have it, and will say so rather than fill the gap from elsewhere. The corpus is 344 sections and 193,781 characters across nine volumes; only the sections actually drawn on go to the web host. Putting 700 KB of a Ming compendium on a shared server to serve one table is not a thing to do by accident.
日时断: 120 cells, and every chart lands on exactly one
120 of 120 cells, all translated《三命通會》 volumes eight and nine pair each of the ten day stems with each of the twelve hours: 120 sections, and every chart lands on exactly one. Nothing else in any of the four corpora keys onto a chart so directly. The whole grid is taken in and checked cell by cell: all 120 present, every day stem carrying all twelve hours, and each stem's twelve hours using each of the twelve branches exactly once. One thing has to be stated. The work's 120 combinations assume the hour stem follows the day stem by 五鼠遁. This site uses the 晚子时 convention — after 23:00 the hour advances into the next day's cycle while the day pillar has not rolled over — so a late-子 birth produces a day/hour pair that is NOT one of the 120. Measured at about 4% of charts. Those readers are told there is no cell for them rather than handed the passage for somebody else's hour, and the build asserts it: any chart without a cell must be a 子 hour, or it is a hole in the grid and the check fails. Since October 2026 those charts also give the other school's day pillar, a day starting with its Rat hour (Zi Chu Huan Ri, 子初换日) at 23:00, and can be recast that way in one click; cast so, the hour follows the day stem by 五鼠遁 and the work's cell is there. All 120 cells are now translated and audited. The audit is not a spot check: for every cell it compares the Chinese against the English term by term, and any stem, branch, ten-god or element the source names but the translation drops — or the translation names but the source does not — fails the build. That check caught six cells of this grid written from pattern rather than from the page, and they were redone from the source. Born between 11pm and midnight: which day is yours
合婚: two charts can be shown together, not scored
合婚: zero occurrences in four works"Are these two charts compatible" is among the most-used features in this category, and most calculators answer it with a score. This site cannot, and that needs stating rather than leaving as a gap. Across all four source works — 紫微斗數全書, 淵海子平, 窮通寶鑑 and all 193,781 characters of 三命通會 — the word 合婚 appears ZERO times. Not one section is about matching two people. So /compare shows only what is sourced: the clashes, harmonies and harms between the two sets of branches, computed by the same 卷二 rules a single chart already uses, and whether each chart holds the elements the other's day master wants, which is the 扶抑用神 already computed for each of them separately. What the branches do is a fact that can be calculated. What it means for two PEOPLE is the part no source supplies. A score would have to be invented, and an invented number about somebody's marriage is the worst thing this site could print. The space where a verdict would go is left empty, and says why.
流月: the site stopped at the year
twelve, cut at the termsCompeting apps go to the month and some to the day; this site stopped at the year. The months are added with no new convention — same scorer, same favourable and unfavourable elements, same five bands, one level down. Only one thing about them matters: the boundaries are SOLAR TERMS, not calendar months. A 寅 month begins at 立春, not on the first of anything. The build checks exactly that: all twelve month boundaries must fall between the 3rd and the 9th, because that is where solar terms fall. A boundary on the 1st would mean the months had been cut by the calendar — which is the error this site was built to correct in the first place.
Solar-term boundaries: the moment, not the local sun clock
year and month at the term's momentA year or month pillar changes at a solar term, and a term is a moment, which the almanac gives on the Beijing clock (UTC+8). So the birth is converted to that clock, using the offset actually in force at the birthplace on that date, and compared there. The day and hour pillars stay the birthplace's own, by true solar time. Until 12 October 2026 this site set the birthplace's true solar time against the Beijing-time table, as if every birthplace kept Beijing time. A birth soon after a term got the month before; at the Start of Spring (Li Chun, 立春), the year before. Measured over 20,000 random births from 1950 to 2009: 0.20% of Kuala Lumpur charts had the wrong month pillar and 0.035% the wrong year; Singapore 0.16% and 0.015%; New York 1.76% and 0.13%. The build now checks eight births either side of the Start of Spring in three cities. Your sign by the Start of Spring, to the minute
胎元, 命宫, 小运: three standard readings, all absent until now
three, two checked against worked examplesAll three are on every BaZi chart and this site had none of them. All three are now computed from 《三命通會》卷二, and two of the sections work an example themselves, which is what the build checks against. 论胎元 takes the day three hundred days before birth. Three hundred days is five full sixty-cycles, so that day carries the same 干支 as the birth day — 甲子日生便以甲子为受胎之日,盖五六计三百日 — and what is taken from it is the month it fell in. This is NOT the rule most apps use: they take the month stem forward one and the branch forward three, which is a different claim from a different source. This site follows the work it cites and says on the page that the two differ. 论坐命官 counts the lunar month backward from 子 and then walks forward with the hour until it reaches 卯. The section works one case — 三月生人得戌时 … 即命坐卯宫是也 — and that example is the build check. 论小运 gives the method it calls fixed and unalterable: a man starts at 丙寅 and runs forward, a woman at 壬申 and runs back, one pillar a year. The same section gives a second method (醉醒子's, starting from the hour pillar) and endorses it — 尝试用之,屡验 — and this site does NOT use it. Its direction rule does not resolve: 逆顺亦以年定 sits beside 阴命阳年逆行亦然, and using it would mean choosing a reading on the work's behalf. The refusal is stated rather than left as a silent omission.
神煞: others show twenty to forty, this site showed none
twenty-two, each placement statedThis was the single largest gap between this site and anything else in the category, and it was not an oversight. The first three source works either omit the symbolic stars or state them too loosely to place, and this site does not print what it cannot cite, so it printed none. 《三命通會》卷三 gives each one a section, and the twenty-two whose placement rule is exact are now computed: 天乙贵人, 驿马, 空亡, 将星, 华盖, 咸池, 孤辰, 寡宿, 金舆, 劫煞, 亡神, 灾煞, 月德, 羊刃, 六厄, 德, 秀, 三奇, 元辰, 破碎, 天罗地网 and 天福贵人. Twenty-two is a count of star NAMES, and it is worth saying which count it is, because the honest number depends on what is being counted. 天罗 and 地网 are two names from one section and one rule; 三奇 is one section carrying three competing traditions. Counting sections gives twenty-one, which is why the derivation ledger has twenty-one entries and not twenty-two. Neither number is wrong and neither is obvious, so both are computed by bin/claims.py and this page is checked against them rather than stating a figure someone typed. The last four came from reading 总论诸神煞, the work's own survey of the category — and the first thing that survey does is disown most of it: 神煞,古有百二十名,其说穿凿支离,造化恐不如是. A hundred and twenty names, their explanations forced and fragmentary, and the making of things is probably not like that. It then names thirteen it calls 切要, essential: 羊刃, 空亡, 劫煞, 灾煞, 大煞, 元辰, 勾绞, 咸池, 破碎, 罗网, 冲击, 天空悬针 and 平头倒戈. The mismatch is worth stating: this site selected on whether a placement rule is exact, which is a different criterion, and only nine of the work's own thirteen are here. 元辰, 破碎 and 罗网 were three of the missing and are now placed; the remainder are stated too loosely to compute and stay declined. 元辰 is gendered — 阳男阴女,在冲前一位支辰;阴男阳女,在冲后一位支辰 — and the section rejects the ungendered jingle outright as 不足凭也. 破碎 is the strongest new check here: the section gives the table AND the 先天数 arithmetic behind it (子午之数各九,卯酉各六,总为三十,自子顺行,极三十而见巳), so the build regenerates the table from the arithmetic instead of trusting the list, the way 天乙贵人 is done. 天罗地网 carries a restriction easy to read past — 火命人有天罗,水、土命人有地网,余金木二命无之 — so it keys on the year 纳音, not the branches alone; where the 纳音 is unavailable the engine reports it unplaceable rather than quietly omitting it. The survey ends by refusing to let any of them be read mechanically: 吉凶神煞,不可拘定;轻重较量,要在通变, with 子平's line beside it — 君子格中,也犯七煞阳刃;小人命内,亦有正印官星. That sentence is on the chart page, not only here. And each star now carries how often it fires, measured over a uniform sweep of 34,560 charts across both sexes — both, because 元辰 is placed differently for men and women and a single-sex sweep would report half its true rate. Seven of the twenty-two land on more than forty percent of charts; 德 lands on two in three. A star most people have is not a distinction, and printed bare it reads as one. This was added because the same fault had just been found one block down the page: 印怕财 fires on nine charts in ten and was given a rate, while 德 sat above it at sixty-six percent with none. The measured rate is the work's own warning made arithmetic rather than merely quoted. 三奇 is the one where the section reports COMPETING traditions and settles between none — 乙丙丁 from 《珞琭子》, 甲戊庚 from 《玉霄宝鉴》, 辛壬癸 from 《太乙经》 — so all three sets are recognised and each names the authority it comes from rather than one being picked as correct. 将星 is the middle of the year branch's triad and 华盖 the storehouse it ends on (三合中位 / 三合底处); 咸池 is listed outright; 孤辰 and 寡宿 sit one step past and one step before the year branch's directional group; 金舆 is two branches past the day stem's 禄, with 甲禄在寅,辰为金舆 as the work's own worked example. The check on 天乙贵人 is the strongest available anywhere in this corpus. The section states the table once directly — 甲阳木、戊阳土、庚阳金,皆喜土位 … 所以牛羊为贵, putting 甲, 戊 and 庚 in 丑 and 未 — and then states it AGAIN by different reasoning, through the six harmonies: 天乙在贵神六合上,如甲戊庚在子午. Take the 六合 partner of each branch in the second statement and the first table comes back, for all ten stems. One table, stated twice by two routes, so the build derives each from the other rather than trusting either. 驿马 comes from the year branch's triad (寅午戌生人,马在申). 空亡 is derived rather than tabulated: ten stems against twelve branches leave two branches per run of ten with no stem to take them, and the work's own worked example — 甲子 … 所以无戌亥 — is what the build checks against. 劫煞 and 亡神 come from one rule each — 劫在五行绝处,亡在五行临官 — and 亡神 is cross-derived: 临官 is the 禄, which 论十干禄 states outright (甲禄寅, 壬禄亥), so two sections give one answer and the build checks both. 灾煞 is whatever clashes the general's star, which the clash rule already computes; the rule is imported from natal-relations.js rather than restated, because two copies of one rule is how they drift apart. 羊刃 is one branch past the 禄 — but only for the five YANG stems, and getting that wrong is worth describing. 论羊刃 states 羊刃常居禄前一辰 and then names a 正位 for eight of the ten stems, yin ones included: 辰者,乙之正位 … 未者,丁之正位 … 戌者,辛之正位. This engine read those as blades and placed a 羊刃 for every stem. The same section denies it in its closing lines — 子平以甲丙戊庚壬五阳干有刃,乙丁巳辛癸五阴干无刃 — and the distinction is that 正位 is the extreme position, which every stem has, while 刃 is what that position becomes for a yang stem only. It ran wrong on 15.3% of charts, measured across all 12,960,000 sexagenary combinations. (The restriction clause writes 乙丁巳辛癸, with 巳 for 己 — the same glyph corruption described below; 卷六 论阳刃 writes it clean.) A glyph corruption runs through this whole work and was found while checking these: 已 (already), 己 (the Earth stem) and 巳 (the branch) differ by a single stroke, and the transcription confuses all three — 已土 for 己土, 建已 for 建巳, and 已酉丑 for the 巳酉丑 triad (fifteen times) and 乙已 for 乙巳 (eight more). Corrected only where the string is unambiguous, counted, and reported on every run; 已 alone genuinely means "already" throughout and a blanket replacement would corrupt the text the other way. One of them was invisible at first because the wikitext wraps lines mid-phrase, so the corruption spanned a newline and the correction silently did not match — the whitespace is collapsed before matching now. On 空亡 no verdict is attached, because the work explicitly refuses one: 空而有实,亡而有存,所以未可便为凶论. Every other symbolic star whose placement is loosely stated is declined, on the same footing as the sixty-odd Zi Wei formations and 论天干地支暗藏总诀. And one limit worth repeating: 卷十 to 卷十二 are not on Wikisource, so anything living only there cannot be sourced from this edition and will be reported as unavailable rather than filled in.
杂气: the four storehouse months, whose 喜忌 run backwards
the four storehouses, namedA 辰, 戌, 丑 or 未 month was being handled exactly like a 子 or 午 month — take the revealed stem, else the principal qi. Not wrong, but it dropped both the name the work gives the case and the 喜忌 that come with it, which run backwards from the usual ones. 《三命通會》卷六〈论杂气〉 makes it its own category: 杂气者,乃辰戌丑未 … 四库各藏三件,乃天地不正之气,故以杂言也 — the four storehouses each hold three things, which is the unaligned qi of heaven and earth, and that is why it is called mixed. And then: 此格喜透露冲刑,忌压伏. An ordinary month command must not be clashed — 月令提纲不可冲,十冲九命皆为凶 — but the same section says 惟有财官逢墓库,运行到此反成功. A vault is locked, and something has to break it open. The section lists what each storehouse holds (辰 乙戊癸, 戌 辛戊丁, 丑 癸辛己, 未 丁己乙) and the build checks that list against this engine's own 藏干 table: two independently sourced statements of the same twelve stems, agreeing on all four sets, differing only in order because the section is not ranking them. Then the part worth the most. 《淵海子平》's 先看月令,次看淺深 says the same thing from a different book: 辰戌丑未,四土之神。人元三用,透旺為真, and 財官臨庫,不沖不發. This site has always preferred a revealed stem over the principal qi on the authority of one section, 〈论正官〉; there are now two works saying it independently. The same section also partitions the twelve branches as 四土 / 四生 / 四敗 — which is the identical partition 〈论暗金的煞〉 uses as 四季 / 四孟 / 四仲 while placing 破碎. Same three groups, two works, two vocabularies, and the build now checks one against the other rather than keeping two copies of one structure side by side. And 〈论建禄〉 is candid about its own category being a late arrival: 建禄旧无格,近亦取以月支 — 建禄 anciently was not a pattern at all. It also places 建禄 in one family with the blade — 阳刃、比肩、败财、建禄,名虽不同,实一家同气之神,在地支者曰刃、曰禄,在天干者曰比、曰劫 — which is the same 卷六 neighbourhood that supplied the 羊刃 restriction above.
Same chart, different lives: the work refutes itself
卷六, self-refutingThe best passage in this corpus is the one where the work refutes itself. 十干十二年生大贵人例 lists, for each of the ten year stems, a single year-month-day-hour combination, and claims that only that one day and hour produces 大贵人 — a person who founds an enterprise and serves the age. The author then tests it. 考历代创业之君,乃明朝诸帝,无一合者: he checked the founding rulers of the dynasties, and the emperors of the Ming, and not one of them matches. And then the argument from scale — 天下之大,兆民之众,如此年月日时生者,岂无其人?然未必皆大贵人: the world is large and the people many, so of course others are born at those hours, and they are not all great men. What follows is a run of named counterexamples, pairs of people he knew of who share a chart and did not share a life. 黄懋官 and 申价: one died in the fighting, one died in his bed. 朱衡 and 李庭龙: one rose to Minister, one stopped at a provincial post and did not live long. 万き and 饶才: one took the higher degree and had few sons, the other stopped lower and had many. Then the two university men, born the same year, month, day and hour, who passed together and took posts near each other so they could compare fortunes. One died. The other, settling his affairs, asked him to explain it, and dreamt the answer: 我生于富贵,享用过当,故死,公生于寒微,未得享用,故活 — I was born to wealth and used my portion up, you were born to hardship and have not yet spent yours. It ends by turning the whole thing on the reader: 若曰我命该富贵长寿,而不修德进学,骄恣不法 — if a man says his destiny is wealth and long life, and so does not cultivate virtue or learning, but is arrogant and lawless… This is a sixteenth-century compiler performing empirical falsification on a table in his own book, with named cases. It is not carried here as decoration. Every verdict this site prints should be read through it.
Eighty-three charts worked by hand: the one check that tests a conclusion
83 charts, a conclusion checkedEvery check in this repository verifies a RULE against a CLAUSE: the engine computes something and the build confirms the source says it. None verified a conclusion. 《子平真詮》 carries 83 worked charts through its chapters — four pillars each, most with a name, each with a sentence saying what it is. Those are answers a Qing author worked by hand, and running them through the engine is the only check here that tests a conclusion rather than a citation. It was built wrong twice and both are worth recording, because each looked convincing. First, comparing each chart against its CHAPTER HEADING. A chapter on 伤官 teaches 伤官用财 and 化伤为财, so its examples are frequently not 伤官 patterns; that version reported nine failures, and checking three by hand showed the engine agreeing with what the chapter says of each chart — 化伤为财, 弃财就煞, 以丙制伤而官清. Second, comparing against the sentence beside the chart. Better, but for about half of them that sentence is only 某某命是也 — this is so-and-so's chart — and the pattern was named a paragraph earlier. The classification lives in the discourse, not in adjacent text, and no string match recovers it. So the check asserts what is sound: all 83 must cast, all 83 must yield a pattern — a null would mean a chart a Qing author classified confidently is one this engine cannot classify at all — and where the surrounding analysis does name a god, the engine must agree. The rest are kept in the corpus for a person to read rather than quietly scored.
All four 用神 methods, and the two that rest on commentary
four of four, two on commentaryThere are four routes to the 用神: 扶抑, 調候, 通關 and 病藥. This site computed the first two and carried the other two as quotations — not because the fetching had fallen short, but because the canonical texts state only the principle. 《滴天髓》 gives 通關 twenty characters: 关内有织女,关外有牛郎,此关若通也,相邀入洞房. 《五言独步》 gives 病藥 one line: 有病方为贵,无伤不是奇. Each names the idea and supplies no mechanism. The mechanisms are in later works. 《滴天髓闡微》 (任鐵樵, Qing) gives it in its 原注: 木土而要火,火金而要土,土水而要金,金木而要水 — two elements in a controlling relation, and the bridge is the element the controller produces which in turn produces the controlled. The 原注 names four of the five pairs; the fifth, Water against Fire with Wood between, follows the same construction and is declared in the derivation ledger as derived. 《神峰通考》 (張楠, Ming) defines both terms — 何以为之病?原八字中原所害之神也;何以为之药?…得一字以去之 — and names two configurations: using wealth and seeing a 比肩, remedied by officer or 杀; using 食 or 伤 and seeing an 印, remedied by wealth. This site computes those two and does not generalise to the other patterns. The four fears in 《三命通會》 name which god harms which; naming the REMEDY is what this work adds, and it adds it twice. On 通關 the chart shows only the pass that is NOT open. A chart holding all five elements has every controlling pair already bridged — measured at 4.5 pairs per chart across 5,760 — and that is a fact about the five phases, not about anyone. A missing bridge is 22.3% of charts, and it is the case 任氏 writes about: 倘原局无印,必须岁运逢印. One thing has to be stated plainly. These two methods rest on COMMENTARY, not on the canonical five. This site now holds all five texts, and these mechanisms are outside them, so they are kept in their own corpus and their own block rather than mixed into the canon.
子平真詮 31–46: sixteen chapters, one pair for each of the ten patterns
91 ruled, 16 declined卷八 governs an entire class in one sentence: 财官印食,此用神之善而顺用之者也. Every 正财 chart in the world got that same line and nothing else. 沈孝瞻 then spends sixteen chapters saying the rest — a pair for each pattern, the first naming the configurations it can take and how each is graded, the second saying which decades suit each configuration. 91 configurations are ruled here and 16 declined, each with its reason. All ten patterns are covered: whatever the month command gives, there is a chapter for it. He gives a worked chart for most of them, and every one of those is cast by this engine on every build and must fire the rule it is the example for — 47 of 47 do. That is the most falsifiable check on this site: it tests a judgement rather than a citation, against answers a Qing author worked by hand. Three things have to be said plainly. First, 相碍 — two things getting in each other's way — is read here as standing adjacent at the stem heads. 沈 explains it twice, once as 隔 (separated by an intervening stem, so no) and once as 相合 (bound, so yes), and the first attempt tested the union of the two. That called 丁与壬隔以戊己,两不碍 a case of 相碍 — a chart he grades noble — because 丁 and 壬 do bind. Binding is not a second test; it is what interference looks like when the two are adjacent, and among the three open stem heads only year and month have nothing between them. All six of his worked charts on the point agree, and the build asserts it. Second, where he grades by whether the day master is the strong or the weak side, that requirement is PRINTED rather than enforced. He weighs it his own way and does not show the working; this engine uses 三看, and on the worked charts where he states a verdict the two agree three times out of six. His own 卷六 is titled 论十干得时不旺失时不弱 — in season is not necessarily strong, out of season not necessarily weak — which is an argument against the seasonal leg of 三看 directly. So both readings are shown and neither stands in for the other. Third, a 劫财 chart is not one thing. 卷四十五 joins 建禄 and 月劫 into a single chapter, but the BLADE has its own, 卷四十三, and the two are read on opposite principles: 他格以煞能伤身,故喜制伏,忌财印;阳刃用之,则赖以制刃,不怕伤身,故反喜财印,忌制伏也 — every other pattern shuns wealth and the 印 feeding a 七杀, and the blade wants exactly that, because here the 七杀 is what holds the blade down rather than what attacks the self. Which chapter applies turns on whether the month branch IS the day master's blade. 禄前一位,惟五阳有之 — the five yin stems have no blade at all, so their 劫财 charts stay with 卷四十五.
How much of the corpus is used: 678 sections and cells, counted
69% keyed, 100% keyed or accounted forThis site has always said what it judges and never said how much it does not. Counted section by section across the six corpora — 678 sections and cells (窮通寶鑑 has no sections, so its grid cells are the unit) — 69% of the corpus is keyed, meaning a clause of it is quoted in the engine or the page. 100% is keyed or accounted for: the difference is sections that are deliberately not judged with the reason recorded, like 卷三's 266 aphorisms, every one quoted and classified and not one of them keyed. Nothing is untouched. That does NOT mean everything is implemented: 69% is keyed and 31% is accounted for — every section named, sized, its opening quoted, and a reason recorded for not keying it. Most of that 31% is 三命通會 prose that states nothing this engine computes independently, so there is no falsifier to key it against; a few sections are read as corroborating a rule already taken from another work, and one is the 卷四十八 appendix by a later hand. The figure is computed by bin/coverage.py, not estimated, and it has been wrong in our favour four times. Its first version counted a section as accounted for if its heading appeared anywhere in the repository, which counted sections as dealt with because they were listed in an index and inflated the number by a third. The second version asked for the heading to appear beside a recorded reason, but matched the bare English word "why" — so 爱憎赋 and ten other sections counted as accounted for because a code comment happened to contain it. It now requires the PHP key a decline is actually recorded under. The third was self-reference. The "code" it searches included research/*-lookup.json, the data files uploaded to the web host — and one of those carried the full text of 37 sections while the site printed exactly one of them. Nothing read the other 36; they matched themselves. Dropping the unprinted copies took the figure from 71% to 68%, which is what it had always been. Separately, five sections were marked in the ledger as readable, keyable and not done. Relabelling them to reach 100% was tried and rejected by test/corpus-ledger.php, which re-derives every class from the section text. All five are now keyed, each with its own gate. The fourth: a heading counted as named when it sat inside a longer heading — 论小儿 inside 论小儿命, 论金 inside 论金神, 论地支 inside 论地支属相. Longer headings are now set aside before the test, which moved 淵海子平's 论小儿 to untouched until it was decided; it is now declined, in the row on children's charts below.
三命通會 论疾病: the correspondence tables kept, the diagnoses not applied to anyone
52 cells kept, the diagnoses declinedThis section is two things. The first is five 歌诀 that are pure correspondence tables: 甲胆乙肝丙小肠 maps the ten stems onto organs, 甲头乙顶丙肩求 maps them onto the body, two more do the twelve branches and a fifth the eight trigrams — 52 cells, the same kind of statement as 甲 is wood or 子 is water. Those are carried as reference. The second is diagnosis: 诸风晕掉、眼光日昏……属肝家甲乙寅卯木受亏主病故也, and then configuration by configuration — 甲乙见庚辛申酉多者,内主肝胆惊悸、劳瘵. That reads a chart and tells the person which illnesses they have. None of it is applied to any chart here, and not because it cannot be computed — it can, easily, which is the reason. A birth date is not a diagnosis. Telling someone their chart indicates coughing blood is a medical claim wearing a citation, and the person most likely to be harmed is someone unwell enough to be searching. The build checks two things about that refusal: the lines it declines are still in the corpus, so it is not refusing something that has gone; and the five tables are not referenced from the page layer or from the caster at all. If anyone ever starts printing a reader's organ from their day stem, the build fails and the refusal has to be rewritten in the same commit. The same kind of decision as the gendered-fate clauses in bin/gendered.py: a decline on what this site will say, not on what the engine can derive.
淵海子平 and 三命通會 on children's charts (论小儿): not applied to anyone
two sections, declinedBoth works have a section on reading a baby's chart, and both read it for three things: dying young (土命,天阴,不过十五岁死 — an Earth child born under a cloudy sky will not live past fifteen), being born to a concubine or given away (见财多,必庶出螟蛉), and harming the parents. 淵海子平 ends with two real children's charts, one of whom died in the eleventh month of the year of birth. None of it is applied to any chart here, and not because it cannot be computed — heavy wealth and a weak day master are tests this engine already runs for adults. The only people who would put a newborn's birth time into a form are its parents, and telling them their child will die young or bring them harm is the worst thing this site could print. A birth hour corrected to the minute does not make it safer. 紫微斗數全書's two children's sections, 论小儿命 and 论小儿克亲, are translated (above) and are not applied either. The build checks that the declined lines are still in the corpus, that each is too short to count as keying its section, and that nothing in the pages or the caster refers to them. The same kind of decision as 论疾病's diagnoses and the gendered-fate clauses: a decline on what this site will say, not on what the engine can derive.
卷三 论诸星同垣: 266 aphorisms, none keyed, and the reason is checkable
brightness 160/163; aphorisms 266, none keyedThis section has two halves. The first is a brightness table per star, which this site has checked for a long time — and which was a third short while reporting itself complete. It held 13 of the 20 stars the section tabulates: both 文 stars and all four 煞 have tables here and none was being read, and 贪狼 was recorded as having no table at all when the corpus simply spells the name 贪狠. The comparison also walked the major stars only, so the minors could not have been reached even once added. Both fixed: checkable cells go from 118 to 163, the library agrees on all 45 newly reachable ones, and the three old disagreements stand. Four of the tables also close with 无陷 — this star is never dim anywhere — which is a claim about twelve branches from a table listing five or six, so it is checked separately. The second half is 266 aphorisms and this site keys none of them. A generator was written for the 39 that name both stars and a branch; spot-checking fourteen found six materially wrong, all from three ambiguities: 同 is both the star 天同 and the word for together (紫府同临巳亥 is two stars, read as three), 子 is both the branch and the word for children (必当子贵), and the corpus writes 戍 for the branch 戌 in some clauses while 丙戌 appears as a pillar elsewhere. Six wrong in fourteen is not a parser that needs work; it is a section that has to be read line by line by a person. So the predicates were thrown away and the ACCOUNTING kept: all 266 classified (147 name stars but not where, 63 turn on a quantity, 39 name stars and a branch, 17 are formations already judged), every clause verified against the corpus character by character. The build also re-checks that those three ambiguities are still real in the corpus, so if it is ever cleaned up the excuse expires instead of going stale on this page.
子平真詮 47: one canonical text calling another's patterns worthless
nine rejected, seven corroborated, one half-rejectedThis site judges 26 BaZi patterns, most from 喜忌篇 and 三命通會. 沈孝瞻 devotes 卷四十七 to the same ground and does two things to it. First, it rejects 9 of them by name: 若夫拱禄、拱贵、趋乾、归禄、夹戌、鼠贵、骑龙、日贵、日德、富禄、魁罡、食神时墓、两干不杂、干支一气、五行具足之类,一切无理之格,既置勿取 — patterns with no reason in them; set them aside and do not take them. Nine of the fifteen he lists are patterns this engine reports: 拱禄, 拱贵, 趋乾, 归禄, 鼠贵, 骑龙, 日贵, 日德 and 魁罡. This site does not adjudicate between two canonical works — but where a reader's chart fires one of those nine, his dismissal is printed beside it rather than left in a source file. Second, it states 7 of them independently — 井栏, 刑合, 合禄, 朝阳, 遥合, 弃命从财, 弃命从煞 — which turns seven patterns held on a single citation each into seven held on two. But his versions carry DISQUALIFYING conditions the couplets do not: 井栏 is void 若透丙丁,有巳午, 弃命从煞 is void 若有伤食,则煞受制而不从. Those are testable, and where one applies the page says so on that chart: by 沈 it is not this pattern, by the other work it is, and both stand. One more he half-rejects — 子遥巳, 此格可废,因罗御史命,聊复存之: it may be discarded, and is kept only on the strength of one worked chart. The build runs his own worked charts against his own conditions. Five of six pass. The sixth contradicts him: his chart for 弃命保财 — 庚申 乙酉 丙申 乙丑 — carries 乙 at both the month and the hour, and 乙 is 正印 to a 丙 self, which is exactly what the sentence before it forbids. The rescue offered is 乙从庚化,不作印论, but that comes from 卷四十八, which is headed 附 and cites 《滴天髓征义》 — a Republican-era work, a later hand, not 沈. The contradiction is reported rather than smoothed over.
子平真詮: the fifth text — what to do with a pattern once it is named
the fifth of fiveAll five canonical texts are now held. This one matters most, because for a long time this site could name a pattern and then say nothing about it. It would print 正财格 or 伤官格 and stop — and what to do with the pattern is the part a practitioner actually works with. 卷八〈论用神〉 is the chapter that says. 财官印食,此用神之善而顺用之者也;煞伤劫刃,用神之不善而逆用之者也 — four gods are auspicious and are used FORWARD, protected and supported; four are not, and are used IN REVERSE, controlled and converted. It then gives one clause for each of the eight, naming what it wants and what it shuns. Wealth likes a 食神 to produce it. The officer likes wealth showing. The 七煞 likes a 食神 to hold it down and shuns wealth or 印 feeding it. And the 阳刃 likes officer or 煞 to hold it down and 忌官煞之俱无 — shuns having NEITHER, where the fault is an absence rather than a presence, which is the only rule of this shape in the corpus. The chart now prints those wants and shuns against what it actually contains, and does not grade the result: the chapter grades by 配合得宜, whether the fit is apt, and aptness is a weighing this engine declines — the same line it declines in 官煞去留杂论. One sentence from 〈论四吉神能破格〉 deserves reading against the whole site: 吉凶喜忌,全在是否合于需要,不因名称而有分别也 — fortune and misfortune lie entirely in whether a thing meets the need, not in its name. The same chapter restates the four fears carried here from 《三命通會》卷五 — 官忌食伤,财畏比劫,印惧财破,食畏印夺 — two works, independently, in the same words. The base text is 沈孝瞻's, from suanzhun, not Xu Lewu's 《評注》 (a 1930s commentary, which that site keeps at a separate path and which is not read here). One fault in the copy is worth recording. 〈论阴阳生克〉 runs on into three thousand characters of 滴天髓 and another work's stem-and-branch verses. The site does label the join — 附《滴天髓》之七天干篇 — but the label sits at the END of the genuine chapter rather than the head of the appendix, so anything reading to the foot of the page takes another book as part of this one. The fetcher stops on any chapter running past four times its neighbours.
滴天髓: the fourth canonical text, 2,173 characters
the fourth of fiveThere are five canonical BaZi texts — 《淵海子平》, 《三命通會》, 《窮通寶鑑》, 《滴天髓》 and 《子平真詮》. This site had three. It now has four. It is a verse work: 63 topics, 2,173 characters for the whole base text, 通关 in twenty characters and 衰旺 in seventeen. Too compressed to compute from, and that is not a failing of the reading. Its value is that a dozen rules this site held on ONE citation each are stated again by a different author in a different form. 体用 gives 要在扶之抑之得其宜 — the 扶抑 rule this site picks favourable elements by. 月令 gives 人元为用事之神 — the 人元司事 schedule. 官杀 gives 官杀混杂来问我,有可有不可 and 伤官 gives 可见不可见, which is the case for grading those two configurations rather than reading them as verdicts, and is why this site now does. 八格 gives 杂气财官不可拘, carried beside the 杂气 doctrine rather than left out of it. And 通关 gives the principle of the third 用神 method in twenty characters of metaphor — the Weaving Maid inside the pass and the Herdboy outside — which names the idea and supplies no mechanism, so it is quoted and not computed. The base text comes from suanzhun's plain-text copy. Wikisource also carries this work and was rejected: it interleaves a commentator's annotations with the verse and carries template damage, and counted naively it comes to 13,747 characters, of which the great majority is commentary. In prose an interpolation at least reads differently from the text around it; in a verse of seventeen characters it does not. 《滴天髓闡微》, the commentary, is a separate work and is not carried here.
五言独步: 628 characters, three of which land on rules already running
one computable, one a textual variantThe 24 couplets of 《淵海子平·五言独步》 sat untranslated. The opening one is the whole of 病藥用神: 有病方为贵,无伤不是奇;格中如去病,财禄两相随 — only where there is a disease is it noble; without an injury it is nothing remarkable; take the disease out of the pattern and wealth and 禄 follow together. That doctrine is usually credited to 《神峰通考》 (Ming, 张楠), which is later. The source is here. This site does not hold 《神峰通考》, so the principle is carried and no method is built on it: a complete 病藥用神 needs that work, and saying so is more honest than assembling one out of two books that each supply half. One couplet is directly computable: 二子不冲午;二寅不冲申 — two 子 do not clash 午, two 寅 do not clash 申. A doubled branch spares the clash. This engine had clashed regardless. Measured across 17,280 charts, <strong>7.5% carried a clash the couplet says does not happen</strong> — and in every one of those charts it was the only clash, so the correction is the difference between a chart with a clash and a chart with none. The couplet goes eight characters and the code goes further in two directions, both now declared in the derivation ledger as its weakest warrant. It names two of the six clash pairs and states a condition rather than a list, so it is applied to all six. And it doubles the branch it names FIRST — two 子 against one 午 — while the code spares the clash whichever side is doubled. That second one was nearly shipped undeclared: the first chart pulled up to check the feature was 庚子 壬午 己卯 庚午, which is spared by the direction the couplet does not state. And one couplet is quoted back by 《三命通會》卷六〈论建禄〉 with a single character different: 惟喜茂财<strong>元</strong> there, 惟喜茂财<strong>源</strong> here. Both readings are kept as each work has them, and the build fails if either changes or if the two ever collapse into agreement.
十神: the site labelled them and cited nothing
the names, the four fears, and the way out十神 is the entire vocabulary both works speak in. This site labels all ten on every chart and had never quoted a single line about any of them — the largest hole in a site whose claim is that what it prints has a source. 《三命通會》卷五〈论古人立印食官财名义〉 is where the ten names come from: 生我者,有父母之义,故立名印绶 — what produces me has the sense of a parent, hence the name 印绶, the seal and the ribbon. 我生者,有子孙之义,故立名食神; 克我者,我受制于人之义,故立名官煞; 我克者,是人受制于我之义,故立名妻财. On the officer it is bleak and worth quoting whole: 官者,官也;煞者,害也 — the court gives a man office, his body belongs to the state, it sends him into fire and water and he does not refuse, and it ends only when the coffin lid closes. That is the office harming him. The same section states four warnings in a single clause: 官怕伤,被伤则祸;财怕劫,被劫则分;印怕财,贪财则坏;食怕枭,逢枭则夺. The first is 伤官见官, already here on a different citation; the other three were not detected at all and now are. With one thing said plainly beside them: 印怕财 lands on nine charts in ten. Two of the ten gods are 印 and two are 财, and across eight stems and their hidden stems at least one of each is close to certain — that is a fact about the vocabulary, not about anyone's chart. So each configuration is printed with how often it fires, measured over a uniform sweep of 34,560 charts. And 〈官煞去留杂论〉 is entirely about what to do once 官 and 煞 both stand in a chart, which this site had never said anything about. Four routes, exactly stated: 五阳日食神,能去煞,又能留官;五阳日伤官,但能去官,不能留煞,必须得羊刃合 — and for a yin day, 五阴日食神,能去煞却不能留官,日主自能留之;五阴日伤官,能去官又能留煞. The chart page now says which of those routes it has the pieces for, and does not say which to use: the section opens by demanding a weighing — 要详柱中官煞孰重孰轻 — and weighing is a judgement this engine declines. It also forces a correction. The section says 若两停俱有扶合,而无破害,即是官煞混杂 and 去留不清,乃为混杂: mixing is when the removal cannot be made cleanly, not simply both labels being present. The 官杀混杂 mark this site prints tests for both labels present, which is broader and weaker, and is why it lands on half of all charts. The mark is not narrowed — that would need 孰重孰轻, the weighing this engine declines — but it is now GRADED, because which of the two shows is not a weighing, it is a fact about the chart. Both standing at stem heads is the case the section has no instruction for: 去留不清,乃为混杂. That is 5.2% of charts. One of them hidden is the case it does have an instruction for — 当以明者用之,藏者舍之, take the one that shows and set aside the one hidden — and the chart now names which one that is. That is 41.7%. Together they make the 46.9% the bare mark fires on, which is how a label meaning that both are somewhere in your chart came to read as a finding.
What this page says about itself
twenty-two self-descriptive figures, all computedThis site's whole claim is that what it prints can be checked. The numbers it printed about ITSELF were the one thing nothing checked, and they had drifted exactly as you would expect. It said 474 translations; there were 595. It said 19 build checks; tables.js alone carried 315 assertions. The header comment on the 神煞 module said three were computed, which stopped being true at the eighteen-star build and is now twenty-two. None of those were typos. They were numbers nobody computed. bin/claims.py now computes every figure this site states about itself and fails the build — and blocks the deploy — when the page and the repository disagree. It governs only quantities this repository can compute. The hundreds of other numbers on this page are quotations, dates, percentages and figures from the source works, and it has no business touching them; the ones it governs are the ones where drift is silent and certain. Where a quantity is genuinely ambiguous the page has to say which count it means. 天罗 and 地网 are two names from one section and one rule; 三奇 is one section carrying three traditions. By names that is twenty-two, by sections twenty-one. Neither is wrong, neither is obvious, and a bare number would just freeze an arbitrary choice — so both are computed and the page is checked against both.
The derivation ledger: how far a rule is allowed to reach
twenty-three rules, every extension warrantedMost rules here are DERIVED: the source states a method, the code works it out, and a build check verifies the result against the cases the section spells out. That has a blind spot, and 羊刃 fell into it. 论羊刃 states 羊刃常居禄前一辰 and then names four positions — 卯者,甲之正位 … 午者,丙之正位 … 酉者,庚之正位 … 子者,壬之正位. The check verified those four and passed. The code applied the rule to all ten stems. Nothing ever compared the four the section spells out against the ten the code serves. The same section denies five of them a blade outright — 子平以甲丙戊庚壬五阳干有刃,乙丁巳辛癸五阴干无刃 — so the engine placed a star on 15.3% of charts that its own cited section says does not exist there. Verifying what a source SAYS is not the same as verifying what the code assumes past the end of it. So every derived rule now declares two domains: the one the section states it over, and the one the code applies it to. Where the second is larger, the entry must carry a warrant — <em>closed</em>, the stated cases already cover the whole domain; <em>generative</em>, the section states a rule rather than a list and licenses working it out, with the licensing clause quoted; or <em>restricted</em>, the source narrows the rule and the code follows, with the restricting clause quoted. A rule applied beyond its stated domain with no warrant fails the build. So does a warrant whose quoted clause is not actually in the section it credits, and so does a rule whose real behaviour disagrees with the domain it declares — the ledger is checked against the corpus and against the code, not just against itself. Twenty-three rules are on it. It exists because the check that would have caught 羊刃 did not, and the next one of these should be loud.
旺相休囚死: where each element stands in your season
all five seasons matchThis site reports whether your day master is strong or weak and never said the simpler thing underneath it: what the season is doing to all five elements. Every BaZi app shows this; this one did not. The rule is stated plainly in 《三命通會》卷二: what rules the season thrives (旺); what it produces rises (相); what produced it rests (休); what the rising element controls is imprisoned (囚); and what the ruler controls is dead (死). The rule was read from the spring-Wood paragraph alone and used to derive the other four seasons, which the work sets out independently — and all five match. That makes it a check rather than a restatement: misread the rule and three of the five seasons come out wrong. 囚 is the trap. The text derives it as 火能克金 — what the RISING element controls, not what controls the ruler. Read backwards it swaps two of the five states and nothing on the page would look wrong. One thing NOT done: the same section names the twelve life stages (长生, 沐浴, 冠带 …) but does not place them per stem. Placements appear scattered elsewhere in the work (甲长生亥, 庚长生巳, 辛长生子), and completing all ten would mean deriving the rest from 阳生阴死 ourselves. That derivation would be our claim, so the twelve-stage table is not built until a source states it whole.
刑冲合害: what your own four pillars do to each other
six sections, every rule checkedThis site has always measured a luck period against the natal branches and never shown what the four pillars do to ONE ANOTHER, and 三刑 — the three punishments — was not computed at all. Both are standard on any BaZi chart and were simply absent here. Every rule comes from 《三命通會》卷二 and is checked against its own passage on each build. 论冲击 states 地支取七位为冲, seven positions along, so the six clashes are derived rather than typed. 论六害 gives the six harms. 论三刑 gives three named groups — 无礼之刑, 无恩之刑, 恃势之刑 — plus four self-punishments (辰, 午, 酉, 亥). 论十干合 gives five stem binds, each with a name; 论十干化气 gives what each bind transforms into (甲己化土 and its four fellows); and 论支元三合 gives the four frames, which need ALL THREE branches — the section refuses a partial one outright (若三字缺一则化不成局), so the two-of-three half frame many readings use is not shown. Measured: a complete frame occurs in about 10% of charts. The check found something while running: eleven of the twelve punishment pairs are written 某刑某, and one is not — the 寅午戌 group runs 则寅巳午见午自刑, with the 刑 missing from 寅巳. The pair is stated plainly, only the character is absent, so both forms are accepted and the quirk is recorded rather than papered over. What is shown is that a relation holds, not what it means. The work says a great deal about the person who carries each one, at length; the sections are linked so that can be read where it stands.
月令格局: the classification the whole method starts from
all 120 pairs namedIn this tradition a chart is read by first asking what KIND of chart it is — officer, seven-killings, wealth, resource, output — and that is taken from the month branch. This site did not have it. It judged six rare day-pillar cases (阳刃, 日刃, 日贵, 日德, 魁罡, 金神) and skipped the question every practitioner opens with. The rule is stated in 《三命通會》卷五 论正官: 正官先看月令,然后方看其余 … 故只此月令为正,余格例此 — look first at the month command and then the rest; only the month command is the true one, and the other patterns follow this same example. So the pattern is the 十神 relation between the day master and what the month branch holds; a hidden stem that also stands openly at a stem head is taken first, which the work names 支藏干透; otherwise the principal qi. Where the month command is the day master's own element there is no pattern to take, and the work names 建禄 or 月劫 rather than forcing one. Checked on every build across all 120 day-stem by month-branch pairs: every pair yields a name, and not one self-element month is forced into an ordinary pattern. The name only, with no verdict attached. The work says a great deal about what each pattern wants and dislikes, and that is a further layer rather than a sentence. One thing stated because it would otherwise look like an omission: the same section lists which month is 正气 for each of the ten day stems, and that list is carried VERBATIM rather than derived. The officer star's 禄 appears in all ten entries, but 乙巳, 辛寅, 壬未丑 and 癸辰戌 follow no rule the text states, and every rule tried against them over-generated somewhere else. A table stated outright does not need a derivation invented for it — the invented rule would be our claim, not the work's.
人元司事: which hidden stem held office the day you were born
12 of 12 months, 30 days eachThe stems hidden in a branch are a fixed set; which of them holds office is not — it moves with the day. 三命通會 卷二 论人元司事 gives the day counts for all twelve months: in a 寅 month, the Earth of 艮 for five days, 丙 Fire for five, 甲 Wood for twenty. Born two days after 芒种 and one stem rules; born nine days after and another does. This site had no such layer. Every month sums to thirty days, and the build checks that month by month rather than taking our word for it. It did not at first: 未 and 丑 came to twelve days, because the transcription writes 已土 for 己土 — 已, 己 and 巳 differ by a stroke and the passage confuses all three. The corruption is recorded in the corpus, not quietly corrected. Shown, never scored. The 藏干 here come from 淵海子平's 地支藏遁歌 and are what strength is built on, and the two works do not fully agree: 寅, 巳 and 申 differ only in listing order; 子, 丑, 卯, 辰, 未, 酉 and 戌 give the same elements with opposite polarity; 午 and 亥 differ in the elements themselves. Swapping the table would change the reading on nine of twelve month branches, and there is no basis here for calling either work wrong — so both are shown and neither is merged into the other.
论天干地支暗藏总诀: translatable, not computable
unusable in that work, supplied by anotherThis site takes hidden stems as fixed per branch. 论天干地支暗藏总诀 describes a finer layer: which hidden stem holds the command after each solar term, and for how many days — 立春念三丙火用,餘日甲木旺提纲. Implemented, it would shift the strength verdict for anyone born near a term boundary. It is the one remaining section that would change arithmetic rather than add prose. It is not implemented, and the reason is arithmetic. Of the twenty-four solar terms, two (雨水 and 秋分) are absent from the verse entirely; six more name a stem with no day count at all; and eight of the remaining counts do not add up to a fifteen-day term. Only eight of twenty-four are complete and self-consistent. To compute it we would have to supply the day counts for two thirds of the year ourselves — our arithmetic wearing the work's name, which is the one thing this site does not do. So it is translated and shown and simply not used. The judgement is asserted in the build rather than described: if this transcription is ever repaired, the check fails, and the decision gets revisited instead of a stale refusal sitting on this page. UPDATE: the refusal has been lifted, and not by loosening it. 《三命通會》卷二〈论人元司事〉 states the same doctrine complete — twelve months, every one summing to thirty days — so the site now computes it from that work instead. This row stays because the refusal was correct when it was made and the reasoning still applies to 淵海子平: a defective passage is not repaired by wanting it to work.
论性情: the BaZi side finally says what kind of person
29 pieces, 0 discrepanciesThe BaZi side could say what every label IS and who each character stands for, and never what sort of person the chart described — the Zi Wei side has had that since the star characters. 《淵海子平》's 论性情 is the counterpart, and it is three tables: one passage per element (each with a 太过 and a 不及 clause), one verse for each of the ten stems, one for each of the twelve branches. A chart takes one row from each: the day master's element, the day stem, and the month branch — the branch table names the month command itself (月支子水占魁名, 隆冬建丑). Which of 太过 and 不及 to read is not our choice. The section closes by saying it: 且如日干弱,则退缩怕羞;日干强,则妄诞,执一自傲。以上自以轻重言之,万无一失 — the above is all spoken by weight, and the weight is the strength of the day stem, which this engine already decides. So one clause is shown rather than both left for the reader to pick between. The work reads an element off a person's face and frame — a bluish-white colour, a low nose, a lopsided face — and that is kept as it stands rather than smoothed over, and not treated as evidence: translated, not endorsed. All 29 pieces audited word by word, no discrepancies.
BaZi patterns: six, and the rates prove the reading
six, 5 of 5 on their arithmeticThe Zi Wei side has judged 27 named formations for a long time; the BaZi side had none. 淵海子平 states six whose rule is exact — 阳刃, 日刃, 日贵, 日德, 魁罡, 金神 — and those six are judged. The rest (论时墓, 论拱禄 and others) are loosely stated or turn on things this engine does not compute, and are declined on the same footing as the sixty-odd Zi Wei formations we decline. Five of the six are lists of day or hour pillars out of the sixty 甲子, so the firing rate is known before any code runs: three pillars predicts 5%, four predicts 6.67%, five predicts 8.33%. Measured over 34,560 charts: 日刃 4.90%, 日贵 6.63%, 日德 8.37%, 魁罡 6.67%, 金神 5.00%. That is not just a statistic, it is a check on the READING — a rule applied as written lands on its arithmetic, and one loosened or mistyped does not. It runs on every build. One more thing worth stating: 庚辰 appears in the work's list of five 日德 days AND in its list of four 魁罡 days, while 论日德 says 日德不喜见魁罡. That is a contradiction in the work, not a misreading of it; both are shown with the tension named, on the roughly one chart in sixty where it arises.
十神: derived, not tabulated — and the readings are not sourced yet
computed and sourcedA BaZi chart is read as what each character is TO the day master: what it controls is 财, what controls it is 官杀, what produces it is 印, what matches it is 比劫, what it produces is 食伤 — same polarity 偏, opposite polarity 正. This site never computed them. It printed 甲寅 without saying that the 甲 is this person's 财, which leaves out the layer the system is actually read with. They are derived from production, control and polarity rather than copied from a table: a 10×10 grid is a hundred chances to mistype. The build checks the derivation against a property a mistyped table cannot satisfy — every row contains all ten exactly once, and control is antisymmetric. What sits under each label is now 《淵海子平》 itself, translated sentence by sentence and machine-checked against the Chinese by the same audit that covers the Zi Wei corpus. Nine of the ten have a section of their own; 比肩 does not — the work handles it inside 论劫财 — and that is recorded rather than filled in from elsewhere.
Star placement: checked against the work itself, 14 of 16 exact
14 of 16 exactEvery star position on this site once came from iztro. That was the right call — one implementation, differentially tested against a competitor — but it left the most load-bearing thing on the page as the least verified: if 擎羊 were a palace out, the malefic pressure, the decade conditions, the formation rules and half the readings would be wrong together, and every test would still pass because they all read the same wrong number. 卷二 安身命例 states the casting rules in full, so there is a second, independent implementation written from that section alone (engine/src/placement-spec.js) and run against iztro over 1,920 charts. What SHIPS is now a third: src/engine/Ziwei.php, written from the same section, computing all sixty-six stars, the twelve palaces, 五行局, 长生十二神, 博士十二神, 大限, 庙旺 and 四化 itself. iztro has stepped back to being the build-time check — hundreds of charts compared palace by palace and star by star on every build, and one disagreement fails it. The thing that was replaced is the thing that checks the replacement. Fourteen placements reproduce EXACTLY: 命宫, 身宫, 禄存, 擎羊, 陀罗, 天马, 左辅, 右弼, 文昌, 文曲, 地劫, 天空, 火星, 铃星. Two do not, and both reasons are recorded rather than smoothed. 天钺 for 丙 and 丁: the transcription reads 猪狗 (亥戌) where every modern table reads 猪鸡 (亥酉) — and the same four-line verse has 免 for 兔, so this transcription demonstrably drops strokes; we follow the library. 天魁/天钺 for 辛: the verse names the pair 寅午 but not which is which, so the assignment is conventional; we follow the library. One naming note worth having: the 天空 that 卷二 places from the hour is what iztro calls 地空 — they agree on 100% of charts. iztro also has a star named 天空, placed from the year branch by a later convention. It is a different star with the same name, and the 六煞 on this site use 地空, which is the work's 天空.
昼生 / 夜生: the real sun, not a split of the clock
computed, not conventional卷三 论诸星同垣 attaches a condition to 日照雷门 that the 骨髓赋 line does not state — it wants a birth by day — and a night-birth condition to 月朗天门. Everywhere else this is implemented by splitting the clock at a fixed 时辰, which is a convention. This site already computes true solar time from the birth place's coordinates and the offset actually in force, so the condition can be answered literally: was the sun above the horizon there, at that moment. Sunrise and sunset use the standard -0.833° horizon, which includes refraction and the solar radius. Adding it took 日照雷门 from 0.86% to 0.42% and 月朗天门 from 0.86% to 0.41%, re-measured over the same 34,560 charts. A birth within thirty minutes of sunrise or sunset is flagged on the page: a few minutes of error would flip it, and that should not be stated as settled.
Brightness: three cells where the work and the library differ
115/118Nearly every star this site prints carries a 庙/旺/利/陷, and the malefic block, the decade conditions and the formation rules all read it. There is no mnemonic to derive it from, so this one table is taken from the library — extracted from iztro by a build step (src/engine/ziwei-brightness.php) rather than retyped, so bumping the library rewrites it instead of silently disagreeing with it. None of it had ever been checked against a text. 卷三 论诸星同垣各司所宜 states its own table star by star, so it can be. Of the 118 star-and-branch cells the work states and a chart can reach, iztro agrees on 115. The three it does not: 天机 at 辰 (work 旺, library 利), 七杀 at 酉 (work 旺, library 庙), 太阴 at 酉 (work 旺, library 不). About 28% of charts land on one of them, and when yours does the page shows both values instead of settling it. The three are pinned in the build check, so a fourth fails the build rather than appearing quietly. Note the work's table is PARTIAL — five to twelve branches per star, and 贪狼 has no table in this section — so a cell it does not state means the text is silent, not that it agrees.
Volume 1: what the auxiliary and malefic stars are
all 34 sectionsSince the malefics module was written this site has computed 六煞 on every chart and printed 禄存, 昌曲, 左右 and 魁钺, while saying nothing about what any of those stars IS. Volume 1 answers that star by star in its 問X所主若何 sections — 34 of them. All 34 are now translated — the twenty auxiliary and malefic stars, and the fourteen main ones that until now had only my own summary behind them and shown where the star is named: the six malefics in the malefic block, the four transformations inside the working of each 四化 card. Thirteen of the sections carry a clause fixing a woman's outcome as concubine, courtesan, maid or unchaste. Those are cut from the Chinese as well as the English, on the same footing as everywhere else here, and the page says so where it happens; the full text is at the source.
The 十二支所忌 table: the only one typed in by hand
hand-entered, re-checked every build卷三 论大小限星辰过十二宫遇十二支所忌诀 is a table keyed by birth-year branch: a 子-born person avoids 寅 and 申; a 辰-born person avoids 辰 (the heaven-net) and 戌 (the earth-net); a 申-born person avoids 火星 and 铃星, and so on for all twelve. The rule is stated exactly, so it is checked: it flags about one decade in four and one year in four. This is the only whole table in the engine typed in by hand. Star positions are computed here now, but each of them is DERIVED from a mnemonic in 卷二; this one has no mnemonic to derive from and can only be transcribed. So every build re-checks it against the section itself: each branch must have a rule, each rule must quote a clause that actually appears in the text, and every branch or star a rule names must appear in its own clause.
流年 and the lesser limit
n=2,880卷三 论二限太岁吉凶 sets the order: judge the greater limit, the lesser limit and the year separately, then against each other. We compute the greater limit and the year — the 太岁 lands on the palace whose branch matches the year's — and pair them. The lesser limit (小限) used to be left out, on the grounds that the lineages disagree about its placement and implementing one would mean picking a school without telling you. That reason was ours and not the work's. 卷三 安小限诀 states the rule outright, in a titled section: 不论阴阳男俱顺数,不论阴阳女俱逆数;寅午戌人起辰宫,申子辰人自戌宫,巳酉丑人起未宫,亥卯未人起丑宫 — the same footing as 安身命例, which this site has always followed. It is now placed, and every palace carries the ages that land on it. The year's 流禄, 流羊 and 流陀 are the natal 禄存 rule (禄存 by the year stem, 擎羊 one palace forward, 陀罗 one back) taken from the flowing year's stem instead — no second table was needed — and that rule is re-checked over 40 years on every build. That makes exactly one interaction computable: 羊陀迭并, which 卷三 defines with a worked example. It fires on 13.8% of 2,880 sampled years — about one year in seven. The work marks it as a year to watch and does not call it a disaster, and neither do we.
大限 carries no rating
facts onlyThe BaZi decades carry a band because they can be scored against your favourable elements, which is derivable. A 大限 has no equivalent: whether a decade on 七杀 is good depends on the whole chart, and stamping a number on it would dress a judgement as a calculation. So the 大限 table states facts only — which palace, which main stars, which calendar years, what age — plus the 入限 verses from 卷二 in Chinese and English. The starting age comes from the 五行局 and the direction from 阴阳男女 — both derivable — and every build re-checks 42 charts against that rule in engine/test/tables.js. Two verses have their closing lines removed in both languages, where the text fixes a woman's outcome in that decade as death or death in childbirth — same footing as the 命宫 verses, and the page says so where it happens.
We sit on the Southern side (三合派)
lineage choiceThe tradition splits roughly two ways: the Southern side reads star character and formations, the Northern side reads the four transformations flying between palaces. We place 禄存, 擎羊 and 陀罗 and judge formations from them — the 飞星 school does not use those three at all. So this is a Southern chart. Related: 羊陀 are placed once from the birth year and not re-placed for each decade.
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 text is quoted, not adjudicated
quoted, not scoredThere are two methods for finding the 用神. 扶抑 (support-and-restrain) reads the day master's strength, can be derived and checked, and is what the timeline scores against. 调候 reads the climate of the birth month — Wood born in winter needs Fire, Wood born in summer needs Water — and comes from 《窮通寶鑑》. This page used to say we did not have that text. We do now, so the chart page quotes the opening principle for your cell (day stem × month) with its citation. We do not score against it, and where the two methods conflict we do not choose — precedence is a lineage position. Of the 120 cells, 114 are usable: 戊 in the 11th and 12th months is missing from the transcription we have, and four more open straight into a conditional branch, which is one case among many rather than the rule. The transcription is ctext.org's open wiki text: the underlying Ming work is long out of copyright, but anyone can edit that transcription and it is not an authoritative edition. The page says so wherever it quotes it.
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. Exactly one interaction between malefics is now modelled — 羊陀迭并, because 卷三 defines it with a worked example. The rest (how malefics act on each other, and how auxiliary stars mitigate them) is still not.
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.
Whether the system works at all
our positionZi Wei Dou Shu and BaZi are symbolic systems several centuries old. No controlled evidence shows they predict anything, and we offer none — which belongs stated plainly rather than buried in a disclaimer. The one thing we are accountable for is narrower: if you are going to use this system, the arithmetic should at least be right. The readings are the system's own, applied identically to every chart, and never written vaguely enough to fit whoever is reading.
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.
Say something back
Every reading here traces to a named text, and that much a machine can check. Whether any of it reads well is not something a machine can check — only a person can. If a passage made no sense, or read badly, or sounded like nonsense, say so plainly.
This form does not carry your birth details. What is stored is your message, whatever contact you chose to give, the page path with everything after the question mark cut off, and a visitor hash whose salt rotates daily — nothing tied to a chart, and nothing reversible to a person.