# Derive the hour stem: the five-rat starting rule and a two-column late-Zi worksheet

Derive the hour stem from a recorded day stem and hour branch with the five-rat starting rule, then redo the same late-Zi record under a 23:00 day boundary and mark character by character whether the day stem and hour stem change.

Updated: 2026-11-04 · Wenbu AI-assisted editorial

Fix three inputs first: the day stem, the hour branch and the day-boundary setting. The five-rat rule only fixes the Zi-hour starting stem: Jia and Ji days start at Jia-Zi, Yi and Geng at Bing-Zi, Bing and Xin at Wu-Zi, Ding and Ren at Geng-Zi, Wu and Gui at Ren-Zi. From there, advance stems and branches together to the target branch; the paired stem is the hour stem. Late Zi (23:00–24:00) is the one cell that needs a second pass. Wenbu defaults to a 00:00 boundary, and under that default the late-Zi hour stem already follows the library's next-day convention. Switching to a 23:00 Zi-start boundary moves the day pillar to the next day, and the hour stem must be read from the returned result rather than assumed to change or stay. This guide writes both columns side by side, marks only observable characters, and does not declare either convention correct.

[Wenbu · calculation conventions](https://wenbu.app/methodology/) · [Wenbu · BaZi guide](https://wenbu.app/knowledge/en/bazi-basics.md)

- The five-rat rule fixes only the Zi-hour starting stem; count stems and branches together to reach any other hour.

- Twelve branches advance the stem sequence by twelve positions, one full decade plus two, so two stems repeat.

- Late Zi is the only cell needing a second column: the default hour stem already follows the next-day convention, and under 23:00 the day pillar moves while the hour stem must be read from the returned result.

## From record to two hour-stem columns

1. **Assign the branch** — Place the clock time in its two-hour interval and check whether it falls in the 23:00–24:00 late-Zi segment.

2. **Look up the starting stem** — Use the five-rat rule: Jia/Ji start Jia-Zi, Yi/Geng Bing-Zi, Bing/Xin Wu-Zi, Ding/Ren Geng-Zi, Wu/Gui Ren-Zi.

3. **Count to the hour stem** — Advance stems and branches together from Zi to the target branch and read the paired stem.

4. **Read the default late Zi** — For late Zi, take the hour stem returned under the default setting and note it already follows the next-day convention.

5. **Switch to 23:00 and read** — Change the boundary option, record the new day pillar, and copy the returned hour stem without assuming a change.

6. **Mark the difference** — State character by character whether the day stem and hour stem changed, note the branch is unchanged, and save the boundary setting.

Process: assign the hour branch, derive the baseline hour stem from the day stem, take the default result for the late-Zi cell, then switch to 23:00 and read the second column, marking only characters that actually change.

[Wenbu · calculation conventions](https://wenbu.app/methodology/) · [Wenbu · BaZi guide](https://wenbu.app/knowledge/en/bazi-basics.md)

## Fix the inputs: day stem, hour branch, boundary

Before deriving anything, write down three things: the day pillar's stem, which two-hour branch interval the recorded clock time falls into, and which day-boundary rule you are using. The Zi branch straddles midnight, so a record labelled “Zi hour” may sit after 23:00 or after 00:00, and those two segments are not equivalent under a day-boundary rule. Assign the time to an interval first, then work on stems; the order matters.

Wenbu's methodology states that the day and hour pillars default to the selected local clock time, that the day changes at 00:00 by default, and that a 23:00 Zi-start boundary is also available; when the birth time is unknown, no hour pillar is generated. The hour pillar is therefore determined by inputs and settings, not guessed. Save the date, time zone, clock time and boundary option so the two-column comparison later has a reproducible basis.

[Wenbu · calculation conventions](https://wenbu.app/methodology/) · [Wenbu · BaZi guide](https://wenbu.app/knowledge/en/bazi-basics.md)

## The five-rat rule: from starting stem to target branch

The five-rat rule supplies the Zi-hour starting stem for each day stem: Jia and Ji days begin at Jia-Zi, Yi and Geng at Bing-Zi, Bing and Xin at Wu-Zi, Ding and Ren at Geng-Zi, Wu and Gui at Ren-Zi. It answers only “which stem opens the Zi hour.” From there, advance the stems in order while advancing the branches from Zi through Chou, Yin and so on; when you reach the target branch, the stem paired with it is the hour stem.

Take a Bing day: Bing and Xin start at Wu-Zi, so the Zi hour is Wu-Zi. One step on gives Chou with Ji, the next gives Yin with Geng, and so on. Twelve branches advance the stem sequence by twelve positions, one full decade plus two, so two stems repeat; the twelve branches do not pair with twelve distinct stems. Once the day stem and boundary convention are fixed, each branch has a determinate hour stem, so you can build a twelve-hour table for one day stem and check a record against it.

[Wenbu · BaZi guide](https://wenbu.app/knowledge/en/bazi-basics.md) · [lunar-typescript · official source](https://raw.githubusercontent.com/6tail/lunar-typescript/master/README.md)

## Late Zi: the default hour stem already follows the next day

Late Zi is the 23:00–24:00 segment. The easy mistake is to assume that a default 00:00 boundary means the late-Zi hour stem is derived from the current day stem. Wenbu's methodology says the opposite: under the default rule, the late-Zi hour stem still follows the library's next-day convention. In the baseline column, that cell's hour stem has already moved with the next day, while the day pillar still shows the current day.

So the comparison is not “current day stem versus next day stem.” Read the baseline cell directly from the default result, noting that its hour stem already follows the next-day convention. Then switch to the 23:00 Zi-start boundary, where the day pillar moves to the next day, and read the returned hour stem. The cited source states the default late-Zi convention but does not spell out the hour-stem rule under 23:00, so the comparison column must be read from the result rather than asserted to change or stay.

[Wenbu · calculation conventions](https://wenbu.app/methodology/) · [Wenbu · BaZi guide](https://wenbu.app/knowledge/en/bazi-basics.md)

## A two-column worksheet: one late-Zi record, two settings

Column one fixes one day stem and lists the hour stem for all twelve branches using the five-rat rule as a baseline table; the late-Zi cell takes the default result directly and is annotated “hour stem already follows the next-day convention.” Column two addresses only that cell: switch to the 23:00 boundary, record the new day pillar, copy the returned hour stem, and note “day stem changes, hour stem as returned, hour branch unchanged.”

The worksheet's value is reproducibility. Given your day stem, hour branch, boundary setting and both columns, another reader should reproduce the same characters; if not, check first whether the branch interval was assigned correctly, then whether the boundary option matches. Wenbu also advises comparing results under different settings near a day or hour boundary. That comparison is not about picking a winner; it makes the conventional difference explicit so “which character moved” can be checked.

[Wenbu · calculation conventions](https://wenbu.app/methodology/) · [Wenbu · BaZi guide](https://wenbu.app/knowledge/en/bazi-basics.md)

## Two-column derivation comparison

| Item | Default 00:00 boundary (baseline) | 23:00 boundary (comparison) |
| --- | --- | --- |
| Day pillar in late Zi | Current day's pillar | Next day's pillar |
| Hour stem in late Zi | Taken from the default result; already follows the next-day convention | Read from the returned result; the cited source does not spell it out |
| Hour branch | Zi | Zi, unchanged |
| Hours outside late Zi | Counted from the current day stem | Usually identical to baseline |
| After twelve branches | Stems advance twelve positions, one decade plus two, so two stems repeat | Same, with the starting stem set by the changed day stem |
| What to record | Date, time zone, clock time, boundary | Same, plus a note that 23:00 is used |

[Wenbu · calculation conventions](https://wenbu.app/methodology/) · [Wenbu · BaZi guide](https://wenbu.app/knowledge/en/bazi-basics.md)

## Hypothetical case: a Bing day in late Zi, two columns

This is a teaching record, not a real person: the clock time is 23:20, in the late-Zi segment. Under the default setting the day pillar is Bing, and the next day's pillar is Ding. We derive only the hour stem, interpret no chart and predict nothing.

1. Step 1, assign the branch: 23:20 falls between 23:00 and 24:00, so the hour branch is Zi.

2. Step 2, baseline column: under the default setting the late-Zi hour stem already follows the next-day convention, so read the returned result; with the next day being Ding, and Ding/Ren starting at Geng-Zi, the hour stem is Geng, giving Geng-Zi, not Wu-Zi from the current Bing day.

3. Step 3, comparison column: switch to the 23:00 Zi-start boundary; the day pillar moves from Bing to Ding and the branch stays Zi. Copy the hour stem returned after the switch rather than asserting it in advance.

4. Step 4, mark the difference: the day stem moves from Bing to Ding and the branch is unchanged; if the returned hour stem is still Geng, only the day pillar changed, and if it differs, record the new character as returned.

5. Step 5, check: if the same record were 22:40, it would not be late Zi, and both columns should agree with a difference of zero.

The observable result: under the default setting this late-Zi record has the hour pillar Geng-Zi, with the hour stem already following the next-day convention. Under 23:00 the day pillar moves from Bing to Ding, the branch stays Zi, and the hour stem must be read from the returned result and marked. Save the day stem, hour branch, boundary setting and both columns so anyone can recompute and check exactly which character moved.

[Wenbu · calculation conventions](https://wenbu.app/methodology/) · [Wenbu · BaZi guide](https://wenbu.app/knowledge/en/bazi-basics.md)

## FAQ

### Do I need to memorize the whole five-rat table?

No. Remember the five starting-stem pairs and count forward from Zi to the target branch. You can build a twelve-hour table for one day stem as a shortcut, but the starting rule is what matters; the table is just its expansion.

[Wenbu · BaZi guide](https://wenbu.app/knowledge/en/bazi-basics.md)

### Under the default 00:00 boundary, is the late-Zi hour stem based on the current day or the next day?

According to Wenbu's methodology, under the default rule the late-Zi hour stem already follows the library's next-day convention, so the baseline column cannot start from the current day stem. The day pillar still shows the current day while the hour stem has moved with the next day, which is the easiest place to miswrite the comparison.

[Wenbu · calculation conventions](https://wenbu.app/methodology/)

### After switching to 23:00, must the hour stem differ from the baseline?

Do not assume so. The cited source states the default late-Zi convention but does not spell out the hour-stem rule under 23:00. Switch the setting, read the returned result, and compare character by character with the baseline: write “same” if it matches and record the new character if not.

[Wenbu · calculation conventions](https://wenbu.app/methodology/)

### Which day-boundary rule is correct?

This guide does not decide. Wenbu offers both a 00:00 boundary and a 23:00 Zi-start boundary as settings; they are conventional differences. What matters is recording the setting and aligning it before comparing results, rather than treating either as the only standard.

[Wenbu · calculation conventions](https://wenbu.app/methodology/)

## Glossary

- **Day stem**: The heavenly stem of the day pillar; the starting point for the five-rat rule and a common reference when reading a chart. [Wenbu · BaZi guide](https://wenbu.app/knowledge/en/bazi-basics.md)

- **Five-rat rule**: A traditional rule that fixes the Zi-hour starting stem from the day stem, then counts forward to each hour branch. [Wenbu · BaZi guide](https://wenbu.app/knowledge/en/bazi-basics.md)

- **Late Zi**: The 23:00–24:00 segment of the Zi hour; under the default setting its hour stem already follows the next-day convention, and under a 23:00 boundary the day pillar moves to the next day. [Wenbu · calculation conventions](https://wenbu.app/methodology/)

## Evidence notes

- Wenbu defaults to a 00:00 day change and also offers a 23:00 Zi-start day change as a setting. — “默认在 00:00 换日（sect=2），也可选 23:00 子初换日（sect=1）” (fact); [Wenbu · calculation conventions](https://wenbu.app/methodology/)

- Under the default rule, the late-Zi hour stem already follows the library's next-day convention, so the baseline column cannot simply start from the current day stem. — “默认规则下，晚子时的时干仍使用库的次日约定” (fact); [Wenbu · calculation conventions](https://wenbu.app/methodology/)

- Saving the date, time zone and boundary setting with the result makes it reproducible for another reader. — “Save the date, time zone and boundary settings with the result” (editorial); [Wenbu · BaZi guide](https://wenbu.app/knowledge/en/bazi-basics.md)

## Sources

- [Wenbu · BaZi guide](https://wenbu.app/knowledge/en/bazi-basics.md) — Existing editorial and reproducible chart conventions; fetched 2026-11-04T14:00:34.196Z; complete response

- [Wenbu · calculation conventions](https://wenbu.app/methodology/) — First-party implementation; not evidence of predictive accuracy; fetched 2026-11-04T14:00:34.045Z; complete response

- [lunar-typescript · official source](https://raw.githubusercontent.com/6tail/lunar-typescript/master/README.md) — Calculation implementation and conventions; fetched 2026-11-04T14:00:34.315Z; complete response

[Chart the same record under both boundary settings and compare the hour pillars](https://wenbu.app/en/bazi/)