School Dispute Register v1
Where the tradition disagrees with itself — presented side by side, without voting.
Engine version 0.1.0 · opened 2026-10-10 · living document, entries added as they are collated against sources.
ruleset_id).
Why a dispute register at all
Feng shui is not one system but a family of lineages (門派). Different schools legitimately compute different charts from the same input — different year-pillar boundaries, different escape rules, different derivation chains. Software that hides this produces confident-looking output that quietly takes a side the user never chose. This register exists so that (a) practitioners can see exactly which convention our output follows, and (b) students can see that the disagreement is in the tradition, not a bug.
D-01 · Year-pillar boundary: Lichun 立春 vs. Lunar New Year 正月初一 both shipped
| Convention | Rule | Used by |
|---|---|---|
| Lichun (solar) | Year pillar flips at the exact instant of Lichun ( solar longitude 315°) | BaZi practitioners; most four-pillar software defaults |
| Lunar New Year (civil) | Year pillar flips at the first day of the first lunar month | Folk almanacs (通書); some lineage practice |
In 195 of 200 years (1900–2100) the two boundaries fall on different days — so the same birth moment can yield a different year pillar (and through it, different month stems) depending on convention. The engine computes both; the selection is an explicit request parameter, and the accuracy report quantifies the boundary behavior of each.
D-02 · Month-stem base for the Five-Tigers escape 五虎遁 disclosed divergence from mainstream
Given the month branch (fixed by solar terms), the month stem is derived from a year stem via the Five-Tigers escape (五虎遁年起月訣). The open question: which year stem?
| Position | Rule | Who |
|---|---|---|
| Escape from the Lichun-based year stem | Month stem always follows the solar-year stem, regardless of the user's year-pillar convention | lunar-javascript, sxtwl (Shouxing calendar) — the de-facto software baseline |
| Escape from the selected convention's year stem | If the user chose Lunar-New-Year year pillars, the month stem follows that civil year's stem | fengshui.engine (our default output) |
Where this is visible: only on days after Lichun but before Lunar New Year (the New Year's Eve window), under the Lunar-New-Year convention. Our differential test against lunar-javascript found exactly 213 of 9,100 samples in this class — every one explained by this single convention, zero unexplained. Status: we currently couple the month stem to the selected year convention; mainstream tools do not. We are collating classical sources (the escape rhyme's own wording ties stems to solar year starts) and expect to either align with the mainstream or document why the coupled reading is defensible. Until then, this page serves as the disclosure.
D-03 · Tigua (replacement-star) rule for the remaining 12 mountains 替卦 · 坤壬乙訣 both shipped
The Kun-Ren-Yi rhyme (坤壬乙訣) gives replacement stars for only 12 of the 24 mountains. For the remaining 12 (子丑寅卯巳午丁未庚酉戌乾), literature offers two readings that produce different flying-star charts:
| Variant | Value for the 12 mountains | Reading |
|---|---|---|
OwnTrigramNumber (our default) | The mountain's own trigram number | Makes Tigua meaningful for all 24 mountains; the 12 resolve to their own palace star — self-consistent |
YunPanStar | The star reaching the palace in the period chart | Literal reading of "take the star that replaces the mountain entering the center" |
Both variants are implemented; the selected one is recorded in ruleset_id. Attempts to close this against original texts have so far failed on source availability (two candidate sources unreachable); the entry stays open until then.
D-04 · Eight Mansions A/B derivations 八宅 unresolved — both figures shown
The Two derivations of the Eight Mansions star allocation — the verse method (歌訣法) and the yao-transformation method (爻變法) — do not fully agree. Two internal figures exist in our source documentation and have not been reconciled:
- 32 of 64 hexagrams agree between the verse and yao-transformation derivations (from the rule-collation table);
- a later independent reimplementation comparison reported 8 of 8 house trigrams agreeing between the two methods — most plausibly because both implementations shared an unverified common source.
Status: unresolved by design. Until the two derivations are checked character-by-character against the classical sources (《卜居秘髓》《陽宅大全》), we present both figures and mark the question open. The engine exposes the derivation method explicitly rather than silently choosing.
D-05 · Day-boundary: midnight vs. 23:00 早晚子時 both shipped
Whether the day pillar flips at civil midnight or at 23:00 (the "early/late Zi hour" question (早晚子時)) changes the day pillar — and through the Five Rats escape, the hour stem — for births between 23:00 and 01:00. Both conventions have real lineage support. The engine implements both (midnight / at23) as an explicit parameter; 1,600 dedicated boundary samples in our differential suite verify both paths against the reference implementation.
D-06 · Lower/upper trigram and Tigua angle thresholds 下卦/替卦 unified
Texts place the "off-grid" boundary (where a compass reading stops yielding a normal chart and triggers Tigua) anywhere from 3° to 6°. Our implementation uses the unified reading: lower-trigram zone ±4.5° around each mountain center (9° total), Tigua zone 4.5°–7.5° on each side. Historical documents containing 3°/6° variants are recorded in our errata-adjacent notes; we standardize on one reading and state it.
D-07 · Switch granularity at solar-term boundaries: date vs. instant 交節日 vs 交節時刻 disclosed divergence from mainstream
When does the year/month pillar actually flip on the boundary day itself? Two answers coexist:
| Position | Rule | Who |
|---|---|---|
| Date-granularity | The pillar flips at 00:00 of the solar-term date — the whole day belongs to the new month/year | sxtwl (Shouxing calendar) and most practitioner paipan software; civil almanac convention |
| Instant-granularity | The pillar flips at the exact solar-term instant — a birth at 05:11 on Lichun day is still the old year until the instant passes | Classical BaZi practice; fengshui.engine's default |
Measured footprint: in a 9,500-sample differential against sxtwl (industry baseline), 3,620 samples diverged — every single one inside this window (a few hours on 12 boundary days per year); zero divergences anywhere else. Notably, sxtwl's switch dates and our computed term instants agree on all 2,400 term days in 1901–2100 — the disagreement is purely about what happens during the boundary day. Status: both readings have textual support; we default to instant-granularity (BaZi practice) and disclose the alternative here.
Engine-level divergences (not school disputes)
Second-level differences in astronomical instants between independent implementations (3 new moons and 5 term dates vs. Hong Kong Observatory within 5.3/12 min of midnight across 1901–2100; Lichun instants ≤ 38 s vs. lunar-javascript) are tracked on the accuracy report, not here — they are measurement questions, not lineage questions.
How entries get closed
An entry moves from unresolved to closed only when the relevant classical sources have been obtained and collated character-by-character, with the citation recorded. Practitioner review is welcome — disagreements with sources are exactly what this page is for.