A birth-chart form looks simple: ask for a date, time, and place, then calculate.

The interface may be simple. The input is not.

1992-11-01 01:30 does not identify one universal instant. It is a wall-clock reading that only becomes meaningful after you resolve the place, the historical time-zone rule, and any daylight-saving transition. If the time is unknown, inventing a convenient default can create chart features that were never supported by the user’s data.

I ran into these problems while building AstroZen, a Next.js application that calculates a BaZi Four Pillars chart and a Western natal chart before generating an optional interpretation.

The most important architectural decision was this: