Explore the record. Test the story. Keep the limits visible.
Download DrawScope for Windows · View the guided project site · Verify the ZIP · Read the limits
DrawScope is a retrospective research workbench. It does not predict winning numbers, improve lottery odds, or provide betting advice.
- Browse historical drawings by game, date, session, number, and compatible rule era.
- Inspect source identity, dated coverage, database hashes, verification state, and known gaps.
- Test a fixed ranking rule using only information that existed before each historical target.
- Select a strategy on discovery data once, then measure it on later untouched confirmation trials.
- Compare observed performance with seeded chance baselines, lift, stability blocks, and significance estimates.
- Keep exact theoretical lottery odds separate from historical evidence and the final recommendation.
Lottery archives make an unusually clear test bed for responsible analytics: the data is familiar, the outcomes are independently recorded, and apparent patterns are easy to overstate. DrawScope turns that problem into an auditable Windows desktop workflow.
The application combines a React interface, a Rust/Tauri desktop authority, a Python analytics sidecar, strict JSON contracts, and a bundled SQLite archive. A pattern must be selected on an earlier discovery period and evaluated on a later untouched period; the target draw never participates in the score used to rank it.
| At a glance | Evidence |
|---|---|
| Archive | 41,598 deduplicated draws across 6 archived games, with source identities and known gaps retained |
| Research design | 30 fixed signals · up to 250 walk-forward trials · 60/40 discovery/confirmation split |
| Privacy | Local SQLite storage · no account · no telemetry · no cloud analytics |
| Delivery | Portable Windows x64 ZIP · SHA-256 checksum · SPDX SBOM · GitHub provenance attestation |
| Product boundary | Historical confidence is capped below 50/100 and is never presented as a winning probability |
These images are refreshed from the current 0.6.5 interface. The browser preview uses a deterministic display fixture while its archive totals and provenance summary come from the committed, hash-checked offline manifest. See the visual provenance note, or use the captioned guided tour for an accessible 24-second walkthrough.
The checked-in Powerball retrospective evidence bundle records a complete result produced through the packaged DrawScope.exe → drawscope-engine.exe boundary. It binds the result to the application version, methodology, archive SHA-256, target date, fixed request, and reproduction command. Its conclusion is intentionally unglamorous: no demonstrated predictive advantage; do not use the analysis to choose numbers.
flowchart LR
A["Versioned source artifacts"] --> B["Hash and schema validation"]
B --> C["Reproducible SQLite archive"]
C --> D["Rust desktop authority"]
D --> E["React research workbench"]
D --> F["Python analytics sidecar"]
F --> G["Walk-forward discovery trials"]
G --> H["Untouched confirmation period"]
H --> I["Bounded evidence rating"]
The Rust layer owns persistence, validation, migrations, file boundaries, and sidecar lifecycle. Python receives a bounded request and returns a strictly validated result. React renders that evidence only after both the TypeScript and Rust boundaries accept it.
- Rules stay era-specific. Draws from incompatible number matrices are never silently mixed.
- Every trial moves forward through time. Signals for a target use only draws that happened earlier.
- Selection and confirmation are separate. The strongest discovery-period strategy is chosen once, then measured on later untouched trials.
- Ties are outcome-independent. Neutral ranks and deterministic SHA-256 cutoff ordering remove lower-number and winning-number bias.
- Confidence describes evidence, not luck. The 0–49 score summarizes historical stability; exact jackpot odds remain in a separate lane.
Follow the worked case study · Read the full methodology · Inspect the contract boundary · Review the v0.6.5 integrity audit
Snapshot date: 2026-07-28 · Latest captured draw: 2026-07-28 · Known gaps: 4
This is a dated offline evidence snapshot—not live lottery data. The weekly freshness workflow flags a refresh as due after 14 days and stale after 30; it never invents missing rows or substitutes an unreviewed source.
Coverage by game
- Powerball: 1992-04-22 → 2026-07-27 · 3,813 draws · 1 session
- Mega Millions: 2002-05-17 → 2026-07-24 · 2,522 draws · 1 session
- Illinois Lotto: 2014-01-20 → 2026-07-27 · 1,960 draws · 1 session
- Lucky Day Lotto: 2014-01-19 → 2026-07-28 · 9,147 draws · 2 sessions
- Pick 3: 2010-01-01 → 2026-07-28 · 12,078 draws · 2 sessions
- Pick 4: 2010-01-01 → 2026-07-28 · 12,078 draws · 2 sessions
Two isolated frozen-source rebuilds produced the same 41,394,176-byte SQLite database:
SHA-256 89a9370d4dcbba7a6ca22e218e4ed6ba6ff1a960b5c1247f3f3f4a0a4569662f
The archive records source URLs, retrieval context, file sizes, SHA-256 identities, parser identity, verification status, and documented gaps. Third-party data retains its own terms; review the data notice and source research before redistributing it.
- Download
DrawScope-v0.6.5-windows-x64-portable.zip. - Download its adjacent SHA-256 file.
- Verify the ZIP, extract it to a writable folder, and run
launch-portable.bat.
The release workflow now prepares both versioned and stable asset names, a signed NSIS installer, checksum inventory, packaged-run evidence, SPDX SBOM, and provenance attestations. Publishing a future installer is deliberately blocked until a trusted Authenticode certificate is configured; the existing v0.6.5 portable binary remains unsigned and unchanged.
$expected = (Get-Content .\DrawScope-v0.6.5-windows-x64-portable.zip.sha256).Split()[0]
$actual = (Get-FileHash .\DrawScope-v0.6.5-windows-x64-portable.zip -Algorithm SHA256).Hash.ToLowerInvariant()
if ($actual -ne $expected) { throw "DrawScope archive checksum mismatch" }Requirements: Windows x64 and Microsoft Edge WebView2. The current v0.6.5 portable build is not Authenticode-signed, so Windows may show a reputation warning; verify the checksum and release provenance before running it. See the distribution and signing runbook for the enforced future-release gate.
Prerequisites: Windows x64, Node 24+, pnpm 9.15, Rust 1.88, Python 3.12, uv, and Microsoft Edge WebView2.
pnpm install --frozen-lockfile
uv sync --project engines/drawscope-engine --frozen --all-groups
pnpm verify
uv run --project engines/drawscope-engine pytest
cargo test --locked --workspace
pnpm devBUILD-LATEST.bat performs the locked restore, TypeScript/React/Python/Rust gates, two byte-compared offline-database rebuilds, portable-path health checks, ZIP generation, and transactional active-build/ promotion. It does not build an installer.
| Path | Responsibility |
|---|---|
apps/desktop |
React 19 interface and Tauri 2 desktop shell |
apps/desktop/src-tauri |
Rust commands, SQLite authority, migrations, and sidecar lifecycle |
engines/drawscope-engine |
Python analytics and leakage-resistant research routines |
packages/contracts |
Versioned schemas, shared types, and cross-language fixtures |
data |
Source catalog, immutable artifacts, manifests, and offline archive evidence |
tools |
Database reconstruction and release automation |
site |
Project-specific GitHub Pages source and accessible guided tour |
examples |
Reproducible, version-bound packaged analysis evidence |
docs |
Methodology, architecture, provenance, security, testing, and audit trail |
- Understand the product: documentation hub, responsible use, known limitations
- Review the research: worked case study, methodology, packaged-run evidence, source research, database reconstruction
- Review the engineering: architecture, contracts, testing, function inventory
- Operate or assess risk: runbooks, distribution/signing, maintenance policy, security model, dependency-audit evidence, dependency policy, accessibility
Use the structured issue forms for reproducible bugs, bounded feature proposals, or archive/provenance discrepancies. Read CONTRIBUTING.md before opening a pull request and SUPPORT.md for installation and usage help. Suspected vulnerabilities belong in private vulnerability reporting, not a public issue.
AI tools assisted with research, implementation suggestions, and repetitive refactoring. Nouraldin Farge retained ownership of product direction, architecture, source-policy decisions, validation criteria, code review, testing, safety boundaries, and release approval. AI output was treated as untrusted until it passed repository review and automated verification.
DrawScope code is available under the MIT License. Data licensing is separate and documented in the data notice. Academic and research references can use CITATION.cff.


