Solar terms and the month pillar: the boundary is an instant, not a date
Which boundaries these are
There are 24 solar terms; BaZi uses the twelve jie as month boundaries. Each begins a month branch:
| Jie | Starts month branch | Approx. Gregorian date |
|---|---|---|
| 立春 Lichun | 寅 (yin) | 4–5 Feb — also the year boundary |
| 惊蛰 Jingzhe | 卯 (mao) | 5–6 Mar |
| 清明 Qingming | 辰 (chen) | 4–5 Apr |
| 立夏 Lixia | 巳 (si) | 5–6 May |
| 芒种 Mangzhong | 午 (wu) | 5–6 Jun |
| 小暑 Xiaoshu | 未 (wei) | 7–8 Jul |
| 立秋 Liqiu | 申 (shen) | 7–8 Aug |
| 白露 Bailu | 酉 (you) | 7–8 Sep |
| 寒露 Hanlu | 戌 (xu) | 8–9 Oct |
| 立冬 Lidong | 亥 (hai) | 7–8 Nov |
| 大雪 Daxue | 子 (zi) | 7–8 Dec |
| 小寒 Xiaohan | 丑 (chou) | 5–6 Jan |
Because the dates shift by a day either way, treating them as calendar dates produces charts that disagree with an instant-based calculation for births within about a day of the term — and the year pillar flips at Lichun, not on 1 January and not on Lunar New Year.
Worked: Lichun 1990 falls at 10:14
Take three births on 4 February 1990, differing only in which two-hour slot they fall in:
| Slot (computed at midpoint) | Four pillars |
|---|---|
| 辰 slot (07:30) — before 10:14 | 己巳 丁丑 庚子 庚辰 |
| 巳 slot (09:30) — still before 10:14 | 己巳 丁丑 庚子 辛巳 |
| 午 slot (11:30) — after 10:14 | 庚午 戊寅 庚子 壬午 |
The day pillar is identical in all three; the year and month pillars differ, because 10:14 sits between the 09:30 and 11:30 midpoints. That is the whole effect: the boundary is an instant inside a day, not the day itself.
“But my birth time is a two-hour slot”
This site takes birth time as one of thirteen slots and computes at the slot midpoint (HH:30). When a solar-term instant lands inside the slot you picked, the chart reflects the midpoint — so if you were born within an hour of the term, the other side of that slot may apply to you. The calculator does not pick for you: it shows the alternative chart alongside the primary one.
How exact is “exact”?
We compared every jie instant from 1900 to 2100 (2,412 boundaries) between the calendar library the engine uses and an independent astronomical computation: mean difference 12.7 s, maximum 62.4 s. That is the gap between two models, not the error of either — both depend on extrapolated Earth rotation, so read it as “the two agree to within about a minute”.
Frequently asked questions
Does the month pillar change at midnight on the solar term date?
No. It changes at the astronomical instant, which can be any time of day — 10:14 on 4 February 1990, for example. A birth at 09:00 that day still belongs to the previous month pillar.
Why do two calculators give different month pillars for the same birth?
Almost always a boundary convention: one uses the exact instant, another assigns the whole date, or they resolve the term in different time zones. The difference is arithmetic, not interpretation.
Does the year pillar change at Lunar New Year?
Not in the mainstream convention this site follows. The year changes at the exact instant of Lichun. Between Lichun and Lunar New Year — about thirteen days in some years — a birth belongs to the new BaZi year but the old lunar year.
What if I was born within minutes of a solar term?
The engine cannot resolve it, because the input is a two-hour slot rather than a minute. Check both neighbouring slots; if their charts differ, that difference is the uncertainty to carry forward.
Recompute it yourself
The same engine is published as yilibazi-core on npm (MIT), with source on GitHub — conventions exported as constants, and an ambiguityReport() that returns the alternative chart whenever a convention would change the answer. The stated rules and the known gaps are in the method page.