A date-wise results archive is one of the simplest useful datasets you can publish. Each record answers a narrow question: what came out, and when? While working on a lottery archive, I settled on a small, flat structure that is easy to reason about.
Structure of the archive
Every entry has four parts: the date, the draw time (1 PM, 6 PM or 8 PM), the series, and the number. The date plus draw time forms a natural key, since only one result exists per slot. Series and number are stored as separate fields, but the full ticket is also kept as one normalized string such as "63A 12345".
{ "date" : "2026-10-21" , "draw" : "6PM" , "series" : "63A" , "number" : "12345" }
Enter fullscreen mode
Exit fullscreen mode
Grouping by date, then by draw time, gives a page layout that mirrors how people think: pick a day, see up to three draws.
Exact match beats partial match
It is tempting to let users type a few digits and show everything that looks similar. For results data, that backfires.…