AutoUpdateAndLearn.update_data() called LottoAPIUpdater with
api_name='github', which skipped the already-implemented Lottoland ->
GitHub -> lottoAPI fallback chain entirely. The GitHub archive alone
has repeatedly lagged 1-6 days behind actual draws (most recently the
Aug 5 draw, still missing as of Aug 7), causing tips to be generated
and models to be retrained on stale data. Switching to api_name='all'
tries Lottoland first, which has consistently had same-day results in
testing, with GitHub still covering full history/fallback.
Also includes the Aug 5 draw pulled in via this fix and the resulting
model retrain (data update was previously interrupted by a truncated
pipe during manual testing, this completes it).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The graphify code-graph pass confirmed nothing in the active pipeline
(scripts/, README, shell entrypoints) imports or calls these - only
scripts/generators/ultimate_ai_ml_hybrid_generator.py is wired into
automation. Also drops 4 orphaned performance-report JSON files from
the same abandoned generation (Sep 2025). History is preserved in git
if anything here turns out to still be wanted.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Built with a graphify code-graph pass to identify the real dependency
structure. Documents the ingestion -> training -> tip generation ->
notification flow, the EV/quality-score rationale, and several
non-obvious facts surfaced by this session's debugging: automation
runs on launchd not crontab (the crontab comments are stale), the
Lottoland/lottoAPI fallback exists but isn't wired into the update
job, and the repo-root generator scripts are legacy/unused - only
scripts/generators/ultimate_ai_ml_hybrid_generator.py is live.
graphify-out/ itself is gitignored as a regenerable build artifact.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Testing against known real-world popular combinations (1-2-3-4-5-6,
5-10-15-20-25-30) showed the sum-near-mean penalty scored them HIGHER
than spread-out combinations - the opposite of intended. Tight
sequential clusters produce both a strong pattern match AND an extreme
sum from the same underlying cause, so treating "extreme sum" as an
independent unpopularity signal double-counted in the wrong direction
for exactly the combinations it should penalize most.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Since draws are i.i.d., only expected value (jackpot-sharing avoidance)
is actually improvable, not hit probability. Replaces the ad-hoc "lucky
numbers" list with empirically-documented picks, adds general arithmetic-
progression detection (not just +1 consecutive pairs), and scores extreme
odd/even splits and sums higher since humans favor "balanced-looking"
combinations despite every combination being equally likely.
Raises popularity's weight in the quality score from 20% to 50%, since
AI/pattern/recency signals carry no real predictive value and recency
("overdue" numbers) risks converging with other systematic players'
picks, undermining the EV goal. Superzahl selection now uses an EV
heuristic instead of chasing historical draw frequency, which is pure
noise for an independently drawn digit.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds _calculate_popularity_score() which favors number combinations
unlikely to be picked by other players (numbers > 31, no consecutive
sequences, avoiding common "lucky numbers"). This doesn't improve hit
probability (lottery draws are i.i.d. random) but increases expected
value by reducing the chance of sharing a jackpot.
- New 20% weight in quality score
- New Popularity_Score column in tip CSV export
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Added 2026-05-30 and 2026-06-03 draws to AlleLottozahlen.csv (3131 total)
- Retroactive learning for May 30, normal cycle for Jun 3 (44 total cycles)
- Retrained RF + LSTM models on updated dataset
- Generated fresh tips: weekly_lotto_tips_20260605_135532.csv
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Run learning for 2026-05-16 draw (7 11 20 23 27 30 SZ:9)
- Retrain LSTM on updated 3126-draw dataset
- Update generation history with new tips
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Data:
- Add missing draw 2026-05-16 (7 11 20 23 27 30 SZ:9) via GitHub archive
- Run retroactive learning for skipped 2026-01-07 draw
Generator improvements (ported from Eurojackpot):
- Add hard structural filters (sum 100-200, min 1 even + 1 odd per tip)
- Add long-term frequency prior as learner dampener (alpha=0.2)
- Fix ENSEMBLE strategy generating duplicate tips (greedy → weighted random)
- Fix Division-by-Zero edge case in set_frequency_prior
- Fix freq_alpha boundary and clip final adjusted value to [0,1]
- Prevent negative weights in random.choices (floor at 0.001)
- Use vectorized stack().value_counts() for frequency calculation
.gitignore:
- Exclude data/backups/, weekly tip CSVs, performance reports, data/data/
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Cleanup: Old backup files were incorrectly stored in data/data/backups/
instead of data/backups/
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Updated LSTM and ensemble models with latest training data
- Added weekly tips from January 9 to February 4, 2026
- Updated generation history and learning state
- Added performance reports
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Added Lottoland API (https://media.lottoland.com/api/drawings/german6aus49)
for fetching the latest Lotto 6aus49 draw
- Changed strategy to combine both APIs:
1. Lottoland API for the most current draw
2. GitHub Lotto Archive for historical data
- Fixed default data path to use /Projekte/Lotto/data
- Updated AlleLottozahlen.csv with draw from 2026-01-31
This fixes the issue where the GitHub Lotto Archive was outdated
and missing recent draws. Lottoland API provides real-time results.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fixed default data-dir in auto_update_and_learn.py (was pointing to old iCloud path)
- Updated run_update_and_learn.sh to explicitly pass correct data-dir
- Now saves data to /Projekte/Lotto/data instead of iCloud
This ensures automatic updates save to the correct location.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Enhanced Telegram message format to show TOP 3 by Confidence AND Quality
- Added average statistics (Confidence & Quality) to notifications
- Generated new tips with updated data (3,090 draws, latest: Jan 10)
- Added run_update_and_learn.sh wrapper script
- Created com.lotto.update.plist for automated updates
- Updated AlleLottozahlen.csv with latest draws
Benefits:
- Better tip selection with dual metrics visibility
- Clearer understanding of tip performance
- More informed decision-making for users
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Update plist to use new project path structure
- Simplify plist by removing comments
- Add run_tip_generator.sh script for easier execution
- Update data directory path in weekly_tip_generator.py
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Major improvements:
- Deep Learning integration with PyTorch LSTM (Bidirectional, 128→64 units)
- Hybrid predictor: 40% RandomForest + 60% Deep Learning
- LaunchAgent for automatic weekly tip generation (Tue/Fri 21:00)
- Health-Check system with auto-recovery and Telegram alerts
- Model caching and intelligent retraining logic
- Updated CSV data and generated tips
- Performance reports for recent draws
Technical details:
- PyTorch used instead of TensorFlow (Python 3.14 compatibility)
- Apple Silicon MPS acceleration support
- Sequence learning with 20-draw history
- Early stopping and learning rate scheduling
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This project includes multiple AI/ML-based lottery number generators for
German Lotto 6aus49, including pattern analysis, weighted predictions,
and hybrid approaches. Features automated weekly tip generation,
performance tracking, and Telegram bot integration.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>