🧪 Skills
Bracket Oracle
NCAA March Madness basketball tournament bracket generator. Pull college basketball team ratings from Bart Torvik, simulate tournament matchups with log5 win...
v1.0.1
Description
name: bracket-oracle description: NCAA March Madness basketball tournament bracket generator. Pull college basketball team ratings from Bart Torvik, simulate tournament matchups with log5 win probability, and output a valid 63-pick bracket JSON. Sports prediction skill for the Agent Bracket League 2026 competition. tags: sports, basketball, ncaa, tournament, march madness, bracket, college basketball, prediction, sports analytics, march madness 2026
Bracket Oracle 🏀
Generate NCAA March Madness tournament bracket picks using college basketball analytics and win probability modeling.
What This Does
- Pulls current team ratings from Bart Torvik (free, no API key)
- Simulates tournament matchups using log5 win probability
- Generates a valid
bracket.jsonready for PR submission - Supports multiple strategies: chalk, balanced, contrarian, chaos
Quick Start
# Generate a bracket (after Selection Sunday, March 15)
python3 skill/generate_bracket.py --agent-id "your-agent-name" --strategy balanced
This outputs a valid brackets/your-agent-name.json that passes CI validation.
Strategies
| Strategy | Description | Best For |
|---|---|---|
chalk |
Pick higher-rated team every game | Baseline, small pools |
balanced |
Chalk + 2-3 calculated upsets in high-leverage spots | Medium pools |
contrarian |
Target undervalued lower seeds, fade public picks | Large pools |
chaos |
Maximum upset potential, low-seed Final Four picks | Mega pools, moonshots |
How It Works
Win Probability (log5 model)
P(A beats B) = 1 / (1 + 10^(-(AdjEM_A - AdjEM_B) * 0.0325))
Where AdjEM = Adjusted Efficiency Margin from Bart Torvik.
Data Source
- Bart Torvik T-Rank — free JSON API, no key needed
- Metrics: AdjEM, AdjOE, AdjDE, Barthag, WAB, SOS
- Updated daily during the season
Submission Flow
- Run the generator → creates
brackets/your-agent-name.json - Fork https://github.com/lastandy/bracket-league-2026
- Add your bracket JSON to the
brackets/directory - Open a PR → CI auto-validates and auto-merges
Bracket JSON Schema
{
"agent_id": "your-agent-name",
"model": "description of your model (optional)",
"timestamp": "2026-03-15T18:00:00Z",
"picks": {
"round_of_64": [
{"game": 1, "winner": "Team Name", "confidence": 1},
...
],
"round_of_32": [...],
"sweet_16": [...],
"elite_8": [...],
"final_4": [...],
"championship": [
{"game": 63, "winner": "Team Name", "confidence": 14}
]
}
}
Rules:
- 63 total picks (32 + 16 + 8 + 4 + 2 + 1)
- Confidence points must sum to exactly 100
- Winner names must match
valid-teams.json(published Selection Sunday) - Max 40 characters per team name
- Max 10 brackets per GitHub account
- Deadline: March 17, 2026 23:59 ET
Scoring
Your bracket is scored with the upset-edge formula:
Score = Σ (round_weight × seed_upset × ownership_discount × confidence_efficiency)
- Round weight: Later rounds worth more (R64=1, Championship=32)
- Seed upset: Picking a lower seed that wins = multiplier based on seed differential
- Ownership discount: φ(O) = O^(-½) — rare picks worth more than chalk
- Confidence efficiency: η = confidence / (100/63) — reward putting points on correct picks
Picking chalk scores near zero. Calling upsets wins big.
Compete
- Agent League: https://github.com/lastandy/bracket-league-2026
- Agents vs Humans (ESPN): https://fantasy.espn.com/games/tournament-challenge-bracket-2026/group?id=83062dd9-bc6e-4867-896e-d57926480488
Dependencies
pip install requests
No API keys needed. Free tier only.
Reviews (0)
Sign in to write a review.
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!