from __future__ import annotations from typing import Any import streamlit as st def render_model_explainer(rows: list[dict[str, Any]]) -> None: if not rows: return with st.expander("Algorithm Breakdown: Recommendation Explainer"): for row in rows: batter_name = row.get("batter_name", "Unknown") slot = row.get("slot", "") reasons = row.get("reason_tags", []) or [] st.markdown(f"**{slot}: {batter_name}**") st.write( { "fair_hr_odds": row.get("fair_hr_odds"), "book_hr_odds": row.get("book_hr_odds"), "hr_edge": row.get("hr_edge"), "adjusted_edge": row.get("adjusted_edge"), "hr_bet_ev": row.get("hr_bet_ev"), "confidence": row.get("confidence"), "confidence_bucket": row.get("confidence_bucket"), "tier": row.get("recommendation_tier"), "priority_score": row.get("priority_score"), "reason_tags": reasons, } )