Saju vs Bazi: what actually differs?

The short, honest version — from the code, not folklore.

The short answer

Almost nothing in the arithmetic. Saju (사주, Korean) and Bazi (八字, Chinese) name the same chart — four pillars, eight characters, built from the year, month, day and hour you were born. Korea inherited the system from China centuries ago and gave it a Korean name; the pillars themselves are computed the same way either side of the border. In Bokki's code there is exactly one function, getFourPillars(), and it has no “tradition” argument. Ask it for Seoul or for Beijing and it runs the identical steps. What genuinely changes between the two is not the formula — it is how far your birthplace sits from the meridian your country keeps clock time by, and that turns out to matter more than the label on the chart.

One function, not two traditions

getFourPillars(birthDate, birthTime, placeId) takes a date, a clock time, and a place — never a tradition. Every pillar it returns comes from the same Julian-Day arithmetic and the same 24 solar terms (절기) for the month boundary and 立春 for the year boundary, whether the birthplace is Seoul or Beijing. Pick two cities and for most birth minutes the year, month and day pillars come out identical: for a birth at 07:25 on 20 March 1995, Seoul and Beijing both give 乙亥 年 · 己卯 月 · 庚戌 日. The hour pillar is the one that moves most often — but it is not the only one that can. All four boundaries are read at the birthplace, so all four can split between two cities. The day turns at true solar midnight, and on 20 March 1995 Seoul's falls 18 minutes after Beijing's, so a birth that day between 00:22 and 00:39 is 己酉 日 in Seoul and 庚戌 日 in Beijing. The month and year turn at the solar-term boundaries (節) — single instants that each city reads on its own clock. 立春 1995 sits at 15:12:51 on the almanac's own UTC+8 table, which is 16:12:51 in Seoul, so on 4 February 1995 every clock reading from 15:13 to 16:12 is already past the boundary in Beijing but not yet past it in Seoul: a Seoul birth is 甲戌 年 · 丁丑 月 where a Beijing birth is 乙亥 年 · 戊寅 月.

Where it genuinely diverges — true solar time

The hour pillar uses apparent solar time at the birthplace, not the clock: your longitude against the timezone meridian, plus the equation of time. Korea keeps time on the 135°E meridian even though the country sits at 126–129°E, so the correction is a steady −32 to −40 minutes almost everywhere. China keeps one time zone on the 120°E meridian, close to its populous eastern coast, so the correction there is usually much smaller: our own PLACES table gives Seoul −40 minutes and Beijing −22 minutes for the same date. That gap is large enough to flip an hour branch. Run the same clock time, 07:25 on 20 March 1995, through Bokki twice: born in Seoul, the corrected time is 06:45, before the 07:00 boundary, giving hour pillar 己卯; born in Beijing, it is 07:03, after the boundary, giving 庚辰. Same formula, same clock time, different city — different hour pillar.

Same clock time, two cities, two different hour pillarsA birth at 07:25 on 20 March 1995, run through Bokki's getFourPillars() twice with no other change but the birthplace. In Seoul (126.98°E, standard meridian 135°E) the true solar time correction is −40 minutes, moving the time to 06:45 — before the 07:00 boundary between 卯 and 辰 — so the hour pillar is 己卯. In Beijing (116.4°E, standard meridian 120°E) the correction is only −22 minutes, to 07:03 — after the boundary — so the hour pillar is 庚辰. The year, month and day pillars (乙亥·己卯·庚戌) are identical for both cities at this minute — but not at every minute, because all four boundaries are read at the birthplace. On this same date a birth between 00:22 and 00:39 is day pillar 己酉 in Seoul and 庚戌 in Beijing, and at 立春 that year — 15:12:51 on the almanac's own UTC+8 table, so every clock reading from 15:13 to 16:12 on 4 February 1995 — the year pillar splits 甲戌 in Seoul, 乙亥 in Beijing.07:00Seoul · 126.98°E · UTC+9卯辰07:25 clock-40min → 06:45 true solar己卯Beijing · 116.4°E · UTC+8卯辰07:25 clock-22min → 07:03 true solar庚辰07:25 clock, both citiesat 07:25 the year · month · day pillars are the same for both: 乙亥 · 己卯 · 庚戌

A boundary the two traditions argue about among themselves — 子時

There is one more place the answer can split, and it is not a Korea-versus-China line at all: how to treat 子時, the two hours (23:00–01:00) that straddle midnight. One school, 야자시 (晚子時, “late zi”), keeps the day pillar where it is and takes the hour stem from the next day. Another, 자정 (子正), rolls the day pillar itself over at midnight. Both conventions are argued inside Korean Saju circles and inside Chinese Bazi circles — this split runs through each tradition, not between them. Bokki's calendar library defaults to 야자시, and we pinned that choice with a regression test so a library upgrade cannot silently flip it on us.

What we don't calculate

There is no “Bazi mode” toggle in Bokki — if you want to compare the two traditions for real, the only input that changes anything is the birthplace. Beyond that: we compute exactly four special stars (천을귀인, 도화, 역마, 화개), not the much longer catalogues either tradition also keeps (양인살, 괴강살, 원진살, and more). We do not pick one school's strength method over another's — 억부 and 조후 are both in the engine, laid out in our 용신 article, but 병약, 통관 and 종격 are not. Summer time is taken back out the same way for both countries — Korea's 1948–51, 1955–60 and 1987–88 and China's 1986–91 come from the IANA time-zone database, not from a rule either tradition owns — though a birth in the doubled or skipped hour on the day a clock changed should still be checked against a second source. And we never rank Saju above Bazi or the reverse — they are one chart with two names, and the honest differences are the ones above, not a verdict on which is “more correct.”

Closing note — one function, an 18-minute gap, one flipped branch

In short: getFourPillars() never asks which tradition it is running, so 20 March 1995 comes out 乙亥 · 己卯 · 庚戌 for the year, month and day pillars whether the birthplace is Seoul or Beijing — the entire measured difference lives in one input, the meridian gap between where a country puts its clock (135°E for Korea, 120°E for China) and where its population actually sits. That gap runs Seoul −40 minutes and Beijing −22 minutes for the same date, an 18-minute spread that is exactly enough to carry the same 07:25 clock time across the 07:00 hour-branch boundary in one city and not the other — 己卯 in Seoul, 庚辰 in Beijing, from identical arithmetic run on identical minutes. The one split that could be mistaken for a Korea-versus-China line — 야자시 versus 자정 at the 子時 boundary — turns out not to be one: both conventions are argued inside Korean Saju circles and inside Chinese Bazi circles, so Bokki's choice of 야자시 is pinned by a regression test rather than presented as a national rule. And the same four special stars, the same two strength methods and the same summer-time handling apply to a Seoul chart and a Beijing chart alike — nothing on this page treats one tradition as more complete than the other, because the code genuinely does not.

← Get my reading

Read next

What is Saju? — the four pillars, explained
True solar time (진태양시) — why the hour pillar is not the clock
The Ten Gods (십신) — the same names, either tradition

Questions people actually ask

Is Saju the same as Bazi?

Yes, in the sense that matters for the math: they name the same four-pillar, eight-character chart, built the same way. Saju is the Korean name; Bazi (八字) is the Chinese one, and the system spread from China to Korea centuries ago. Bokki's code has one chart-building function and it does not take a “tradition” argument — Seoul and Beijing run through the identical steps.

Does Bokki calculate Saju and Bazi differently?

No. There is no Bazi mode or Saju mode to switch between. The only input that changes a result is the birthplace and birth time you give it — because the hour pillar depends on true solar time at that place, not on which tradition's name you use for the chart.

Why would the same birth time give a different hour pillar in Seoul versus Beijing?

Because the true solar time correction is a different size in each city. Korea keeps clock time on the 135°E meridian even though the country sits at 126–129°E, so the correction is a steady −32 to −40 minutes almost everywhere. China keeps one time zone on the 120°E meridian, close to its populous eastern coast, so the correction there is usually smaller — our own data gives Beijing −22 minutes for the same date. A gap that size can move a birth across an hour-branch boundary.

Which 子時 convention does Bokki use, 야자시 or 자정?

야자시 (晚子時, “late zi”): a birth between 23:00 and 00:00 keeps the day pillar where it is and takes the hour stem from the next day. This is a genuine school split, but it runs inside both Korean Saju practice and Chinese Bazi practice — it is not a Korea-versus-China line. Bokki pinned its choice with a regression test.

Does Bokki say which tradition is more accurate?

No, and we would not. Saju and Bazi are one chart with two names in Bokki's engine; the honest differences are the true solar time correction and the 子時 school split, not a ranking of one tradition over the other.