9. Performance Tracking and KPIs
9.1 $10,000 hypothetical framework¶
Groups:
ira_top5,brokerage_top5,conviction9— from top 5 IRA byRisk_Adj_Score, top 5 Brokerage byRisk_Adj_Leader_Score, and up to 9 conviction names (fromCross_Strategy_Conviction.csvafter aligning risk column).Allocation: $10,000 split equally across positions in that group (
10000 / n).Shares:
entry_value / entry_priceat first appearance; rolls forward with state.
9.2 Actual portfolios¶
my_ira,my_brokerage— fromEtrade_IRA_Report.csvandEtrade_Brokerage_Report.csv; uses real Shares, Cost_Basis, Market_Price.
9.3 Entry / exit¶
Entry: First time a ticker appears in the modeled set, state records entry date, prices, SPY at entry.
Exit: Ticker drops from the list →
Exit_Status= EXITED for that week’s history row; realized vs SPY still computed for that snapshot.
9.4 Weekly guard¶
If
performance_history.csvalready containsWeek_Numberequal to the current ISO week (YYYY-Www),snapshot()returnsFalseand does not append (unlesspython performance_tracker.py --force).
9.5 KPI definitions (per group)¶
Portfolio_Return_Pct: (\frac{\sum \text{Current_Value}}{\sum \text{Entry_Value}} - 1) for OPEN rows (hypothetical and actual).
SPY_Return_Pct: SPY return from earliest open entry date in group to now (see
_kpi_for_rows).Alpha: Portfolio return minus SPY return (same window).
Avg_Risk_Adj_Score: Mean of per-row risk scores for open positions.
Portfolio_WACC: Value-weighted
WACC_Stock.Hit_Rate (actual only): % of holdings with
StatusinON_LISTorLEADER.Conviction_Pct (actual only): % of holdings with
Cross_Strategytrue.