OpenAthlete
AGPLv3 기반 지구력 훈련 플랫폼—EU 호스팅, 투명한 로직, 자체 호스팅·전체 내보내기 지원
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A college football prediction model and website. Every week it projects every FBS game's score, compares the projection with the betting line, and publishes the picks with the kickoff weather forecast and each team's starting-quarterback status.
Website: https://jono-bit-trade.github.io/jonos-picks/ (live once setup step 2 below is done)
CFBD_KEY. Value: the key CollegeFootballData emailed you. Never put the key in a file here.After that it runs on its own:
| When (Central time) | What happens |
|---|---|
| Sunday evening | Saturday's results are in: ratings rebuild and each game's early pick locks at the current line |
| Monday night | Full refresh, picks and the backtest |
| Wednesday to Saturday mornings | Latest lines, kickoff weather forecasts and quarterback status |
| Thursday and Friday nights, Saturday afternoon and night | Scores every 2 hours, so finished games show their results on the board |
The model checks whether each team's starting QB is out. Past games are figured out automatically from box scores. For this week's games, it reads data/qb_status.csv, which you update from the conference availability reports. Open the file on GitHub, click the pencil icon, add a line, and commit:
season,week,team,qb,status,note
2026,9,Texas,Arch Manning,questionable,ankle
status is one of: available, probable, questionable, doubtful, outout and doubtful are projected with the starter missing.questionable shows both projections on the site: if he plays and if he sits.The next morning's run picks it up, or click Run workflow to update right away.
There's no free source for betting splits (share of bets vs. share of money), so you add them from a service you use, such as DraftKings splits on VSiN or Action Network. Add a line per game to data/splits.csv; percentages are for the home team's spread and for the over:
season,week,home,away,bets_home_pct,money_home_pct,bets_over_pct,money_over_pct
2026,9,Texas,Ole Miss,38,61,70,52
The weekly board then flags:
Every logged split is saved with the pick, so the History page's "Sharp money and reverse line movement" table measures over time whether these signals win. The thresholds are SHARP_GAP, PUBLIC_MIN and RLM_MIN_MOVE in src/config.py.
| Step | File | What it does |
|---|---|---|
| Data | src/get_data.py | Downloads games, betting lines, efficiency stats, box scores, talent, returning production, recruiting, transfer portal, coaches and stadiums from CollegeFootballData |
| Ratings | src/ratings.py | Opponent-adjusted offense and defense ratings in points, starting each season from a roster-based preseason prior |
| Weather | src/weather.py | Free kickoff forecasts and past game-day weather from Open-Meteo |
| QB out | src/qb.py | Starting QB out flag: box scores for past games, data/qb_status.csv for this week |
| Features | src/features.py | Efficiency matchups, pace, turnovers, penalties, rest, travel, altitude, time zones, coaching changes, situations |
| Model | src/model.py | Gradient-boosted trees blended with the rating projection |
| Backtest | src/backtest.py | Replays past seasons week by week using only information available at the time |
| Site | src/predict.py, docs/ | Writes the week's picks, ratings and record for the website |
All tunable settings are in src/config.py. To test a change, edit a value and run the backtest (or ask Claude to). Keep a change only if it improves results across several seasons.
The History page grades every game since 2018 four ways, the way the sites it was modeled on do:
Filter by season, team or minimum edge. "Where the model is strongest" shows the spread record at each edge size and highlights any level that holds 60% or better over at least 50 games.
Past seasons are replayed walk-forward: each game uses only ratings and a model built from games before it, so the history isn't flattered by hindsight.
Run Actions → tune-model → Run workflow (20 to 60 minutes). It tries combinations of rating settings, feature groups and blend weights on the older seasons, picks the best, then finds the smallest edge where the spread record reached 60%. It then checks those choices on the 3 newest seasons, which played no part in choosing them; the How it works page shows that holdout result. The winning settings are saved to data/tuned.json and used for this week's predictions too, so upcoming picks and the History page always come from the same model.
A realistic target: 60%+ picking winners is normal; against the spread, every game, 53 to 56% is very good. 60% against the spread is only realistic on the subset of games with the biggest edges, and only if the holdout seasons confirm it.
Lines tend to move toward the side the model likes: in 2023-2025, lines moved toward the model's side about 70% of the time when it disagreed with the opener by 5+ points, and its picks went about 57% against the opening line, versus about 51% against the closing line. So the model's value is early in the week.
data/line_history.csv, so picks can later be graded at the line on a specific day, such as Wednesday.data/predictions_log.csv keeps the last projection made before each kickoff, and the Record page grades those. When the site first launches mid-season, earlier games of the season are filled in by replaying the model with only pre-game information, and the site labels them as backfilled.
The first download uses roughly 700 CollegeFootballData calls. After that, upkeep is about 80 calls a month. If your plan's monthly limit is lower than the first download needs, run the backfill in pieces: on your computer, python src/get_data.py --from-season 2019, or ask Claude to change the workflow.
pip install -r requirements.txt
echo YOUR_KEY > key.txt # key.txt is never uploaded (.gitignore)
python src/get_data.py
python src/predict.py
python src/backtest.py
cd docs && python -m http.server # then open http://localhost:8000
Tests (no key needed): python tests/test_parsers.py and bash tests/smoke_test.sh.
Projections are for entertainment and analysis, not betting advice.