Cross-Project Audit
Feature parity matrix, shared analytics inventory, and cross-pollination recommendations — v6.0 capstone.
| Feature | JBL Template | CJBL Template | Coverage | Gap / Notes |
|---|---|---|---|---|
| Player roster/list | players.html | siue_roster.html | Both | JBL adds Impact Score tier badges; CJBL adds Morey Ball role column. |
| Player roster grid | players.html (grid) | siue_roster_grid.html | Both | CJBL has dedicated card-grid; JBL folds it into players list via tab. |
| Player detail page | player.html | cjbl_player.html | Both | JBL: scouting report, tendencies, proficiency, heatmap, dev projections. CJBL: ratings, CWV, Morey Ball fit. |
| Player comparison | comparison.html | — | JBL | No side-by-side recruit/roster comparison for CJBL. AD can't compare two recruits on one screen. |
| Leaderboards | leaderboards.html | siue_leaderboards.html | Both | JBL: league-wide leaders. CJBL: OVC + all-conference. Equivalent purpose. |
| Behavioral analytics | — | siue_behavioral.html | CJBL | JBL page removed. CJBL: tendency badges. |
| Player Impact Score display | players.html, player.html | siue_leaderboards.html (partial) | Partial | CJBL computes Impact Score but only shows it on leaderboards — not on roster page or player detail. |
| Feature | JBL Template | CJBL Template | Coverage | Gap / Notes |
|---|---|---|---|---|
| Team overview/home | denver.html | siue.html | Both | JBL: full gap analysis + win model. CJBL: roster summary + nav hub. CJBL is thinner but covers basics. |
| Rotation projection | denver_rotation.html | siue_rotation.html | Both | JBL: NBA templates + Morgado overlay. CJBL: rotation optimizer. Strong parity. |
| Lineup analysis | lineups.html | siue_lineups.html | Both | JBL: 5/4/3/2-man for all 36 teams. CJBL: 5/4/3/2-man for SIUE only. |
| Season analytics | game_dynamics.html | siue_season.html + siue_season_hub.html | Both | JBL: situational/streak analysis. CJBL: play type/PBP metrics. Functional parity. |
| Standings | standings.html | — | JBL | No OVC standings page for CJBL. AD has no dashboard view of conference race or playoff picture. |
| Feature | JBL Template | CJBL Template | Coverage | Gap / Notes |
|---|---|---|---|---|
| Draft board / recruit explorer | draft_board.html | siue_recruits.html | Both | JBL: 894-player board, Table/Grid/Pedigree views. CJBL: 22K recruit explorer with Morey Ball filter. |
| Prospect / recruit detail | prospect.html | siue_recruit.html | Both | JBL: pro projection + Draft Profile Score. CJBL: scouting card + CWV + Morey Ball fit. Strong parity. |
| Draft development | draft_development.html | — | JBL | No CJBL equivalent tracking how recruiting classes develop post-signing. |
| Draft decision tree | draft_decision_tree.html | — | JBL | No CJBL structured recruiting decision framework. |
| Draft scenarios | draft_scenarios.html | — | JBL | No CJBL win model what-if scenario tool for recruiting. |
| Recruiting pipeline hub | — | siue_recruiting_hub.html | CJBL | College-specific recruiting funnel mechanic. No JBL equivalent needed. |
| Recruiting activity log | — | siue_recruiting.html | CJBL | College-specific. No JBL equivalent needed. |
| Transfer portal | — | siue_transfers.html | CJBL | College-specific mechanic. JBL uses trade predictor instead. |
| Feature | JBL Template | CJBL Template | Coverage | Gap / Notes |
|---|---|---|---|---|
| Cap management | cap_management.html | — | JBL | No salary cap in college. Not applicable. |
| FA strategy | fa_strategy.html | — | JBL | Not applicable to CJBL. |
| XLE finder | xle_finder.html | — | JBL | Extended lineup exception calculator. Not applicable to CJBL. |
| Trade predictor | trade_predictor.html | — | JBL | No salary mechanic in college recruiting. Not applicable. |
| Offseason roadmap | offseason_roadmap.html | — | JBL | No CJBL equivalent offseason action plan dashboard. A CJBL version showing recruiting timeline would have high value. |
| Feature | JBL Template | CJBL Template | Coverage | Gap / Notes |
|---|---|---|---|---|
| Opponent scouting index | opponents.html | siue_opponents.html | Both | JBL: 35 opponents. CJBL: schedule + conference opponents. Strong parity. |
| Opponent detail | opponent.html | siue_opponent.html | Both | Same Morgado engine on both sides. Strong parity. |
| Free agents | free_agents.html | — | JBL | Recruiting pages cover the CJBL equivalent. |
| Coaches | coaches.html | siue_coaching.html | Both | JBL: 272-coach explorer. CJBL: own staff analysis only. Gap: no CJBL coach hiring explorer. |
| Feature | JBL Template | CJBL Template | Coverage | Gap / Notes |
|---|---|---|---|---|
| Reports hub | reports.html | siue_reports.html | Both | JBL: text reports from 17 scripts. CJBL: text reports from CJBL scripts. Strong parity. |
| Knowledge base | — | siue_knowledge.html | CJBL | CJBL has dashboard-embedded markdown viewer. JBL lacks a quick-reference knowledge page. |
| QA / site tools | qa.html | — | JBL | Site health and data freshness warnings. Lower priority for CJBL. |
| Cross-project audit | audit.html | — | JBL | This page. Meta-level inventory of both sides. |
| Script | Location | What It Computes | Scope | Portability |
|---|---|---|---|---|
| player_on_court_impact.py | JBL Analytics/analysis | On-Court Impact (OCI) from box score + on/off data | JBL | N/A |
| cjbl_on_court_impact.py | CJBL/analysis | Adapted OCI for college stats (PBP stint data) | CJBL | N/A |
| hidden_rating_impact.py | JBL Analytics/analysis | Ridge regression of WS/48 ~ 32 ratings; residual = hidden signal | JBL | N/A |
| cjbl_hidden_rating_impact.py | CJBL/analysis | Same residual approach adapted for college stats | CJBL | N/A |
| player_impact_score.py | JBL Analytics/analysis | 1-100 composite: 45% OCI + 35% Win Model Score + 20% Hidden Rating | JBL | N/A |
| cjbl_player_impact_score.py | CJBL/analysis | Same 3-component composite for college players | CJBL | N/A |
| Script | Location | What It Computes | Scope | Portability |
|---|---|---|---|---|
| 01_team_correlations.py | JBL Analytics/analysis | Pearson/Spearman: 32 ratings vs win% across 36 teams | JBL | Adaptable |
| 03_regression_model.py | JBL Analytics/analysis | OLS/Ridge/Lasso LOOCV win% models; produces WIN_VALUE_COEFS_FULL | JBL | Adaptable |
| college_win_value.py | jbl_shared | CJBL college win model; produces COLLEGE_WIN_VALUE_COEFS | Shared | N/A |
| 18_position_ridge.py | JBL Analytics/analysis | Position-specific Ridge models (Guard/Wing/PF/C) | JBL | Adaptable |
| cjbl_ovc_analysis.py | CJBL/analysis | OVC-specific Ridge regression (conference-only sample) | CJBL | Adaptable |
| Script | Location | What It Computes | Scope | Portability |
|---|---|---|---|---|
| team_defensive_composition.py | JBL Analytics/analysis | Defensive archetype analysis, gaps by lineup type | JBL | Adaptable |
| team_offensive_units.py | JBL Analytics/analysis | Offensive archetype gaps, spacing analysis, proficiency vs top-5 | JBL | Adaptable |
| opponent_scouting.py | JBL Analytics/analysis | Opponent scouting reports using Morgado framework | JBL | N/A |
| cjbl_opponent_scouting.py | CJBL/analysis | Same Morgado framework for CJBL opponents | CJBL | N/A |
| morgado_strategy.py | jbl_shared | Pure-function Morgado defensive recommendation engine | Shared | N/A |
| cjbl_archetypes.py | CJBL/analysis | Offensive/defensive archetype distribution for CJBL teams | CJBL | Adaptable |
| 05_archetype_system.py | JBL Analytics/analysis | Archetype distributions and fit profiling for JBL players | JBL | Adaptable |
| Script | Location | What It Computes | Scope | Portability |
|---|---|---|---|---|
| player_development.py | jbl_shared | Core dev model: peak age, peak CA, trajectory (shared) | Shared | N/A |
| 18_player_development.py | JBL Analytics/analysis | Denver-focused: dev stages, per-player trajectory, outlier detection | JBL | Adaptable |
| 26_player_development_projections.py | JBL Analytics/analysis | Batch dev projections for all 516 pro players | JBL | Adaptable |
| cjbl_roster_analysis.py | CJBL/analysis | SIUE roster: CWV rankings, depth tiers, TC focus recommendations | CJBL | Adaptable |
| Script | Location | What It Computes | Scope | Portability |
|---|---|---|---|---|
| pipeline_builder.py | jbl_shared | Builds draft_pipeline.json: character screen, pro projection, win value ranking | Shared | N/A |
| pro_projection.py | jbl_shared | College-to-pro rating translation + Win Value model application | Shared | N/A |
| scouting_consensus.py | jbl_shared | Draft Profile Score: scouting consensus x production x efficiency multiplier | Shared | N/A |
| draft_bridge.py | jbl_shared | Maps pro outcomes back to draft position for calibration | Shared | N/A |
| cross_league_projections.py | jbl_shared | Batch projection chains: HS->College->Pro Win Value | Shared | N/A |
| 21_draft_development.py | JBL Analytics/analysis | How draft picks develop by pick range (1-10, 11-30, etc.) | JBL | Adaptable |
| Script | Location | What It Computes | Scope | Portability |
|---|---|---|---|---|
| 20_trade_predictor.py | JBL Analytics/analysis | Trade valuation, salary matching, package generation | JBL | N/A |
| 21_salary_strategy.py | JBL Analytics/analysis | Contract valuation model, Denver cap scenarios | JBL | N/A |
| 22_fa_negotiation.py | JBL Analytics/analysis | Comparable contract analysis, FA leverage assessment | JBL | N/A |
| 23_cap_management.py | JBL Analytics/analysis | Trade packages to reach $135M hard trading limit | JBL | N/A |
| contract_intelligence.py | jbl_shared | Year-by-year Win Value vs salary projections for 516 pros | Shared | N/A |
| trade_watchlist.py | JBL Analytics/analysis | Ranks trade targets by gap-fill value + character screen | JBL | Adaptable |
| Script | Location | What It Computes | Scope | Portability |
|---|---|---|---|---|
| coach_analysis.py | JBL Analytics/analysis | Coach FA analysis, fit scoring, AC recommendations | JBL | Adaptable |
| 24_coaching_philosophy.py | JBL Analytics/analysis | Declared philosophy vs roster-actual philosophy gap analysis | JBL | Adaptable |
| 24_rotation_projection.py | JBL Analytics/analysis | Win model-weighted rotation optimization; produces rotation_projection.json | JBL | Adaptable |
| 25_philosophy_modifiers.py | JBL Analytics/analysis | Philosophy-specific Win Value coefficient multipliers | JBL | Adaptable |
| Script | Location | What It Computes | Scope | Portability |
|---|---|---|---|---|
| config.py | jbl_shared | All coefficients, paths, rating maps, translation table | Shared | N/A |
| marginal_fit.py | jbl_shared | Marginal wins added by swapping a prospect into a roster | Shared | N/A |
| denver_system_fit.py | jbl_shared | Gap-fill scoring (Denver-specific; could generalize to any team) | Shared | Adaptable |
| nightly_pipeline.py | jbl_shared | Nightly orchestration: scrape -> rebuild -> pipeline -> site | Shared | N/A |
| data_loader.py | JBL Analytics/analysis | Shared data loading utilities for JBL analysis scripts | JBL | N/A |
| cjbl_data_loader.py | CJBL/analysis | Same loading pattern for CJBL data files | CJBL | N/A |
Ranked by GM/AD user value. Direction: JBL->CJBL | CJBL->JBL | NEW CJBL | SHARED
OVC standings, conference record, SIUE's playoff position. All data in cjbl_all_teams.json. AD has no dashboard view of the conference table without logging into jblfl.com.
cjbl_player_impact_score.py already computes the 1-100 composite; cjbl_player_impact.json exists. Scores are only shown on leaderboards. Pure template change — zero new computation.
JBL draft_scenarios.html lets the GM swap prospects into the lineup. AD has no equivalent for 'if I sign recruit X, what happens to team CWV?' College Win Value is already computed per-player. Moderate effort.
JBL offseason_roadmap.html shows the GM's action plan. A CJBL version showing recruiting class targets, scholarship status, walk-on slots, and phase timeline. siue_recruiting_hub.html covers ~70% of the logic.
JBL comparison.html compares two players side-by-side on 32 ratings and win model. AD equivalent for comparing two recruits (or recruit vs. roster player) would be immediately useful in recruiting decisions.
JBL draft_development.html shows how picks develop over time. A CJBL equivalent showing previous SIUE classes: who improved, who plateaued, how freshman ratings translated. Validates recruiting evaluation criteria.
JBL briefing.html gives quick-reference GM summary. A CJBL equivalent combining season record, roster health, recruiting class status, top Impact Scores, and gaps. Mostly a new template pulling existing data.
Expose college_win_value.py via new MCP tool cjbl_win_model(ratings) analogous to jbl_win_model. Lets Claude run 'what if this recruit had these ratings' interactively. Minimal code.
Parameterize as team_system_fit(team, league) so both the GM and AD can use the same gap-fill scoring for their respective rosters.
CJBL siue_knowledge.html renders markdown docs in the dashboard. Adding a JBL equivalent (cap rules, trade limits, key analytical findings) saves the GM from opening CLAUDE.md manually.
JBL has 18_position_ridge.py for Guard/Wing/PF/C-specific coefficients. A CJBL equivalent lets the AD evaluate recruits against position-appropriate benchmarks. Requires regression on 368-team data segmented by position.
25_philosophy_modifiers.py derives philosophy-specific coefficient multipliers. For CJBL: 'At Morey Ball, 3PT matters 1.3x more.' College philosophy win rates already exist in college_win_value.py.
No salary mechanic or asset-exchange structure in college recruiting.
No salary cap in college.
College signing is asynchronous; no live draft night event equivalent.
JBL trades are covered by the trade predictor. Portal mechanic is college-specific.
AD doesn't need to tier all 368 teams. The standings page covers the strategic need.
- + CJBL Standings page (#1 — Ready)
- + Impact Score on CJBL roster + player pages (#2 — Ready)
- + CJBL Player Comparison page (#5 — Adaptable)
- + CJBL Executive Briefing (#7 — Adaptable)
- + JBL Knowledge Base page (#10 — Adaptable)
- + CJBL Win Model Scenario Tool (#3 — Adaptable)
- + CJBL Offseason Roadmap (#4 — Adaptable)
- + CWV MCP tool cjbl_win_model() (#8 — Ready)
- + Position-Specific College Win Value (#11 — Adaptable)
- + CJBL Recruiting Class Retrospective (#6 — Adaptable)
- + Generalize denver_system_fit.py (#9 — Adaptable)