How day-picking (택일) is calculated
The math behind /days — read from the code, not a folk calendar.
Bokki's date picker (택일, /days) does not consult a universal calendar of lucky and unlucky days. It builds your own Four Pillars chart once, then scores every candidate day in the next 45 days against that one chart: a day earns points if its element matches what your chart favors, if its branch harmonizes with your day branch, or if it carries the star your purpose needs (a wealth star for business, a travel star for a trip, and so on) — and it is thrown out entirely if its branch clashes with yours. The five results you see are just the highest-scoring days out of that scan, sorted and cut to the top five.
pickGoodDays() calls getFourPillars(birthDate, birthTime) exactly once, at the top of the function, and everything downstream reads from that single result: the day master, the favorable and unfavorable elements (the same 억부/조후 용신 logic our 용신 article explains), and your own day branch. This matters because a chart has more than one branch that could stand in for “you” — the year branch and the day branch are different things — and the whole scoring pass has to agree on which chart it is reading, or two screens can quietly disagree about the same birth. This used to not be true. Preparing this article, we reread the code and found that the favorable/unfavorable elements were built from getFourPillars(birthDate, birthTime), while the year branch that 역마 (the travel star) reads was built from a second, separate call that dropped the birth time entirely. Most birthdays agree either way, but 입춘 (4–5 February) is a year boundary, and a birth time near it can put the two calls on opposite sides. For a birth on 4 February 1990 at 20:00, the correct chart's year branch is 午 (Horse), so 역마 is 申 (Monkey); the time-blind path produced year branch 巳 (Snake) and 역마 亥 (Pig) instead — a different travel star for the same person on the same date, in two Bokki screens. The function was fixed to read a single chart everywhere (commit ac1fea1, taekil.ts:234), and that exact 1990-02-04 case is now pinned by a regression test so the split cannot come back silently.
Take a birth on 20 March 1995 at 07:25 and ask for travel days starting 1 September 2026. Every candidate day starts at a base score of 60. On 4 September 2026 the day's element is Metal, one of this chart's favorable elements, so the day gains +14. The day's branch is Snake, and for this chart (year branch Pig) yeokmaBranch() returns Snake as the travel star, so the day gains a further +12 — a final score of 86, the highest of the next 45 days. Two days earlier, 2 September, gains the same +14 for Metal and +10 instead because its branch (Rabbit) forms a six-harmony (六合) with the day branch (Dog) rather than carrying the travel star — 84, a close second. None of this is a probability; it is a ranking of the same 45 days against one chart, from highest total to lowest.
Two rules keep the list from padding out to 45 candidates. First, a hard skip: if a day's branch clashes (六冲) with your own day branch, that day is dropped before it is even scored — no element bonus, however favorable, buys it back in. In the chart above (day branch Dog), every Dragon-branch day in the 45-day window is a hard skip; four of them fall in that window and none appear in the result, even though one, 3 September 2026, carries the same favorable Metal element as the winning day. Second, a day with no bonus at all — base score 60 and nothing else — is left out rather than padded into the list; only 24 of the 45 scanned days in this example earn any score at all. The five you see are a genuine top five, not five results forced out of a shorter real list.
Bokki does not consult a traditional daily almanac (通書) — no 건제십이신, no 황도/흑도 day, no folk 손 없는 날 calendar. Every score comes from the relationship between the candidate day's pillar and your own chart, nothing else. For weddings we score only the spouse stars (財 for a man, 官 for a woman, both if gender is unknown) — not a full compatibility reading between two charts, and not the longer catalogue of wedding-specific taboos some almanacs keep. The scores are an internal ranking, not a probability: 86 does not mean an 86% chance of anything, and Bokki never claims a high-scoring day guarantees a good outcome. And the tool does not know your real schedule — it ranks the days you could pick from within the next 45, starting from today in your own timezone, nothing more.