# 2026 Hydration Reviewer Guide

This guide explains the 2026 data hydration status for the Sacboyz NFL Picks framework.
It covers how to read the new coverage surfaces, what terminology means, and what decisions
are needed before the 2026 season goes live.

> **Offseason Mode.** This is a 2026-forward planning document.
> Provider calls remain disabled. No live NFL picks are available. No lines are posted yet.
> This is not a current-picks surface.

---

## Overview: What Is 2026 Data Hydration?

"Data hydration" refers to the process of loading 2026 NFL season data into the system's
stat models and coverage indexes:

- **Historical data** (via nflverse/nflreadpy): game schedules, player stats, usage, and depth
  charts from prior seasons. This data is already partially available for model training.
- **Live lines** (via Odds API): current player prop lines and game lines. These are only
  available once the 2026 NFL season begins and games are scheduled.

The system is currently in **static/offline mode by default** — no live provider calls are made,
no Odds API credits are consumed, and no picks are published.

---

## What "No Lines Yet" Means

The phrase **"No Lines Yet"** appears in the 2026 coverage surfaces to indicate:

1. The 2026 NFL season has not started yet.
2. No sportsbooks have posted 2026 regular-season player prop lines.
3. The Odds API has **not been called** — Odds API credits consumed: 0.
4. The system cannot produce current picks, because there is nothing to pick against.

This is intentional and expected. "No Lines Yet" is not an error. It will resolve when:
- The 2026 schedule is confirmed.
- Sportsbooks begin posting preseason or Week 1 lines.
- Provider decisions are approved (see `PROVIDER_DECISIONS.md`).
- Codex enables live provider calls per the go/no-go process.

---

## How to Read the 2026 Data Coverage Dashboard

**File:** `docs/mock/data_coverage_2026.html`

The coverage dashboard shows all V1 stat families (passing, rushing, receiving, team, specialty)
with their current 2026 data status:

| Status | Meaning |
|---|---|
| **Ready** | nflverse historical data loaded AND 2026 live lines available |
| **Partial** | nflverse historical data loaded; 2026 live lines not yet posted |
| **Pending** | Additional scope or provider decisions needed before 2026 |

As of this writing, no markets are **Ready** — all are **Partial** or **Pending** because the
2026 season has not started. This is correct and expected.

### Coverage Table Filters

- **Category**: Filter by passing / rushing / receiving / team / specialty.
- **Status**: Filter by ready / partial / pending.

---

## How to Read the V1 Stat-Type Readiness Matrix

**File:** `docs/mock/stat_type_readiness.html`

The readiness matrix extends the coverage dashboard with V1 market lifecycle status
(from `nfl_picks/config.py`):

| Market Status | Meaning |
|---|---|
| **Trusted** | Proven in production with sufficient settled history |
| **Watch** | V1 active; currently monitored for promotion threshold |
| **Research** | Scope decision pending; not yet V1 active |
| **Paused** | Deferred from current V1 scope |

Most player prop markets are currently **Watch** (active V1, monitoring for threshold promotion).
Team markets (moneyline, spread, game total, team total) and specialty markets (anytime TD) are
**Research** — they require additional scope decisions before becoming V1 active.

### Readiness Matrix Filters

- **Category**: Filter by passing / rushing / receiving / team / specialty.
- **Hydration Status**: Filter by ready / partial / pending.

---

## 2026 Data Coverage vs. 2025 Historical Replay

These are distinct concepts:

| | 2025 Historical Replay | 2026 Data Coverage |
|---|---|---|
| **Purpose** | Legacy example of a completed slate | Forward-looking readiness planning |
| **Season** | 2025 (past) | 2026 (upcoming) |
| **Picks** | Historical — Not Current Picks | None yet — No Lines Yet |
| **Lines** | Cached static snapshot from Week 10 2025 | Not posted yet |
| **Where** | `docs/replays/2025_wk10_sunday/index.html` | `docs/mock/data_coverage_2026.html` |
| **Status** | Legacy example; Odds API credits used: 0 | Offseason; Odds API credits: 0 |

The 2025 replay remains as a **legacy example** for UI and product feedback purposes.
No new 2025 or earlier hydration work will be added.

---

## Safety Guardrails

The following safety rules are enforced at all times:

- **Provider calls remain disabled** by default. Runtime mode is `live_no_call`.
- **Live publish remains disabled** until the go/no-go process completes.
- The system operates in **static/offline mode by default**.
- No live REST or WebSocket connections to third-party data providers are made.
- Odds API credits consumed: **0**.
- No pick is labeled "lock," "guaranteed," "today's NFL picks," "live NFL picks," or "current picks."
- All coverage surfaces display "Not Current Picks" prominently.

---

## When These Surfaces Change

The coverage and readiness surfaces will update when:

1. **Provider decisions are approved** — see `PROVIDER_DECISIONS.md`.
2. **2026 go/no-go process completes** — see `WEEK1_PROVIDER_READINESS_REVIEW.md`.
3. **Codex enables live provider calls** — this is a Codex-owned decision (not Antigravity).
4. **The 2026 NFL season starts** and sportsbooks post Week 1 lines.

The Antigravity lane owns the **presentation and reviewer surfaces** only.
Runtime, provider, and go/no-go decisions are **Codex-owned**.

---

## Key Files Reference

| File | Purpose |
|---|---|
| `docs/mock/data_coverage_2026.html` | 2026 data coverage dashboard UX |
| `docs/mock/data_coverage_2026.json` | Machine-readable coverage payload |
| `docs/mock/stat_type_readiness.html` | V1 stat-type readiness matrix UX |
| `docs/mock/stat_type_readiness.json` | Machine-readable readiness matrix |
| `docs/replays/2025_wk10_sunday/index.html` | 2025 legacy replay example (not current picks) |
| `docs/PROVIDER_DECISIONS.md` | Approval register for live data sources |
| `docs/WEEK1_PROVIDER_READINESS_REVIEW.md` | Week 1 review sequence and checklist |
| `nfl_picks/data_coverage_2026.py` | Static data module — no network calls |
| `nfl_picks/stat_type_readiness.py` | Static readiness matrix — no network calls |
| `nfl_picks/config.py` | V1 market definitions and thresholds |

---

## Smoke Check

To verify the 2026 hydration surfaces are properly deployed on Cloudflare Pages:

```powershell
python run_pages_smoke_check.py --base-url https://nfl-picks-9js.pages.dev
```

After a deploy, confirm these paths return the expected content:

| Path | Expected |
|---|---|
| `/mock/data_coverage_2026.html` | `2026 Data Coverage` |
| `/mock/stat_type_readiness.html` | `V1 Stat-Type Readiness Matrix` |

If either returns an HTML error page or 404, ask Chris to verify the Cloudflare Pages build
output directory is still set to `docs`.
