Score several forecasts against a shared actual and rank them.
Each forecast is aligned to actual on the index intersection and scored on the requested metrics. The result is a tidy table indexed by approach name, with one column per metric plus an n column (overlap length), sorted ascending by the first requested metric so the best approach is the top row.
This is pure: no logging, no plotting, no mutation. Use it to compare, for example, a four-zone bottom-up sum against a single combined model (compute each approach’s forecast first, e.g. via backtesting_forecaster).
Subset of SUPPORTED_METRICS to compute, in output order. "mae", "rmse", and "bias" are in the units of the series; "mape" is a percentage. The ranking uses metrics[0].