How the Chinese gender predictor works
The tool is deterministic: the same inputs always give the same cell. There is no randomness, no AI and no server-side calculation — everything runs in your browser from fixed, versioned data.
1. Dates are calendar dates
We read each date as YYYY-MM-DD. We do not convert your local midnight to another time zone, and we do not ask for birth time or place. Your browser’s time zone does not affect the result.
2. Gregorian → lunar conversion
Lunar month boundaries for 1901–2100 are generated at build time with the open-source lunar-typescript library (MIT) and compared month by month against the Hong Kong Observatory Gregorian–Lunar conversion tables. Out of 2,474 lunar months, one start date differed (lunar month 9 of 2057: HKO 2057-09-28, library 2057-09-29); we follow HKO. Dates outside 1901-01-01 – 2100-12-31 are rejected rather than guessed.
Hong Kong Observatory notes that for a few far-future dates where the new moon falls close to midnight, a one-day difference is possible. We do not claim medical-grade precision for any date.
3. Lunar age (虚岁)
lunar age at conception = lunar year of conception − lunar year of birth + 1
Both sides are converted lunar years — not Gregorian years and not the current year. Age changes on Lunar New Year’s Day (正月初一), not on Lichun (立春). Example: in 2026, Lichun is February 4 but Lunar New Year is February 17, so a conception on February 4–16, 2026 still uses the previous lunar year.
4. Lunar month and leap months
The conception date’s lunar month (1–12) selects the column. Rule same-number-month-v1: a leap month maps to the same numbered regular month, and the result shows a Leap tag. Example: July 25, 2025 begins the leap 6th month, which reads column 6. This is our product convention, not a claim about an “original” rule; HKO confirms the leap month dates but does not endorse any gender chart.
5. Only know the month?
We treat the month as the full date range, from day 1 to the last day. Each lunar-month piece inside it is looked up separately. If every piece gives the same cell value, we show it and label it month-level. If not, we show “The chart result varies by conception date” with each range. We never calculate a percentage or pick the piece with more days. If any piece is outside the chart or the calendar data, we say so and give no overall answer.
6. The chart we use
No source proves that any online chart is the single “original” Qing palace chart, and several versions circulate. We picked one version and verified all 336 cells (lunar age 18–45 × lunar months 1–12) against three published copies:
- Prokerala — Chinese Birth Chart — 336/336 (primary) (retrieved 2026-10-13)
- chinesecalendar.in — Complete Chinese Gender Chart — 336/336 (retrieved 2026-10-13)
- chinesegendercalendar.org — Chart — 336/336 (retrieved 2026-10-13)
Compared but not adopted: R for Rabbit tool data (cgender.js) + The Bump chart image hosted on rforrabbit.com — 192/336 (144 cells differ); chinese-lunar-calendar.com — 256/336 (80 cells differ).
Chart version cgp-chart-v1 (Prokerala family, retrieved 2026-10-13), checksum sha256:1cfdc415c39da8f3ab509101637f2de944bd210274393c53206e555a1a64c1da. Indexing: cells[age − 18][month − 1]. The data is locked by automated tests; any change shows up cell by cell in version control.
Cells where other published versions differ (165 cells)
Why we chose this version: it is the one used by Prokerala, one of the most visited chart tools, and two further independent copies match it in all 336 cells. The R for Rabbit tool data and The Bump chart image agree with each other but differ from it in 144 cells, so we treat them as a different chart version rather than mixing rows from both.
| Lunar age | Lunar month | This site | R for Rabbit / The Bump | chinese-lunar-calendar.com |
|---|---|---|---|---|
| 19 | 8 | Boy | Girl | Boy |
| 23 | 3 | Girl | Boy | Girl |
| 23 | 4 | Boy | Girl | Boy |
| 23 | 6 | Girl | Boy | Girl |
| 23 | 7 | Boy | Girl | Boy |
| 23 | 9 | Boy | Girl | Boy |
| 24 | 3 | Boy | Girl | Boy |
| 24 | 5 | Girl | Boy | Girl |
| 24 | 6 | Boy | Girl | Boy |
| 24 | 9 | Girl | Boy | Girl |
| 24 | 10 | Girl | Boy | Girl |
| 24 | 12 | Girl | Boy | Girl |
| 25 | 3 | Boy | Girl | Girl |
| 25 | 4 | Girl | Boy | Girl |
| 25 | 5 | Girl | Girl | Boy |
| 25 | 6 | Boy | Boy | Girl |
| 25 | 7 | Girl | Girl | Boy |
| 25 | 9 | Boy | Girl | Boy |
| 26 | 2 | Girl | Boy | Girl |
| 26 | 4 | Girl | Boy | Girl |
| 26 | 5 | Girl | Boy | Girl |
| 26 | 6 | Boy | Girl | Boy |
| 26 | 7 | Girl | Boy | Girl |
| 26 | 8 | Boy | Girl | Boy |
| 26 | 10 | Girl | Boy | Girl |
| 27 | 2 | Boy | Girl | Boy |
| 27 | 3 | Girl | Boy | Girl |
| 27 | 6 | Girl | Boy | Girl |
| 27 | 7 | Boy | Girl | Boy |
| 27 | 8 | Boy | Girl | Boy |
| 27 | 10 | Boy | Girl | Boy |
| 27 | 11 | Girl | Boy | Girl |
| 28 | 2 | Girl | Boy | Girl |
| 28 | 6 | Girl | Boy | Girl |
| 28 | 7 | Boy | Girl | Boy |
| 28 | 9 | Boy | Girl | Boy |
| 28 | 10 | Boy | Girl | Boy |
| 28 | 11 | Girl | Boy | Girl |
| 29 | 6 | Boy | Girl | Boy |
| 29 | 7 | Boy | Girl | Boy |
| 29 | 9 | Boy | Girl | Boy |
| 29 | 10 | Girl | Boy | Girl |
| 30 | 2 | Girl | Boy | Girl |
| 30 | 4 | Girl | Boy | Girl |
| 30 | 6 | Girl | Boy | Girl |
| 30 | 7 | Girl | Boy | Girl |
| 30 | 8 | Girl | Boy | Girl |
| 30 | 9 | Girl | Boy | Girl |
| 30 | 10 | Girl | Boy | Girl |
| 31 | 2 | Girl | Boy | Girl |
| 31 | 4 | Girl | Boy | Girl |
| 31 | 7 | Girl | Boy | Girl |
| 31 | 9 | Girl | Boy | Girl |
| 31 | 12 | Boy | Girl | Boy |
| 32 | 3 | Boy | Girl | Girl |
| 32 | 4 | Girl | Boy | Girl |
| 32 | 5 | Girl | Girl | Boy |
| 32 | 6 | Girl | Boy | Girl |
| 32 | 7 | Girl | Boy | Girl |
| 32 | 8 | Girl | Girl | Boy |
| 32 | 9 | Girl | Boy | Girl |
| 32 | 10 | Girl | Boy | Girl |
| 33 | 3 | Girl | Boy | Girl |
| 33 | 4 | Boy | Girl | Boy |
| 33 | 6 | Girl | Boy | Girl |
| 33 | 7 | Girl | Girl | Boy |
| 33 | 8 | Boy | Boy | Girl |
| 33 | 9 | Girl | Girl | Boy |
| 33 | 10 | Girl | Boy | Girl |
| 33 | 11 | Girl | Boy | Boy |
| 33 | 12 | Boy | Girl | Girl |
| 34 | 2 | Girl | Boy | Girl |
| 34 | 3 | Boy | Girl | Boy |
| 34 | 5 | Girl | Boy | Girl |
| 34 | 7 | Girl | Boy | Boy |
| 34 | 8 | Girl | Boy | Girl |
| 34 | 9 | Girl | Girl | Boy |
| 34 | 10 | Girl | Boy | Girl |
| 34 | 11 | Boy | Girl | Boy |
| 34 | 12 | Boy | Girl | Boy |
| 35 | 2 | Boy | Girl | Girl |
| 35 | 3 | Girl | Boy | Boy |
| 35 | 4 | Boy | Girl | Girl |
| 35 | 5 | Girl | Boy | Boy |
| 35 | 7 | Girl | Boy | Boy |
| 35 | 8 | Boy | Girl | Girl |
| 35 | 9 | Girl | Boy | Boy |
| 35 | 10 | Girl | Boy | Girl |
| 35 | 11 | Boy | Girl | Girl |
| 36 | 1 | Girl | Boy | Boy |
| 36 | 2 | Boy | Girl | Girl |
| 36 | 3 | Boy | Boy | Girl |
| 36 | 4 | Girl | Boy | Boy |
| 36 | 5 | Boy | Boy | Girl |
| 36 | 6 | Girl | Girl | Boy |
| 36 | 7 | Girl | Boy | Girl |
| 36 | 8 | Girl | Boy | Boy |
| 36 | 9 | Boy | Girl | Boy |
| 36 | 10 | Boy | Girl | Girl |
| 36 | 11 | Boy | Girl | Girl |
| 36 | 12 | Boy | Girl | Girl |
| 37 | 1 | Boy | Girl | Girl |
| 37 | 4 | Boy | Girl | Girl |
| 37 | 6 | Boy | Girl | Girl |
| 37 | 7 | Girl | Boy | Boy |
| 37 | 8 | Boy | Girl | Girl |
| 37 | 11 | Girl | Boy | Girl |
| 38 | 1 | Girl | Boy | Boy |
| 38 | 4 | Boy | Girl | Girl |
| 38 | 7 | Boy | Girl | Girl |
| 38 | 8 | Girl | Boy | Boy |
| 38 | 9 | Boy | Girl | Girl |
| 39 | 1 | Boy | Girl | Girl |
| 39 | 4 | Boy | Girl | Girl |
| 39 | 5 | Boy | Girl | Girl |
| 39 | 7 | Girl | Boy | Boy |
| 39 | 8 | Boy | Girl | Girl |
| 39 | 9 | Girl | Boy | Boy |
| 39 | 12 | Girl | Boy | Boy |
| 40 | 1 | Girl | Boy | Boy |
| 40 | 3 | Girl | Boy | Boy |
| 40 | 4 | Boy | Girl | Girl |
| 40 | 5 | Girl | Boy | Boy |
| 40 | 6 | Boy | Girl | Girl |
| 40 | 7 | Boy | Boy | Girl |
| 40 | 8 | Girl | Girl | Boy |
| 40 | 9 | Boy | Boy | Girl |
| 40 | 10 | Girl | Girl | Boy |
| 40 | 11 | Boy | Girl | Girl |
| 40 | 12 | Girl | Boy | Girl |
| 41 | 1 | Boy | Girl | Girl |
| 41 | 6 | Girl | Boy | Boy |
| 41 | 7 | Boy | Girl | Girl |
| 41 | 8 | Boy | Girl | Girl |
| 41 | 9 | Girl | Boy | Boy |
| 41 | 10 | Boy | Girl | Girl |
| 41 | 11 | Girl | Boy | Girl |
| 41 | 12 | Boy | Girl | Boy |
| 42 | 1 | Girl | Boy | Boy |
| 42 | 2 | Boy | Girl | Girl |
| 42 | 5 | Girl | Boy | Girl |
| 42 | 7 | Girl | Boy | Girl |
| 42 | 8 | Boy | Boy | Girl |
| 42 | 9 | Boy | Girl | Boy |
| 42 | 10 | Girl | Boy | Girl |
| 42 | 11 | Boy | Girl | Boy |
| 42 | 12 | Girl | Boy | Girl |
| 43 | 1 | Boy | Girl | Girl |
| 43 | 2 | Girl | Boy | Boy |
| 43 | 3 | Boy | Girl | Girl |
| 43 | 6 | Girl | Boy | Girl |
| 43 | 9 | Boy | Girl | Girl |
| 43 | 10 | Boy | Girl | Boy |
| 43 | 11 | Boy | Boy | Girl |
| 44 | 2 | Boy | Girl | Girl |
| 44 | 4 | Boy | Girl | Girl |
| 44 | 6 | Boy | Girl | Boy |
| 44 | 7 | Girl | Boy | Girl |
| 44 | 12 | Girl | Boy | Girl |
| 45 | 3 | Boy | Girl | Girl |
| 45 | 4 | Girl | Boy | Boy |
| 45 | 9 | Boy | Boy | Girl |
| 45 | 10 | Girl | Girl | Boy |
| 45 | 11 | Boy | Boy | Girl |
| 45 | 12 | Boy | Girl | Boy |
7. Accuracy
The chart is folklore. Villamor et al. (2010, Paediatric and Perinatal Epidemiology) tested it on 2,840,755 singleton births in Sweden and found it no better than tossing a coin. Results here are for fun only and must not be used to make any decision about a pregnancy. PubMed 20618730
Data versions
- chart:
cgp-chart-v1 (Prokerala family, retrieved 2026-10-13) - calendar:
lunar-typescript-1.8.6+hko-verified-v1 - rules:
same-number-month-v1 - age:
lunar-new-year-xusui-v1