vccs
Vue 3용 차트 컴포넌트 모음, Recharts에서 포팅
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Projects NHL game totals, flags overs worth a look, and paper-trades them live.
1. the consensus line is 6 or 6.5 (never 5.5), and
2. both teams are projected at or above the high-scoring cutoff (top 40% of last season's team
projections; about 3.09 goals in 2026-27).README 전문 보기 ↗Projects NHL game totals, flags overs worth a look, and paper-trades them live.
Live dashboard: https://prezbo8.github.io/NHL-total-model/
A game is flagged when:
Every game gets a call:
| Call | When | Bet |
|---|---|---|
| SLAM | flagged + both teams good or great at 5-on-5 | OVER, 1 unit |
| 1U | flagged + one team great at 5-on-5 | OVER, 1 unit |
| PASS | other flagged games | no bet |
| AVOID | not flagged, or both teams face strong goalies | no bet |
Take it at the best over book shown on the dashboard. The paper-trading record uses closing
information only: the call at the last run before puck drop, graded at the closing consensus line.
P(7+) is the model's chance of 7+ total goals (wins an over 6.5 and an over 6; exactly 6 pushes an
over 6). It comes from the projected total and how evenly matched the teams are; calls don't use it.
Each team's goals are projected separately for:
then adjusted for:
Only data from the 2020-21 season onward is used.
| What | Source |
|---|---|
| Game stats (xG, goals, ice time by situation) | MoneyPuck |
| Goalie and skater stats | MoneyPuck, NHL stats API |
| Starting goalies | DailyFaceoff + Rotowire + GoaliePost, combined (Confirmed / Likely / Conflict); actual starters from the NHL box score |
| Injuries | ESPN + Rotowire |
| Projected lineups / scratches | DailyFaceoff line combinations vs the official NHL roster |
| Schedule, scores, rosters | NHL API |
| Team skating speed | NHL EDGE (NHL API) |
| Betting lines (open, current, 5 sportsbooks) | Action Network |
| Bets | Win % | ROI | |
|---|---|---|---|
| At the opening line | 580 | 53.7% | +2.6% |
| At the closing line | 840 | 55.1% | +3.0% |
| Line shopping (best book) | about +2 pts more |
The past edge is small (±3–4% uncertainty). The live paper-trading record decides whether it's real. Injury and lineup adjustments were backtested on who actually dressed (2021-26, research/studies/injury_backtest.py): they make projections more accurate and are about the right size.
Every idea tested so far (adopted, kept or rejected, with the numbers) is listed in research/README.md. Check it before testing something new.
.github/workflows/ daily.yml (the run) + keeper.yml (starts it on time) + tests.yml (checks) + monthly.yml (check-up)
src/ everything the daily run uses
model.py daily entry point: `today` projects, flags and logs; also the original model
split_model.py the 5v5 / power-play model used daily
goalies.py players.py goalie and skater data + ratings
speed.py team skating speed (NHL EDGE)
injuries.py lineups.py ESPN injuries, DailyFaceoff projected lineups vs NHL roster
confirm.py starting goalies from DailyFaceoff + Rotowire + GoaliePost combined; Rotowire injuries; actual starters (NHL box score)
odds.py books.py grade.py betting lines (consensus, opening, every sportsbook) and line math
paper.py paper-trading log: log, settle, report
health.py retries every data source until it works, re-runs in 5 min if one still fails, GitHub issue alerts
retune.py monthly check-up: tier cutoffs, call record, calibration, goalie predictions (GitHub issue)
store.py run history in Supabase (every run's projections; skipped without the key)
rule_check.py one-time SLAM rule check at 75 settled picks (data/rule_check.json)
trends.py last-10 and head-to-head context shown on the dashboard
moves.py how each game's projection moved during the day, and why (data/moves/)
dashboard.py builds the website in docs/ (slate, record, accuracy + P(7+) chart, rankings)
backfill.py adds a past day from pre-game data only (marked retroactive)
teams.py paths.py team names, file locations
research/ backtests, not part of the daily run (index: research/README.md)
lib/ shared helpers: history.py (overs rule on every season), sbr.py (2007-22 odds), lineups_hist.py
studies/ one script per tested idea
data/ CSV data
paper_trades.csv the paper-trading log (every logged game, picks, results)
goalie_*.csv skater_seasons.csv opening_lineups.csv team_speed.csv
team_rankings*.csv rankings tab (current + as of each game day)
odds_*.csv sbr_odds.csv historical lines
game_starts.csv referees.csv research inputs (start times, referees)
monthly/ monthly check-up reports
key_players/ moves/ per-day key players and projection-move snapshots (dashboard)
docs/ the website (GitHub Pages)
supabase/schema.sql Supabase tables (nhl_*) for the run history: paste once into the SQL Editor
tests/check_model.py 57 component checks (paper log, settling, goalies, model, injuries, odds, dashboard, projection moves)
Runs at 12:01 AM and every hour from 11:17 AM to 10:17 PM Eastern, plus 15 minutes before each game, all year (daylight saving handled). The time of the last run is shown in the top-right corner of the dashboard.
.github/workflows/keeper.yml stays running on GitHub and starts Daily NHL run at each slot.
GitHub stops any run after 6 hours, so the keeper starts a fresh copy of itself every 5.5 hours;
only one keeper runs at a time. (GitHub's own scheduler was too unreliable for this repo: on
Oct 2, 2026 seven slots in a row never fired.).github/workflows/daily.yml does the work: settles yesterday's games, re-downloads stats,
goalies, injuries, lineups and lines, projects today's games, logs them, rebuilds the dashboard
and commits everything back. Its own hourly :17 schedule stays as a fallback.Run it now: Actions tab → Daily NHL run → Run workflow (or gh workflow run daily.yml).
If the keeper ever stops (no "Keeper" run in progress on the Actions tab), restart it with
Keeper → Run workflow (or gh workflow run keeper.yml).
Before pushing: python3 -m pyflakes src/*.py research/lib/*.py research/studies/*.py tests/*.py and
python3 tests/check_model.py (the Tests workflow runs both, plus a check that the backtest is unchanged).
pip install pandas==3.0.6 numpy==2.5.3 # Python 3.14
python3 src/model.py today [YYYY-MM-DD] # projections + flags (only today's date is logged)
python3 src/paper.py report # paper-trading record
python3 src/dashboard.py # rebuild the website
python3 research/lib/history.py # backtest the overs rule
python3 research/studies/<name>.py # any study (see research/README.md)
python3 tests/check_model.py # 57 component checks (also run on GitHub: Tests workflow)
The first run downloads MoneyPuck's game file (~126 MB, not stored in the repo).
Paper trading only, not betting advice.