R² vs mean (JSON r_squared): generalized R² vs predicting mean PhenoCam each day — same numeric value as NSE_PC, not (Pearson r)²; can be negative. nRMSE (RMSE / mean PhenoCam). ΔNSE_PC = NSE_PC(σ20)−NSE_PC(σ30): positive → σ20 better; negative → σ30 better. Mean residual (fused−PhenoCam): positive → fusion high vs PhenoCam on average; negative → low; compare BtI vs ItB in the same row (closer to 0 = less mean bias). Tables at the top when metrics.json has derived (regenerate with metrics_stats.py / run.py).