Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Community Hockey Index (CHI) — IceBreaker Bay

An open-source model that identifies which communities need hockey programming most.

Part of IceBreaker Bay — the first AI agent for community hockey, submitted to the NHL/NHLPA Hockey Innovation Competition 2026.


Agent (LLM-powered layers)

Scoring is only the first step. Once the CHI identifies a hockey desert, the IceBreaker Bay agent designs a matching program, writes bilingual parent outreach and launch logistics, and projects a funder-ready impact narrative — turning a ranking into a ready-to-run plan. These three capabilities are LLM-powered (Groq) and build directly on the rubric output.

Four capabilities, mapped to the pitch:

# Capability What it does Powered by
01 Discover Rank communities by unmet hockey need CHI rubric (chi_model.py)
02 Design Match an existing program to the community Groq LLM (agent/design.py)
03 Write Draft bilingual outreach + procurement + coach schedule Groq LLM (agent/write.py)
04 Project Generate a PYD-grounded impact narrative Groq LLM (agent/project.py)

Setup

pip install -r requirements.txt

Then provide your Groq API key one of two ways:

# Option A — environment variable
export GROQ_API_KEY=<your-key>

# Option B — local .env file (auto-loaded by the agent, gitignored)
cp agent/.env.example agent/.env   # then paste your key into agent/.env

Get a free key (no credit card) at console.groq.comAPI KeysCreate API Key. Requires Python 3.10+.

Run

python agent/run_agent.py "East San Jose"

The runner prints progress for all four stages and saves a full Markdown report to runs/<community>_<timestamp>.md — program design, English + Spanish (or Tagalog) parent letters, a procurement list, a coach schedule, and the funder narrative. Try python agent/run_agent.py "Daly City" for a Tagalog example.

The CHI/rubric model is the foundation that decides where to act; the agent/ modules are the LLM-powered extensions that decide what to do and how.


What It Does

The Community Hockey Index scores neighborhoods on 6 weighted dimensions using publicly available census, school district, and health data:

Dimension Weight What It Measures
Youth Density 15% Number of potential participants
Diversity 20% Communities historically underrepresented in hockey
Access Gap 25% Distance to nearest rink + absence of existing programs
Economic Barrier 15% Free/reduced lunch eligibility as cost barrier proxy
Wellness Need 15% Gap in youth physical activity vs. national average
Language Barrier 10% English Learner percentage in local schools

Higher score = greater unmet need.

Bay Area Results

Rank Community CHI Youth Pop Nearest Rink Programs
1 ★ East San Jose 76.4 22,512 25 min 0
2 ★ Gilroy 74.8 16,689 45 min 0
3 ★ Richmond 70.4 25,618 30 min 0
4 East Oakland 68.1 16,900 20 min 0
5 Daly City 66.9 18,882 25 min 0
6 Hayward 66.9 39,108 15 min 0
7 South San Francisco 56.5 12,559 20 min 0
8 Fremont 44.5 50,710 5 min 2
9 Palo Alto 28.5 15,085 15 min 2
10 Willow Glen/Cambrian 25.7 11,000 10 min 3

★ = Priority targets for IceBreaker Bay pilot

The model correctly separates unserved hockey deserts (CHI > 65, zero programs) from already-served communities (CHI < 30, 2-3 existing programs).

Quick Start

# Clone the repo
git clone https://github.com/kzahiri/icebreaker-bay-chi.git
cd icebreaker-bay-chi

# Run the model
python chi_model.py

# Or explore the Jupyter notebook
jupyter notebook notebooks/chi_analysis.ipynb

No dependencies beyond Python 3.8+ standard library.

Project Structure

icebreaker-bay-chi/
├── chi_model.py              # Core model: scoring algorithm + Bay Area data
├── agent/                    # LLM-powered agent layers (Groq)
│   ├── chi_data.py           #   01 Discover — rubric output for priority communities
│   ├── catalog.yaml          #   program catalog the matcher chooses from
│   ├── design.py             #   02 Design — match a program to a community
│   ├── write.py              #   03 Write — bilingual outreach + logistics
│   ├── project.py            #   04 Project — funder-ready impact narrative
│   ├── llm.py                #   shared Groq client wrapper
│   └── run_agent.py          #   end-to-end runner
├── runs/                     # Generated agent reports (Markdown)
├── notebooks/
│   └── chi_analysis.ipynb    # Interactive analysis with visualizations
├── data/
│   ├── chi_results.csv       # Exported results (CSV)
│   └── chi_results.json      # Exported results (JSON)
├── requirements.txt          # Agent dependencies (groq, pyyaml)
├── README.md
└── LICENSE

Data Sources

About IceBreaker Bay

IceBreaker Bay is an autonomous AI agent built on SAP Joule Studio Agent Builder that discovers which communities need hockey, designs a custom program for each one, and delivers measurable outcomes. It uses the Community Hockey Index to identify hockey deserts, then generates program plans tailored to each community's demographics, languages, and existing infrastructure.

Submitted to the NHL/NHLPA Hockey Innovation Competition 2026 (Bay Area Edition) by Kayvan Zahiri, M.S. Data Science & AI, University of San Francisco.

License

MIT — use it, adapt it, score your own city.

About

Community Hockey Index — an open-source model that identifies which communities need hockey programming most. IceBreaker Bay / NHL Innovation Competition 2026.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages