In short: Heritage Timberwolves high school football (Vancouver, WA), 2026 season: 3-5. Last game: L 12-28 vs kelso on October 23, 2026. Next: vs shelton, October 30, 2026. Schedule and results, player season stats, stat leaders, unit grades, ScorePirate ranking and the game-by-game log.
| RECORD | 3-5 this season |
| LAST GAME | L 12-28 vs KELSO |
| NEXT GAME | SHELTON (WA) (10/30/2026) |
| UNIT GRADES | Pass Def 61.7 · Rush Def 10.5 |
| ENROLLMENT | 1,636 STUDENTS (2023-24) · SECONDARY |
| TEAM | PASS O | RUSH O | PASS D | RUSH D |
|---|---|---|---|---|
| HERITAGE | -- | -- | 61.7 (-20) | 10.5 (+101) |
Next: vs shelton-shelton-wa, Fri 30 Oct. Matchup report: shelton-shelton-wa at Heritage.
The biggest shift in Heritage's season has come in its offense. Heritage averaged 14.8 points per game over its first 4 games (1-3), #33 in section in that timeframe. In the 4 games since that slow start (2-2), the Timberwolves have averaged 30.8 points per game, a 108% rise, #14 in section in that window. The schedule deserves some of the credit: Heritage's last 4 opponents have averaged 36.7 points per game, a #40 scoring defense in section on the season, against 17.8 points per game, #15 for the first 4. Measured against those opponents' norms (36.7 points per game), Heritage scored 16% less than those defenses usually allow. So the improvement is real, but it still trails what those opponents usually give up. On the season, Heritage ranks #24 in section in scoring.
Heritage's defense from the opening weeks has gone missing since. The Timberwolves allowed 20.0 points per game over their first 3 games (1-2), #17 in section during that time. In the 5 games since that hot start (2-3), Heritage has allowed 29.0 points per game, a 45% rise, #27 in section through those games. On the season, the Timberwolves rank #26 in section in scoring defense.
• Club Heritage has lost 2 straight, and a loss would make it 3 in a row. The last time they lost 3 or more in a row was 2026, a run of 3.
DATA WARNING: HERITAGE OFFENSIVE STATS FOR 10/23/2026 GAME @ KELSO* MISSING
DATA WARNING: HERITAGE OFFENSIVE STATS FOR 10/16/2026 GAME VS. PRAIRIE* MISSING
DATA WARNING: HERITAGE OFFENSIVE STATS FOR 10/09/2026 GAME @ UNION MISSING
DATA WARNING: HERITAGE OFFENSIVE STATS FOR 10/02/2026 GAME VS. MOUNTAIN VIEW* MISSING
DATA WARNING: HERITAGE OFFENSIVE STATS FOR 09/25/2026 GAME @ EVERGREEN* MISSING
DATA WARNING: HERITAGE OFFENSIVE STATS FOR 09/18/2026 GAME @ EMERALD RIDGE MISSING
DATA WARNING: HERITAGE OFFENSIVE STATS FOR 09/11/2026 GAME VS. WASHOUGAL MISSING
DATA WARNING: HERITAGE OFFENSIVE STATS FOR 09/04/2026 GAME @ YELM MISSING
All stat areas in this report are subject to change as box scores are updated.
PROGRAM RECORD
| SEASON | RECORD | PF | PA | PPG |
| 2026 | 3-5 | 182 | 205 | 22.8 |
| 2026 | 3-5 | 22.8 |
| DATE | OPPONENT | SITE | RESULT | SCORE | WIN% |
| 09/04 | @ YELM | at | W | 33-7 | |
| 09/11 | VS. WASHOUGAL | vs | L | 19-25 | |
| 09/18 | @ EMERALD RIDGE | at | L | 0-28 | |
| 09/25 | EVERGREEN | at | L | 7-34 | |
| 10/02 | VS. MOUNTAIN VIEW* | vs | W | 56-27 | |
| 10/09 | UNION | at | W | 41-40 | |
| 10/16 | PRAIRIE | vs | L | 14-16 | |
| 10/23 | @ KELSO* | at | L | 12-28 | |
| 10/30 | VS. SHELTON (WA) | vs | PROJ | -- | -- |
| SEASON TO DATE | 3-5 | 1 REMAINING |
| SPLIT | GP | PPG | OPP PPG | YPG | OPP YPG | PLAYS/G | OPP PLAYS/G |
| OVERALL | 8 | 22.8 | 25.6 | -- | 360.0 | -- | 53.0 |
| HOME | 3 | 29.7 | 22.7 | -- | 356.0 | -- | 62.0 |
| ROAD | 5 | 18.6 | 27.4 | -- | 364.0 | -- | 44.0 |
PPG/OPP PPG use every played game on file. YPG/PLAYS-PER-GAME columns only ever come from games with a full box score on file, which can be a smaller sample than GP -- see the coverage note below when that's the case for this team.
Box-score coverage behind YPG/PLAYS-PER-GAME: Overall 0/8 game(s), Home 0/3 game(s), Road 0/5 game(s).
| DATE | OPPONENT | RESULT | PASS YDS | RUSH YDS | TOTAL YDS | PASS ALW | RUSH ALW | TOTAL ALW | SACKS ALW | SACKS | DEF INT | TO FORCED | TO MAR |
| 9/4 | @ Yelm | W 33-7 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- |
| 9/11 | vs. Washougal | L 19-25 | -- | -- | -- | 191 | 165 | 356 | 1 | -- | -- | 1 | -1 |
| 9/18 | @ Emerald Ridge | L 0-28 | -- | -- | -- | 50 | 314 | 364 | 0 | -- | -- | 0 | -3 |
| 9/25 | @ Evergreen | L 7-34 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- |
| 10/2 | vs. Mountain View | W 56-27 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- |
| 10/9 | @ Union | W 41-40 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- |
| 10/16 | vs. Prairie | L 14-16 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- |
| 10/23 | @ Kelso | L 12-28 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- |
| AVERAGES | -- | -- | -- | 120.5 | 239.5 | 360.0 | 0.5 | -- | -- | 0.5 | -4 (season) |
Averages use only games with that number on file (offense 0/8, defense 2/8, sacks/INT 0/8, sacks allowed 2/8, turnovers 2/8 games). SACKS ALW comes from the opponent's box score; TO FORCED is takeaways; TO MAR is takeaways minus giveaways, and its bottom cell is the season total. Dashes mean not on file.
UNIT INDEX
Pass Defense: grade 61.7/100 (-20 yds/gm vs average)
Rush Defense: grade 10.5/100 (+101 yds/gm vs average)
Unit grades: 0-100 league percentile, adjusted for the opponents faced.
OPPONENT TRACKER
(full explanation: Appendix, Note 1)
| DATE | SITE | OPPONENT | THEIR RECORD | THEIR PPG |
| 2026-10-30 | vs | VS. SHELTON (WA) | 0-2 | 15.5 |
• HER is 2-3 (.400) on the road
• HER is 2-3 (.400) in games decided by more than 8 points
| SPLIT | REC | WIN% | PPG | STRK | |
| YPA 8.0+ | -- | -- | -- | -- | |
| YPA < 8.0 | -- | -- | -- | -- | 8 games without this stat on file |
| Pass Yds 200+ | -- | -- | -- | -- | |
| Pass Yds < 200 | -- | -- | -- | -- | 8 games without this stat on file |
| Rush Yds 100+ | -- | -- | -- | -- | |
| Rush Yds < 100 | -- | -- | -- | -- | 8 games without this stat on file |
| Rush Yds 150+ | -- | -- | -- | -- | |
| Rush Yds < 150 | -- | -- | -- | -- | 8 games without this stat on file |
| YPC 5.0+ | -- | -- | -- | -- | |
| YPC < 5.0 | -- | -- | -- | -- | 8 games without this stat on file |
| YPP 6.0+ | -- | -- | -- | -- | |
| YPP < 6.0 | -- | -- | -- | -- | 8 games without this stat on file |
| YPP 7.0+ | -- | -- | -- | -- | |
| YPP < 7.0 | -- | -- | -- | -- | 8 games without this stat on file |
| Turnovers 1+ | 0-2 | .000 | 9.5 | L2 | |
| Turnovers < 1 | -- | -- | -- | -- | 6 games without this stat on file |
| Turnovers 2+ | 0-2 | .000 | 9.5 | L2 | 6 games without this stat on file |
| Turnovers > 2 | 0-1 | .000 | 0.0 | L1 | 6 games without this stat on file |
| SPLIT | REC | WIN% | PPG |
| Scores <10 | 0-2 | .000 | 3.5 |
| Scores 10-19 | 0-3 | .000 | 15.0 |
| Scores 20-29 | -- | -- | -- |
| Scores 30-39 | 1-0 | 1.000 | 33.0 |
| Scores 40+ | 2-0 | 1.000 | 48.5 |
| SPLIT | REC | WIN% | PPG | STRK | |
| YPA 8.0+ | 0-1 | .000 | 28.0 | L1 | |
| YPA < 8.0 | 0-1 | .000 | 25.0 | L1 | 6 games without this stat on file |
| Pass Yds 200+ | -- | -- | -- | -- | |
| Pass Yds < 200 | 0-2 | .000 | 26.5 | L2 | 6 games without this stat on file |
| Rush Yds 100+ | 0-2 | .000 | 26.5 | L2 | |
| Rush Yds < 100 | -- | -- | -- | -- | 6 games without this stat on file |
| Rush Yds 150+ | 0-2 | .000 | 26.5 | L2 | |
| Rush Yds < 150 | -- | -- | -- | -- | 6 games without this stat on file |
| YPC 5.0+ | 0-1 | .000 | 28.0 | L1 | |
| YPC < 5.0 | 0-1 | .000 | 25.0 | L1 | 6 games without this stat on file |
| YPP 6.0+ | 0-1 | .000 | 28.0 | L1 | |
| YPP < 6.0 | 0-1 | .000 | 25.0 | L1 | 6 games without this stat on file |
| YPP 7.0+ | 0-1 | .000 | 28.0 | L1 | |
| YPP < 7.0 | 0-1 | .000 | 25.0 | L1 | 6 games without this stat on file |
| Turnovers 1+ | 0-1 | .000 | 25.0 | L1 | |
| Turnovers < 1 | 0-1 | .000 | 28.0 | L1 | 6 games without this stat on file |
| Turnovers 2+ | -- | -- | -- | -- | 6 games without this stat on file |
| Turnovers > 2 | -- | -- | -- | -- | 6 games without this stat on file |
| SPLIT | REC | WIN% | PPG |
| Allows <10 | 1-0 | 1.000 | 7.0 |
| Allows 10-19 | 0-1 | .000 | 16.0 |
| Allows 20-29 | 1-3 | .250 | 27.0 |
| Allows 30-39 | 0-1 | .000 | 34.0 |
| Allows 40+ | 1-0 | 1.000 | 40.0 |
| Team | Side | Split | Games | Record | Win% | PPG | Strk |
| HER | OFFENSE | Turnovers 1+ | 2 | 0-2 | .000 | 9.5 | L2 |
| HER | OFFENSE | Turnovers 2+ | 2 | 0-2 | .000 | 9.5 | L2 |
| HER | OFFENSE | Turnovers > 2 | 1 | 0-1 | .000 | 0.0 | L1 |
| HER | OFFENSE | Scores <10 | 2 | 0-2 | .000 | 3.5 | L2 |
| HER | OFFENSE | Scores 10-19 | 3 | 0-3 | .000 | 15.0 | L3 |
| HER | OFFENSE | Scores 30-39 | 1 | 1-0 | 1.000 | 33.0 | W1 |
| HER | OFFENSE | Scores 40+ | 2 | 2-0 | 1.000 | 48.5 | W2 |
| HER | DEFENSE | YPA 8.0+ | 1 | 0-1 | .000 | 28.0 | L1 |
| HER | DEFENSE | YPA < 8.0 | 1 | 0-1 | .000 | 25.0 | L1 |
| HER | DEFENSE | Pass Yds < 200 | 2 | 0-2 | .000 | 26.5 | L2 |
| HER | DEFENSE | Rush Yds 100+ | 2 | 0-2 | .000 | 26.5 | L2 |
| HER | DEFENSE | Rush Yds 150+ | 2 | 0-2 | .000 | 26.5 | L2 |
| HER | DEFENSE | YPC 5.0+ | 1 | 0-1 | .000 | 28.0 | L1 |
| HER | DEFENSE | YPC < 5.0 | 1 | 0-1 | .000 | 25.0 | L1 |
| HER | DEFENSE | YPP 6.0+ | 1 | 0-1 | .000 | 28.0 | L1 |
| HER | DEFENSE | YPP < 6.0 | 1 | 0-1 | .000 | 25.0 | L1 |
| HER | DEFENSE | YPP 7.0+ | 1 | 0-1 | .000 | 28.0 | L1 |
| HER | DEFENSE | YPP < 7.0 | 1 | 0-1 | .000 | 25.0 | L1 |
| HER | DEFENSE | Turnovers 1+ | 1 | 0-1 | .000 | 25.0 | L1 |
| HER | DEFENSE | Turnovers < 1 | 1 | 0-1 | .000 | 28.0 | L1 |
| HER | DEFENSE | Allows <10 | 1 | 1-0 | 1.000 | 7.0 | W1 |
| HER | DEFENSE | Allows 10-19 | 1 | 0-1 | .000 | 16.0 | L1 |
| HER | DEFENSE | Allows 20-29 | 4 | 1-3 | .250 | 27.0 | L1 |
| HER | DEFENSE | Allows 30-39 | 1 | 0-1 | .000 | 34.0 | L1 |
| HER | DEFENSE | Allows 40+ | 1 | 1-0 | 1.000 | 40.0 | W1 |
| Team | Side | Split | Streak | Dates | Record |
(moved to the Appendix, Data Export 1, to keep this section shorter -- the full spreadsheet-paste table is there unchanged)
Full-length explanations and full-size data exports for the shortened notes and relocated tables referenced throughout this report, numbered in the order their pointers appear above.
Explanatory Notes
Note 1 -- OPPONENT TRACKER -- why some cards have no record shown
Only meaningful for an opponent who is ALSO a tracked team in the library -- an opponent with no games on file here at all shows the date and site alone.
Full Data Exports
Data Export 1 -- TRENDS — TAB-SEPARATED (10 columns)
| Team | Side | Type | Stat | Opponent | Window/Meetings | Value | BaselineGames | BaselineAvg | Deviation |
From the games on file through Oct 23.