Time Series Viewer¶
Route: /series/:uniqueId
The Time Series Viewer is the drill-down screen for a single item-site series. It shows all the information the system has computed about one series: the full historical demand, every forecast method overlaid, accuracy metrics, the ridge chart of forecast evolution, and the override editor.
Navigate here by clicking any row in the Dashboard or by using the Detail link in the sidebar.

Table of Contents¶
- Header: Item and Site Selectors
- The Main Chart
- METHOD_COLORS Legend
- Method Comparison Table — Metrics
- Hyperparameter Panel
- Rationale Panel
- Forecast Table
- Ridge Chart — Forecast Evolution
- Backtest Review Panel
- Feature Reliability Panel
- IO Tab — Inventory Optimisation
- Supply Tab
- Netting Tab
- Configuration Panel (all tabs)
- Locked Method
- Navigation Overlay (from Exceptions)
- Navigation Back to Dashboard
Header: Item and Site Selectors¶
At the top of the page, two searchable multi-select dropdowns let you navigate directly to any series:
- Item dropdown — type to search by item code or name. Recently accessed items appear first. Supports multi-select.
- Site dropdown — filters to sites available for the selected item(s). Also supports search and multi-select.
When you select a combination, the URL updates and all panels below reload automatically.
Clearing the dropdowns with the × button resets back to the empty state.
Aggregate Mode (Multi-Select)¶
Selecting two or more items (or all items in a segment) activates aggregate mode. A badge below the tabs shows N series · aggregate indicating how many series are combined.
In aggregate mode:
| Tab | Behaviour |
|---|---|
| Forecast | Summed historical + locked best-method forecast across all selected series. Editable with proportional write-back per SKU. |
| Netting | KPI row (Total Forecast, Open/Netted, Firm Demand, Supply Plan) + summed stacked bar chart. No per-series table. |
| EOQ | Averaged fill rate, summed safety stock, averaged lead time and wait time, summed marginal value; averaged unit/order/holding costs. |
| IO | Same as EOQ — aggregate MEIO metrics. |
| Supply | Combined inventory projection chart (summed across selected series) + all supply orders for the selection with type filter. |
Use the Segment dropdown (left toolbar) with no item/site selection to aggregate an entire segment at once.
The Main Chart¶

The main chart is a Plotly.js chart showing:
- Historical demand — thick dark grey line (
#374151). This is the actual demand data after outlier correction. - Best method forecast — coloured line in the method's assigned colour, shown as a solid line continuing from the last historical point into the 24-week horizon.
- All other method forecasts — each shown as a thinner line in its own colour (see the legend below for the colour map).
- Quantile bands — shaded region around the best method forecast showing the confidence interval (typically 80% and 95% bands). The band represents the range within which actual demand is expected to fall with the given probability.
Zoom and Pan¶
Use standard Plotly controls:
- Scroll to zoom in on the time axis
- Click and drag to pan
- Double-click to reset zoom to the full date range
- Use the Date Range Picker widget below the main chart to set a precise start and end date for the visible window
Aggregation¶
A small dropdown above the chart lets you aggregate the display from the native frequency (weekly) to Daily, Weekly, Monthly, Quarterly, or Yearly. All values are summed when aggregating upward. The forecast is also aggregated — if you switch to Monthly view, the weekly forecast periods are summed into months.
METHOD_COLORS Legend¶
The system uses a fixed colour per method so you can always identify a line without reading the legend:
| Method | Colour |
|---|---|
| AutoETS | Blue #2563eb |
| AutoARIMA | Red #dc2626 |
| AutoTheta | Green #16a34a |
| SeasonalNaive | Purple #9333ea |
| HistoricAverage | Orange #ea580c |
| CrostonOptimized | Teal #0891b2 |
| MSTL | Magenta #c026d3 |
| TimesFM | Indigo #4f46e5 |
| Historical (actuals) | Dark grey #374151 |
| Causal (fleet-driven) | Amber #b45309 |
These colours are consistent across the Dashboard, Time Series Viewer, and Exceptions screen.
Method Comparison Table — Metrics¶

Below the main chart, the Metrics panel shows a table with one row per forecasting method that was evaluated for this series. The best method row is highlighted in green.
Metric Columns¶
| Metric | Full Name | What it means |
|---|---|---|
| MAE | Mean Absolute Error | Average absolute difference between forecast and actual, in demand units. Lower is better. |
| RMSE | Root Mean Square Error | Similar to MAE but penalises large errors more heavily. Sensitive to outliers. |
| MASE | Mean Absolute Scaled Error | MAE relative to a naïve seasonal baseline. MASE < 1 means the method beats the naïve baseline. The primary metric used for method selection. |
| MAPE | Mean Absolute Percentage Error | Error as a percentage of actual demand. Not meaningful when actual demand is near zero. |
| SMAPE | Symmetric MAPE | A more stable percentage error measure that handles near-zero actuals better. |
| Bias | Mean Error (signed) | Average of (forecast − actual). Positive = systematic over-forecast. Negative = systematic under-forecast. The closer to zero the better. |
| WAPE | Weighted APE | Sum of absolute errors divided by sum of actuals. Equivalent to MAE/Mean. Less distorted by zeroes than MAPE. |
| Coverage | Quantile Coverage | Percentage of actual values that fell inside the forecast confidence interval. |
Which metric matters most?
For method selection, Mirabelle uses a composite weighted score across multiple metrics. MASE is typically the most important single metric for comparing methods. Bias is particularly important for inventory: a persistently positive bias inflates safety stock unnecessarily.
How to Read Bias¶
The Bias column shows the average signed error. To interpret it:
- Positive bias (e.g. +50) — the method forecasts 50 units more than actual on average. Over-forecasting. Leads to excess inventory if uncorrected.
- Negative bias (e.g. −30) — the method forecasts 30 units less than actual on average. Under-forecasting. Leads to stockouts.
- Zero — no systematic bias. Individual errors cancel out.
The bias value is in the same unit as the demand. For percentage context, compare it to the Mean Demand shown in the Dashboard.
Hyperparameter Panel¶
Below the metrics table, the Hyperparameters panel shows the model-specific parameters that were used during training. For AutoARIMA this includes the (p,d,q)(P,D,Q) orders; for AutoETS it shows the error/trend/seasonality model type.
You can edit hyperparameters directly here to override the auto-selected values for subsequent runs. Changes take effect the next time you run the Forecasting step.
Rationale Panel¶
The Rationale panel explains in plain text why the characterisation step assigned the series to its demand category (e.g. "intermittent", "seasonal", "complex"). It also shows which methods were candidates based on the characterisation rules.
Forecast Table¶

The Forecast Table panel shows the numeric forecast values for all methods, week by week, across the 24-week horizon.
Columns are the forecast periods (weeks). Rows are methods. The best method row is shaded green.
Adjustment and Override Rows¶
Directly below the best method row are two special rows that are revealed by clicking the expand toggle (▶) in the method name cell:
Adjustment (±) — Type an additive delta (positive or negative number) into any cell. The adjustment is added to the base forecast for that week. Example: if the forecast is 100 and you type +20, the adjusted forecast becomes 120. Useful for known promotional uplifts.
Override — Type a complete replacement value. If you type 150, the forecast for that week becomes exactly 150 regardless of what the model computed. Use this for confirmed firm orders or planned events the model cannot see.
Override vs Adjustment
An Override completely replaces the model's value. An Adjustment is additive on top of it. If both are set for the same week, the override takes precedence.
Both rows are saved automatically 400 ms after you stop typing (debounced auto-save). A brief "Saved" confirmation appears.
Keyboard Navigation¶
The forecast table supports Excel-like keyboard navigation:
| Key | Action |
|---|---|
| Tab | Commit current edit and move to next cell |
| Shift+Tab | Move to previous cell |
| Arrow keys | Navigate cells (when not editing, or when cursor is at text boundary) |
| Enter | Commit edit and stay on cell |
| Escape | Cancel edit |
| Ctrl+C | Copy selected range to clipboard (tab-separated, Excel-compatible) |
| Ctrl+V | Paste from clipboard |
| Delete / Backspace | Clear selected cells |
Number Display¶
All numeric values in the grid follow the Number of Decimals setting from the Locale section of Settings. For example, if set to 1, the value 1250 displays as 1,250.0. Percentage columns always show 1 decimal.
Excel-Like Selection¶
Click and drag across cells to select a rectangular range. When a range is selected, press Ctrl+C to copy the values to the clipboard as tab-separated text — compatible with pasting into Excel. Click a column header to select the entire column; click the row header to select the entire row.
Ridge Chart — Forecast Evolution¶

The Ridge Chart (also called the forecast evolution chart) stacks multiple forecast origins vertically. Each horizontal band represents a forecast made at a different point in the past, using the data available at that time.
Reading the ridge chart:
- The x-axis is calendar time.
- Each band shows the forecast made from that origin point extending forward.
- Where bands align, the model was consistent across origins. Where they diverge, the model changed its view as new data arrived.
- If the latest forecast (the topmost band) is much higher than previous bands, the model has recently detected an upward shift in demand.
The ridge chart is particularly useful for spotting forecast instability — a series where the model's view changes dramatically each week suggests erratic or lumpy demand that may be better served by a simpler method.
Backtest Review Panel¶
The Backtest Review panel shows the rolling backtest window results in chart form. The backtest is computed by repeatedly withholding the most recent N weeks and measuring how well each method predicted those withheld weeks. This is the source of the metric values in the comparison table.
The chart shows actual demand (grey) and the backtested forecast (coloured by method) for each backtesting window. Click a method in the legend to isolate it.
Feature Reliability Panel¶
The Feature Reliability panel appears when a series has been through the feature-reliability pipeline step. It shows how strongly each external covariate correlates with demand for this specific series, including whether the correlation is same-period or lagged.
Importance bar chart¶
At the top, a horizontal bar chart ranks features by their reliability score (0–100%). This score is a composite of correlation, MAPE, and bias — see Feature Reliability Scoring for details.
Reliability table¶
Below the bar chart, a table shows one row per feature:
| Column | Description |
|---|---|
| Feature | Feature name from the registry |
| Score | Composite reliability score (0–100%) |
| Corr (same pd) | Pearson correlation between feature and demand in the same period (lag 0) |
| Best lag | How many periods earlier the feature correlates most with current demand; "0 (same pd)" = no lagged relationship is stronger than same-period; "2 pd earlier" = feature 2 periods ago predicts demand today best |
| Lag profile | Mini bar chart of correlation at each lag; bold bar = best lag (blue = positive, red = negative) |
| MAPE | Mean Absolute Percentage Error using the best-lag shift |
| Bias | Normalised mean signed error |
| N | Number of overlapping observations |
The lag profile mini-chart uses the same colour coding as the Feature Parameter Sets reliability table — see the lag profile documentation for how to interpret the bars.
IO Tab — Inventory Optimisation¶
Clicking the IO tab (if present) opens the Inventory Optimisation view for this series. It shows:
- Service Level target — the target line-fill-rate for this item-site
- EOQ — the Economic Order Quantity computed by the EOQ pipeline step
- Safety Stock — the recommended safety stock quantity from the MEIO algorithm
These values come from the MEIO results. You can override them in the Exceptions workflow.
Supply Tab¶
Clicking the Supply tab opens a supply projection chart for this series: on-hand inventory, on-order quantities, and projected future on-hand, week by week. See Supply Planning for full details.
Netting Tab¶
The Netting tab shows the netted forecast — the statistical forecast adjusted for firm orders, open purchase orders, and in-transit stock. This is the quantity that the supply planning engine uses as its demand signal.
Configuration Panel (all tabs)¶
Every tab in the Time Series Viewer has a Configuration Panel at the bottom. It is collapsed by default; click the header to expand it.
The panel shows the active configuration that produced the data you are viewing for the current pipeline:
Forecast Tab¶
| Section | Content |
|---|---|
| Forecast scenario | Name and ID of the forecast scenario linked to the current pipeline |
| Forecast parameter set | The parameter set used for this series (segment-resolved or default) — shows method list, horizon, outlier settings |
| Outlier detection | Detection method (IQR / Z-score / STL), correction method, thresholds |
IO Tab¶
| Section | Content |
|---|---|
| MEIO scenario | Name and ID of the MEIO scenario |
| MEIO parameter set | Segment-resolved MEIO parameters (service level target, budget constraint) |
| EOQ parameters | Holding rate, order cost |
Supply Tab¶
| Section | Content |
|---|---|
| Supply scenario | Name and ID of the supply scenario |
| Supply parameters | Source priority, netting direction, netting forecast type, horizon weeks |
| Planning periods | Read-only list of the planning horizon start/end weeks |
Clicking a configuration item¶
Each scenario and parameter set is rendered as a link. Clicking it navigates to the screen where that configuration can be edited:
- Forecast scenario / parameter set → Processes → Forecast Params tab
- MEIO scenario / parameter set → Processes → MEIO tab (or MEIO Scenarios screen)
- Supply scenario / parameter set → Processes → Supply tab
This provides a direct path from "what configuration is driving this result?" to "where do I change it?" without memorising which screen manages which configuration.
Locked Method¶
If you change the forecasting method for a series (via the method dropdown in the Metrics table or the Exceptions screen), the new method is locked for that series. A small padlock icon appears next to the method name in the table, and the locked method is used for all subsequent pipeline runs unless manually unlocked.
Navigation Overlay (from Exceptions)¶
When you navigate to the Time Series Viewer directly from the Exceptions screen, a small navigation overlay appears:
- Up arrow (top-centre) — returns to the Exceptions list, scrolling back to the exception row you came from
- Left arrow — previous exception in the list
- Right arrow — next exception in the list
The previous and next two exceptions are preloaded in the background so navigation is instant.
Navigation Back to Dashboard¶
Use the browser Back button or click Overview in the sidebar to return to the Dashboard. The sidebar's Detail link always points back to the most recently viewed series.