def build_econometric_validation_html(dm_results, var_results):
validation_html = ""
if dm_results or var_results:
val_rows = ""
if dm_results:
dm_pass = dm_results.get('significant', False) and dm_results.get('winner') == 'Model 1'
dm_col = "#3fb950" if dm_pass else "#e3b341"
val_rows += (
f'
'
f'Predictive Alpha (DM Test) ⓘ
'
f'
{"PASS" if dm_pass else "INCONCLUSIVE"}
'
f'
p = {dm_results.get("p_value", 1.0):.4f}
'
)
if var_results:
var_pass = var_results.get('overall_pass', False)
var_col = "#3fb950" if var_pass else "#f85149"
uc_p = var_results.get('unconditional_coverage', {}).get('p_value', 0.0)
ind_p = var_results.get('independence', {}).get('p_value', 0.0)
diag_text = var_results.get('diagnostic', '')
val_rows += (
f''
f'Tail Risk Validity (VaR) ⓘ
'
f'
{"PASS" if var_pass else "FAIL"}
'
f'
Coverage p = {uc_p:.4f} | Independence p = {ind_p:.4f}
'
+ (f'
{diag_text}
' if diag_text and not var_pass else '')
+ '
'
)
validation_html = (
'Econometric Validation (Out-of-Sample)
'
f'{val_rows}
'
)
return validation_html