Files

32 lines
1.5 KiB
SQL

-- View: signal_hit_rate
-- Daily summary of signal accuracy across all symbols and model versions.
-- Designed for the Superset prediction accuracy dashboard.
-- Requirements: 10.1, 10.2, 10.3
-- Design ref: Section 9.2 (prediction confidence vs realized move)
CREATE OR REPLACE VIEW lakehouse.stonks.signal_hit_rate AS
SELECT
pvo.dt,
pvo.model_version,
COUNT(*) AS total_predictions,
COUNT(CASE WHEN pvo.outcome = 'correct' THEN 1 END) AS correct_predictions,
COUNT(CASE WHEN pvo.outcome = 'incorrect' THEN 1 END) AS incorrect_predictions,
COUNT(CASE WHEN pvo.outcome = 'neutral' THEN 1 END) AS neutral_predictions,
-- Hit rate
CAST(
COUNT(CASE WHEN pvo.outcome = 'correct' THEN 1 END) AS DOUBLE
) / NULLIF(COUNT(*), 0) AS hit_rate,
-- Average confidence of correct vs incorrect
AVG(CASE WHEN pvo.outcome = 'correct' THEN pvo.predicted_confidence END)
AS avg_confidence_correct,
AVG(CASE WHEN pvo.outcome = 'incorrect' THEN pvo.predicted_confidence END)
AS avg_confidence_incorrect,
-- Average realized move magnitude
AVG(ABS(pvo.actual_move_pct)) AS avg_abs_move_pct,
AVG(pvo.actual_move_pct) AS avg_move_pct
FROM
lakehouse.stonks.prediction_vs_outcome pvo
GROUP BY
pvo.dt,
pvo.model_version;