Skip to content
Back to skills

Build A Totals Model

ASecurity

Worked example of model_development for totals (over/under) markets — scoring-process baseline, pace adjustment, holdout evaluation.

  • 6 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 2, 2026
ai-agentspythongo

Security analysis

A100/100

Scanned September 2, 2026

npx -y skills add DanielTomaro13/sportsdata-agents --skill build_a_totals_model --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Build A Totals Model?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Build A Totals Model
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/danieltomaro13-build-a-totals-model/badge)](https://www.skillsdirectory.com/skills/danieltomaro13-build-a-totals-model)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: build_a_totals_model
description: Worked example of model_development for totals (over/under) markets — scoring-process baseline, pace adjustment, holdout evaluation.
triggers: [totals model, over/under model, total points model, model the total]
---
# Build a totals model — worked example

Follow `model_development` for the method; this is the totals instantiation.

## Recipe (run_python, one script)

1. **Data**: per-game totals for both teams across as many seasons as the regime
   allows — count EVENTS against the parameter budget (model_development §2: 10–20
   outcomes per parameter; a recent-window-only model must say how little it knows).
   Weight recency (exponential decay, half-life tuned on train) rather than
   truncating to a tiny window.
2. **Model the scoring process**: totals are sums of scoring events —
   Normal(μ, σ) for high-scoring sports (basketball), Poisson for low-scoring
   (soccer/NHL goals). μ from pace-adjusted team offense/defense; σ estimated, not
   assumed (floor it sensibly; print it).
3. **Probability**: `p_over = 1 - CDF(line)` — hand-rolled normal CDF
   (`0.5 * (1 + math.erf((x - mu) / (sigma * 2**0.5)))`) keeps the sandbox
   dependency-free.
4. **Features beyond pace** (ask the user which they value — model_development §3):
   rest days, altitude/venue, weather for outdoor sports. Each one is a parameter;
   justify it.
5. **Holdout**: train on the earlier slice, collect {prob, outcome} on the later
   slice ONLY, `calibration_metrics` → `save_model` (params: μ/σ method, weights,
   seasons, line convention) → `record_predictions` with honest `predicted_at`.

## Honesty rules

- A Brier ≥ 0.25 on a balanced set is coin-flip territory — say so plainly.
- The bar is the closing total (`query_line_movement`), not the base rate
  (quant_concepts: CLV) — report model vs market side by side.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.