PowerForecast Quick Reference
Wizard Steps
| Step | Name | Key Action |
|---|---|---|
| 1 | Business Goal | Select what to forecast (demand, workload, revenue, etc.) |
| 2 | Time Configuration | Set frequency, horizon, confidence level |
| 3 | Data Source | Upload CSV or JSON file |
| 4 | Model Selection | Choose Auto or Manual model selection |
| 5 | Review & Run | Validate and submit forecast |
Business Targets
| Target | Icon | Use For |
|---|---|---|
| Demand | π¦ | Product demand, sales volume, order quantities |
| Workload | π₯ | Staff requirements, task volume, capacity needs |
| Revenue | π° | Sales revenue, income projections |
| Claims | π | Insurance claims, requests, incidents |
| Transactions | π | Transaction volume, payments |
| Custom | βοΈ | Define your own target |
Forecast Frequencies
| Frequency | Code | Best For |
|---|---|---|
| Hourly | H | High-frequency data, real-time monitoring |
| Daily | D | Daily operations, daily sales |
| Weekly | W | Weekly reports, weekly demand |
| Monthly | M | Monthly planning, budget forecasts |
| Quarterly | Q | Quarterly business reviews |
| Yearly | Y | Annual planning, long-term trends |
Confidence Levels
| Level | Use For |
|---|---|
| 80% | Less conservative, narrower intervals |
| 90% | Standard business planning |
| 95% | Default - balanced confidence |
| 99% | High-stakes decisions, risk-averse scenarios |
Scenarios
| Scenario | Icon | Description |
|---|---|---|
| Baseline | π | Most likely outcome (default) |
| Optimistic | π | Best-case scenario |
| Pessimistic | π | Worst-case scenario |
| Stress | β οΈ | Stress testing, extreme conditions |
Model Selection Modes
| Mode | Icon | Description |
|---|---|---|
| Automatic | π€ | PowerForecast analyzes data and selects best models |
| Manual | π― | Choose specific models (AutoARIMA, ETS, SeasonalNaive) |
Available Models
| Model | Best For |
|---|---|
| AutoARIMA | Automatic ARIMA selection, handles trends and seasonality |
| ETS | Exponential Smoothing, handles various patterns |
| Theta | Trend extrapolation (including exponential growth) |
| SeasonalNaive | Strong seasonal patterns, baseline comparison |
| MSTL | Multiple/complex seasonalities |
| Naive | Random-walk baseline (always used as the accuracy benchmark) |
Under Auto, a heuristic shortlists candidates and one cross-validation pass
picks the champion (lowest CV RMSE) per series. The chosen model, its
MAPE/RMSE/MAE, and the Naive baseline are reported in the result.
API Quick Reference (Port 8020)
All responses use the PDP ProductResponseEnvelope. Base path /api/powerforecast/v1.
Health check
curl http://localhost:8020/health
Submit an async job (recommended; the wizard uses this)
curl -X POST http://localhost:8020/api/powerforecast/v1/jobs \
-H "Content-Type: application/json" -d @forecast-spec.json
β {"jobId":"jobId_...","status":"partial",...}
Poll status, then fetch result + diagnostics
curl http://localhost:8020/api/powerforecast/v1/jobs/{jobId}
curl http://localhost:8020/api/powerforecast/v1/jobs/{jobId}/result
curl http://localhost:8020/api/powerforecast/v1/jobs/{jobId}/diagnostics
Synchronous run (returns the full result in one call)
curl -X POST http://localhost:8020/api/powerforecast/v1/forecast \
-H "Content-Type: application/json" -d @forecast-spec.json
List available models
curl http://localhost:8020/api/powerforecast/v1/models
```Job/result/diagnostics state is stored in Redis β there is no separate
storage service.
Data Format
CSV Format
```csvunique_id,ds,y
product_1,2024-01-01,100
product_1,2024-02-01,120
product_2,2024-01-01,50
product_2,2024-02-01,55
```JSON Format
```json[
{
"unique_id": "product_1",
"ds": ["2024-01-01", "2024-02-01", "2024-03-01"],
"y": [100, 120, 105]
},
{
"unique_id": "product_2",
"ds": ["2024-01-01", "2024-02-01", "2024-03-01"],
"y": [50, 55, 52]
}
]
```Required Fields:
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
| `Ctrl+S` | Save specification |
| `Escape` | Close modal |
| `Enter` | Confirm / Next step |
Troubleshooting Quick Fixes
| Problem | Solution |
|---|---|
| Data upload fails | Check CSV/JSON format matches expected structure |
| Forecast returns errors | Verify data has enough points (minimum 2Γseasonal period) |
| Models not selecting | Check data quality - missing values or outliers may affect selection |
| API offline | Check port 8020 (engine) and that Redis is reachable |
| Poor forecast quality | Review diagnostics + the accuracy column (champion vs Naive); consider preprocessing or different models |
File Locations
| Component | Path |
|---|---|
| Forecast Engine API | `forecast-api/` |
| Wizard | `forecast-wizard/` |
| Templates (real datasets) | `forecast-templates/` |
| Dataset generator + provenance | `forecast-datasets/` |
| Demos | `forecast-demos/` |
| Tests | `forecast-api/tests/` |
| Documentation | `Documentation/` |
Environment URLs
| Environment | Wizard | Engine API | Template source (PowerAdmin) |
|---|---|---|---|
| Local | `forecast-wizard/index.html` (served static) | localhost:8020 | localhost (PowerAdmin) |
| Production | (static host) | forecast-api.planningpowertools.com | admin-api.planningpowertools.com |
Data Quality Options
| Option | Description |
|---|---|
| Handle Missing Values | Automatically interpolate missing data points |
| Handle Outliers | Detect and handle outliers using IQR method |
Forecast Output Files
After running a forecast, you can download:
1. Specification File (forecast_specification_{jobId}.json) - Complete spec with data for re-running
2. Results File (forecast_results_{jobId}.json) - Forecast results (incl. accuracy) with actual data
3. Diagnostics File (forecast_diagnostics_{jobId}.json) - Residual tests + quality assessment
4. Profiling File (forecast_profiling_{jobId}.json) - Statistical profiling details
Files are named with the server-assigned jobId, so they map directly to
/jobs/{jobId}/result and /jobs/{jobId}/diagnostics.