The per-URL fidelity score is computed as \( \text{Fidelity} = \frac{|\text{survived}|}{|\text{survived}| + |\text{lost}| + |\text{distortions}|} \times 100 \), defaulting to \( 100.0\% \) when no claims exist, while the overall aggregate fidelity score is calculated as the arithmetic mean \( \bar{F} = \frac{1}{N} \sum_{i=1}^{N} \text{Fidelity}_i \) across all \( N \) successfully evaluated URLs.
flowchart TD
subgraph SingleURL["Stage 1: Per-URL Fidelity Calculation"]
S["survived (count)"]
L["lost (count)"]
D["distortions (count)"]
Sum["Total Claims = S + L + D"]
S --> Sum
L --> Sum
D --> Sum
Cond{"Total Claims > 0?"}
Sum --> Cond
Formula["Fidelity = (S / Total Claims) * 100"]
Fallback["Fidelity = 100.0% (Zero-claim fallback)"]
Cond -- Yes --> Formula
Cond -- No --> Fallback
end
subgraph Aggregate["Stage 2: Aggregate Scoring"]
U1["Fidelity URL 1"]
U2["Fidelity URL 2"]
UN["Fidelity URL N"]
Formula --> U1
Fallback -.-> U2
Mean["Aggregate Fidelity = (1 / N) * SUM(Fidelity_i)"]
U1 --> Mean
U2 --> Mean
UN --> Mean
end