The phrase is borrowed. "Spirit animal" is an English shorthand that has drifted a long
way from the traditions it was lifted from, and the Chinese system has no such idea: no
guide, no totem, no animal that chooses you. What it has is a calendar in which every
unit of time carries one of twelve earthly branches, and every branch has had an animal
pinned to it since at least the first century, when Wang Chong listed all twelve in the
Lunheng. Years carry a branch. So do months, days and two-hour blocks. Ask
what animal you are and the calendar asks, reasonably, which of your four you mean.
The year is the one everyone answers with. It turns at Chinese New Year, so a birthday
in late January or early February needs checking, and our
zodiac calculator does the checking with
both start rules side by side. The month is the surprise. It does not follow the
calendar months, and it does not follow the lunar months either; it follows the sun.
Each of the twelve astrological months opens at one of the twelve jie, the
odd-numbered solar terms: the Tiger month at the Start
of Spring, the Rabbit at the Awakening of Insects, round to the Rat at Major Snow and the
Ox at Minor Cold. Most English lists of "inner animals" print fixed date ranges, which is
close and occasionally wrong, because the terms drift by a day. The finder above uses the
real moments, to the minute, which is how a bazi chart sets the same pillar.
The hour is the oldest of the three. The Chinese day has always been cut into twelve
double hours, the shichen, and the Rat's runs
from eleven at night to one in the morning, straddling midnight, which trips up every
calculator that assumes the day begins at twelve. Popular astrology calls this the secret
animal, the self nobody sees, and it is the one of the three most people are genuinely
surprised by, because nobody has ever asked what time they were born for the sake of a
placemat. The three together, with the day added, are the four pillars, and the
bazi calculator is where the calendar stops handing
out animals and starts reading them.