When will an exchanger
need attention?
A reproducible test of physics-guided fouling forecasts: infer resistance from plant-style measurements, project thermal duty, and expose the uncertainty before a cleaning decision.
Explore the evidence ↓Plan a pilotInspect the decision horizon
Choose a campaign and model. The observed prefix initializes the forecast; the forecast then uses the assumed operating conditions available at issuance. The actual future is revealed only for scoring. The displayed cleaning threshold is the configured fraction of clean duty under actual evaluation conditions, a reference for judging the forecast.
Show the selected trace as a data table
Judge the model against alternatives
A useful hybrid must compete with simple engineering baselines and direct machine learning on entire unseen campaigns. A low conditional timing error alone is insufficient: event detection and forecast errors matter too.

| Split | Model | Outlet RMSE · K | Duty RMSE · kW | Crossing precision | Crossing recall | Timing MAE · days¹ | True crossings | n pred crossings | Joint crossings | forecast failures |
|---|---|---|---|---|---|---|---|---|---|---|
| Nominal | Black Hybrid | 1.49 ± 0.06 | 50.73 ± 4.29 | 1.00 ± 0.00 | 1.00 ± 0.00 | 5.97 ± 1.07 | 20.00 ± 0.00 | 20.00 ± 0.00 | 20.00 ± 0.00 | 0.00 ± 0.00 |
| Nominal | Causal Trend | 1.52 ± 0.00 | 49.57 ± 0.00 | 1.00 ± 0.00 | 1.00 ± 0.00 | 4.60 ± 0.00 | 20.00 ± 0.00 | 20.00 ± 0.00 | 20.00 ± 0.00 | 0.00 ± 0.00 |
| Nominal | Direct Ml | 1.57 ± 0.08 | 79.22 ± 2.42 | 1.00 ± 0.00 | 0.96 ± 0.04 | 12.42 ± 0.73 | 20.00 ± 0.00 | 19.20 ± 0.84 | 19.20 ± 0.84 | 0.00 ± 0.00 |
| Nominal | Fixed Rate | 1.62 ± 0.03 | 57.46 ± 1.98 | 1.00 ± 0.00 | 1.00 ± 0.00 | 7.55 ± 1.28 | 20.00 ± 0.00 | 20.00 ± 0.00 | 20.00 ± 0.00 | 0.00 ± 0.00 |
| Nominal | Grey Hybrid | 1.44 ± 0.01 | 48.55 ± 2.46 | 1.00 ± 0.00 | 1.00 ± 0.00 | 5.49 ± 1.21 | 20.00 ± 0.00 | 20.00 ± 0.00 | 20.00 ± 0.00 | 0.00 ± 0.00 |
| Nominal | Persistence | 5.17 ± 0.00 | 221.33 ± 0.00 | — | 0.00 ± 0.00 | — | 20.00 ± 0.00 | 0.00 ± 0.00 | 0.00 ± 0.00 | 0.00 ± 0.00 |
| Nominal | White Hybrid | 1.44 ± 0.01 | 47.37 ± 1.43 | 1.00 ± 0.00 | 1.00 ± 0.00 | 4.30 ± 0.70 | 20.00 ± 0.00 | 20.00 ± 0.00 | 20.00 ± 0.00 | 0.00 ± 0.00 |
| Shift | Black Hybrid | 2.05 ± 0.04 | 92.72 ± 5.12 | 1.00 ± 0.00 | 1.00 ± 0.00 | 3.23 ± 0.15 | 24.00 ± 0.00 | 24.00 ± 0.00 | 24.00 ± 0.00 | 0.00 ± 0.00 |
| Shift | Causal Trend | 1.70 ± 0.00 | 49.97 ± 0.00 | 1.00 ± 0.00 | 1.00 ± 0.00 | 1.38 ± 0.00 | 24.00 ± 0.00 | 24.00 ± 0.00 | 24.00 ± 0.00 | 0.00 ± 0.00 |
| Shift | Direct Ml | 5.87 ± 0.28 | 216.28 ± 9.62 | 1.00 ± 0.00 | 1.00 ± 0.00 | 15.15 ± 0.58 | 24.00 ± 0.00 | 24.00 ± 0.00 | 24.00 ± 0.00 | 0.00 ± 0.00 |
| Shift | Fixed Rate | 2.59 ± 0.26 | 131.92 ± 12.45 | 1.00 ± 0.00 | 1.00 ± 0.00 | 5.85 ± 1.49 | 24.00 ± 0.00 | 24.00 ± 0.00 | 24.00 ± 0.00 | 0.00 ± 0.00 |
| Shift | Grey Hybrid | 1.72 ± 0.18 | 66.51 ± 7.04 | 1.00 ± 0.00 | 1.00 ± 0.00 | 2.25 ± 0.75 | 24.00 ± 0.00 | 24.00 ± 0.00 | 24.00 ± 0.00 | 0.00 ± 0.00 |
| Shift | Persistence | 9.27 ± 0.00 | 408.04 ± 0.00 | — | 0.00 ± 0.00 | — | 24.00 ± 0.00 | 0.00 ± 0.00 | 0.00 ± 0.00 | 0.00 ± 0.00 |
| Shift | White Hybrid | 1.53 ± 0.09 | 79.43 ± 9.45 | 1.00 ± 0.00 | 1.00 ± 0.00 | 3.17 ± 1.07 | 24.00 ± 0.00 | 24.00 ± 0.00 | 24.00 ± 0.00 | 0.00 ± 0.00 |
¹ Timing MAE is evaluated only where a threshold crossing is observed and the model also predicts a crossing within the evaluation horizon. It must be read with crossing recall, precision, and the count of joint crossings. A campaign that never crosses is right-censored; it is not assigned an artificial event at the last day. Empty values mean the metric is undefined for that group.
Does more history help?
Training size counts independent campaigns, rather than adjacent observations from the same trajectory. This plot uses the shifted holdout split. The learning curve shows the results actually measured; it does not assume that a hybrid always wins with less data.

Know where confidence breaks down
Operating shifts are a warning signal
A validity detector measures how far operating conditions depart from training. Its value depends on both flag frequency and the errors inside and outside the flagged region. A flag is not a diagnosis of fouling.
Measurement quality is part of the model
Noise can distort resistance inversion before the learner sees a target. The noise study reruns the forecast workflow with the specified sensor perturbations. Compare it with the cleanest setting before proposing a pilot.
Validity-domain evidence
| Split | Detector | flag rate | n flagged | n total | error flagged K | error inside K |
|---|---|---|---|---|---|---|
| Nominal | Convex Hull | 0.80 ± 0.06 | 16.00 ± 1.22 | 20.00 ± 0.00 | 1.42 ± 0.07 | 1.41 ± 0.33 |
| Nominal | Hyperrectangle | 0.23 ± 0.04 | 4.60 ± 0.89 | 20.00 ± 0.00 | 1.45 ± 0.14 | 1.43 ± 0.02 |
| Nominal | K-Means Distance | 0.19 ± 0.07 | 3.80 ± 1.48 | 20.00 ± 0.00 | 1.38 ± 0.28 | 1.45 ± 0.07 |
| Nominal | One-Class Svm | 0.63 ± 0.12 | 12.60 ± 2.30 | 20.00 ± 0.00 | 1.49 ± 0.09 | 1.32 ± 0.17 |
| Shift | Convex Hull | 1.00 ± 0.00 | 24.00 ± 0.00 | 24.00 ± 0.00 | 1.72 ± 0.18 | — |
| Shift | Hyperrectangle | 0.92 ± 0.00 | 22.00 ± 0.00 | 24.00 ± 0.00 | 1.77 ± 0.18 | 1.10 ± 0.12 |
| Shift | K-Means Distance | 0.94 ± 0.04 | 22.60 ± 0.89 | 24.00 ± 0.00 | 1.75 ± 0.16 | 1.00 ± 0.17 |
| Shift | One-Class Svm | 1.00 ± 0.00 | 24.00 ± 0.00 | 24.00 ± 0.00 | 1.72 ± 0.18 | — |
Noise-robustness evidence
| Noise Multiplier | Split | Model | Outlet RMSE · K | Duty RMSE · kW | Crossing recall | Timing MAE · days¹ |
|---|---|---|---|---|---|---|
| 0.5 | Nominal | Black Hybrid | 1.49 ± 0.07 | 50.82 ± 4.40 | 1.00 ± 0.00 | 6.05 ± 1.06 |
| 0.5 | Nominal | Causal Trend | 1.45 ± 0.00 | 44.19 ± 0.00 | 1.00 ± 0.00 | 3.10 ± 0.00 |
| 0.5 | Nominal | Direct Ml | 1.65 ± 0.14 | 79.94 ± 5.43 | 0.93 ± 0.03 | 12.51 ± 1.05 |
| 0.5 | Nominal | Fixed Rate | 1.59 ± 0.03 | 56.92 ± 2.04 | 1.00 ± 0.00 | 7.60 ± 1.34 |
| 0.5 | Nominal | Grey Hybrid | 1.44 ± 0.01 | 47.98 ± 2.27 | 1.00 ± 0.00 | 5.24 ± 1.14 |
| 0.5 | Nominal | Persistence | 5.15 ± 0.00 | 220.94 ± 0.00 | 0.00 ± 0.00 | — |
| 0.5 | Nominal | White Hybrid | 1.43 ± 0.01 | 47.04 ± 1.42 | 1.00 ± 0.00 | 4.24 ± 0.65 |
| 0.5 | Shift | Black Hybrid | 2.08 ± 0.09 | 91.81 ± 9.00 | 1.00 ± 0.00 | 3.30 ± 0.31 |
| 0.5 | Shift | Causal Trend | 1.73 ± 0.00 | 49.47 ± 0.00 | 1.00 ± 0.00 | 1.04 ± 0.00 |
| 0.5 | Shift | Direct Ml | 5.77 ± 0.41 | 214.63 ± 14.73 | 1.00 ± 0.00 | 15.42 ± 0.64 |
| 0.5 | Shift | Fixed Rate | 2.61 ± 0.26 | 130.38 ± 12.68 | 1.00 ± 0.00 | 5.76 ± 1.53 |
| 0.5 | Shift | Grey Hybrid | 1.67 ± 0.17 | 66.52 ± 6.06 | 1.00 ± 0.00 | 2.18 ± 0.62 |
| 0.5 | Shift | Persistence | 9.27 ± 0.00 | 405.41 ± 0.00 | 0.00 ± 0.00 | — |
| 0.5 | Shift | White Hybrid | 1.51 ± 0.09 | 78.43 ± 9.14 | 1.00 ± 0.00 | 3.02 ± 1.02 |
| 2.5 | Nominal | Black Hybrid | 1.54 ± 0.07 | 51.95 ± 5.48 | 1.00 ± 0.00 | 6.42 ± 1.37 |
| 2.5 | Nominal | Causal Trend | 1.93 ± 0.00 | 74.05 ± 0.00 | 1.00 ± 0.00 | 11.95 ± 0.00 |
| 2.5 | Nominal | Direct Ml | 1.59 ± 0.09 | 83.32 ± 3.77 | 0.94 ± 0.02 | 12.98 ± 2.11 |
| 2.5 | Nominal | Fixed Rate | 1.68 ± 0.02 | 59.78 ± 1.95 | 1.00 ± 0.00 | 7.84 ± 1.18 |
| 2.5 | Nominal | Grey Hybrid | 1.49 ± 0.06 | 55.15 ± 4.25 | 1.00 ± 0.00 | 8.75 ± 2.24 |
| 2.5 | Nominal | Persistence | 5.24 ± 0.00 | 223.17 ± 0.00 | 0.00 ± 0.00 | — |
| 2.5 | Nominal | White Hybrid | 1.47 ± 0.01 | 49.33 ± 1.39 | 1.00 ± 0.00 | 4.50 ± 0.63 |
| 2.5 | Shift | Black Hybrid | 2.15 ± 0.07 | 98.72 ± 10.24 | 1.00 ± 0.00 | 3.52 ± 0.40 |
| 2.5 | Shift | Causal Trend | 1.85 ± 0.00 | 65.94 ± 0.00 | 1.00 ± 0.00 | 3.21 ± 0.00 |
| 2.5 | Shift | Direct Ml | 5.74 ± 0.48 | 207.11 ± 16.84 | 1.00 ± 0.00 | 14.86 ± 0.62 |
| 2.5 | Shift | Fixed Rate | 2.58 ± 0.24 | 139.00 ± 11.63 | 1.00 ± 0.00 | 6.28 ± 1.40 |
| 2.5 | Shift | Grey Hybrid | 2.01 ± 0.22 | 68.90 ± 10.04 | 1.00 ± 0.00 | 2.73 ± 1.27 |
| 2.5 | Shift | Persistence | 9.24 ± 0.00 | 414.88 ± 0.00 | 0.00 ± 0.00 | — |
| 2.5 | Shift | White Hybrid | 1.59 ± 0.07 | 81.14 ± 9.42 | 1.00 ± 0.00 | 3.22 ± 1.07 |
| 5.0 | Nominal | Black Hybrid | 1.62 ± 0.05 | 55.53 ± 4.91 | 1.00 ± 0.00 | 6.55 ± 0.70 |
| 5.0 | Nominal | Causal Trend | 2.88 ± 0.00 | 124.77 ± 0.00 | 0.80 ± 0.00 | 14.06 ± 0.00 |
| 5.0 | Nominal | Direct Ml | 1.60 ± 0.14 | 94.09 ± 3.32 | 0.94 ± 0.05 | 14.41 ± 1.45 |
| 5.0 | Nominal | Fixed Rate | 1.79 ± 0.01 | 64.32 ± 1.22 | 1.00 ± 0.00 | 7.97 ± 0.73 |
| 5.0 | Nominal | Grey Hybrid | 1.86 ± 0.11 | 77.21 ± 5.97 | 0.93 ± 0.04 | 15.56 ± 2.31 |
| 5.0 | Nominal | Persistence | 5.33 ± 0.00 | 225.63 ± 0.00 | 0.00 ± 0.00 | — |
| 5.0 | Nominal | White Hybrid | 1.56 ± 0.02 | 54.02 ± 0.60 | 1.00 ± 0.00 | 4.77 ± 0.12 |
| 5.0 | Shift | Black Hybrid | 2.28 ± 0.09 | 109.51 ± 5.91 | 1.00 ± 0.00 | 4.21 ± 0.39 |
| 5.0 | Shift | Causal Trend | 2.62 ± 0.00 | 119.14 ± 0.00 | 0.96 ± 0.00 | 6.43 ± 0.00 |
| 5.0 | Shift | Direct Ml | 5.78 ± 0.49 | 203.87 ± 16.45 | 1.00 ± 0.00 | 13.88 ± 0.90 |
| 5.0 | Shift | Fixed Rate | 2.59 ± 0.16 | 149.55 ± 8.16 | 1.00 ± 0.00 | 7.08 ± 1.09 |
| 5.0 | Shift | Grey Hybrid | 1.93 ± 0.09 | 81.90 ± 19.45 | 1.00 ± 0.00 | 4.51 ± 1.94 |
| 5.0 | Shift | Persistence | 9.25 ± 0.00 | 427.52 ± 0.00 | 0.00 ± 0.00 | — |
| 5.0 | Shift | White Hybrid | 1.81 ± 0.04 | 81.34 ± 6.31 | 1.00 ± 0.00 | 2.94 ± 0.54 |
Inspect the failures, not just the averages
These are the largest campaign-level temperature errors across all models in the selected recorded seed. Use the campaign selector above to inspect them. Low coverage or a missed validity flag identifies a concrete limitation for the next engineering iteration.
| split | campaign | model | RMSE (K) | Maximum error (K) | Interval coverage | Flagged share |
|---|---|---|---|---|---|---|
| shift | C068 | Persistence | 13.195 | 19.429 | 0.433 | 1.000 |
| shift | C067 | Persistence | 12.263 | 18.453 | 0.533 | 1.000 |
| shift | C077 | Persistence | 12.040 | 19.078 | 0.556 | 1.000 |
| shift | C084 | Persistence | 11.110 | 19.502 | 0.622 | 1.000 |
| shift | C080 | Direct ML | 10.864 | 15.464 | 0.000 | 1.000 |
| shift | C073 | Persistence | 10.724 | 15.087 | 0.544 | 1.000 |
| shift | C064 | Persistence | 10.278 | 15.925 | 0.633 | 1.000 |
| shift | C084 | Direct ML | 9.657 | 14.711 | 0.144 | 1.000 |
| shift | C083 | Direct ML | 9.637 | 13.727 | 0.000 | 1.000 |
| shift | C076 | Persistence | 9.611 | 14.688 | 0.667 | 1.000 |
| shift | C070 | Persistence | 9.507 | 14.824 | 0.678 | 1.000 |
| shift | C083 | Persistence | 9.327 | 15.743 | 0.689 | 1.000 |
Uncertainty coverage by model and split
| Split | Model | interval simultaneous coverage | interval marginal coverage | interval mean width K |
|---|---|---|---|---|
| Nominal | Black Hybrid | 0.96 ± 0.04 | 1.00 ± 0.00 | 7.99 ± 0.48 |
| Nominal | Causal Trend | 0.95 ± 0.00 | 1.00 ± 0.00 | 8.86 ± 0.00 |
| Nominal | Direct Ml | 1.00 ± 0.00 | 1.00 ± 0.00 | 9.78 ± 1.52 |
| Nominal | Fixed Rate | 1.00 ± 0.00 | 1.00 ± 0.00 | 10.72 ± 0.68 |
| Nominal | Grey Hybrid | 0.95 ± 0.04 | 0.99 ± 0.01 | 12.88 ± 2.22 |
| Nominal | Persistence | 0.95 ± 0.00 | 0.99 ± 0.00 | 23.97 ± 0.00 |
| Nominal | White Hybrid | 1.00 ± 0.00 | 1.00 ± 0.00 | 8.26 ± 0.18 |
| Shift | Black Hybrid | 0.78 ± 0.09 | 0.94 ± 0.02 | 7.99 ± 0.48 |
| Shift | Causal Trend | 0.96 ± 0.00 | 1.00 ± 0.00 | 8.86 ± 0.00 |
| Shift | Direct Ml | 0.19 ± 0.10 | 0.55 ± 0.09 | 9.78 ± 1.52 |
| Shift | Fixed Rate | 0.80 ± 0.02 | 0.93 ± 0.00 | 10.72 ± 0.68 |
| Shift | Grey Hybrid | 1.00 ± 0.00 | 1.00 ± 0.00 | 44.65 ± 22.16 |
| Shift | Persistence | 0.21 ± 0.00 | 0.77 ± 0.00 | 23.97 ± 0.00 |
| Shift | White Hybrid | 0.98 ± 0.02 | 1.00 ± 0.00 | 8.26 ± 0.18 |
Simultaneous coverage requires the whole held-out campaign trajectory to lie inside its band; marginal coverage counts individual time points. Neither is interchangeable with coverage of a cleaning-time interval. Temperature-band width is in kelvin.
Turn this into a testable pilot
The first engagement is a focused retrospective study with an engineer reviewing every recommendation. Scope and acceptance criteria are agreed before looking at the holdout period.
Request 12–24 months of inlet/outlet temperatures, mass flows, pressure drops, geometry, fluid properties, operating changes, and cleaning dates. Audit units, synchronization, heat-balance closure, and sensor maintenance.
Reserve complete cleaning campaigns for holdout. Compare against the current operating rule, persistence, a local trend, and direct ML. Score missed crossings, false alarms, lead time, duty error, and interval coverage.
Deliver reproducible forecasts, an engineer-readable evidence report, and a data-quality log. Advance only if agreed error and false-alarm limits are met. Estimate economics using site-approved fuel, throughput, and cleaning assumptions.
Reproduce and challenge the evidence
What the experiment tests
Thermal-physics inversion, causal forecast initialization, learned fouling growth, campaign holdouts, threshold-event scoring, and sensitivity to sensing and operating conditions.
What remains to be established
Transfer to actual fluids and exchanger geometry, uncertainty under real operator interventions, sensor drift, unobserved blend changes, and a measurable benefit against a site's current maintenance practice.
Inspect the full run manifest
{
"project": "Fouling Forecast",
"data": "Entirely synthetic; no refinery measurements",
"data_seed": 20261105,
"seeds": 5,
"origin_day": 20,
"end_day": 110,
"horizon_days": 90,
"threshold": 0.8,
"split_counts": {
"calibration": 20,
"nominal": 20,
"shift": 24,
"train": 24
},
"learning_sizes": [
2,
4,
8,
16
],
"interval_method": "8 campaign bootstrap grey fits, calibrated by maximum standardized temperature error across each calibration campaign; all other models use unscaled campaign maxima. 20 calibration campaigns, order statistic 20 of 20 for nominal 95% simultaneous trajectory coverage. Guarantees assume exchangeability and do not extend to shifted campaigns.",
"timing_metric": "MAE only among eligible campaigns where both true and forecast crossing occur; always read alongside crossing recall/precision. Right-censored events remain NaN. Campaigns already below threshold at issue day excluded from event metrics.",
"future_conditions": "All predictions hold last-five-observation median operating conditions fixed; future measured controls never provided.",
"training_label": "Fouling rate estimated by inversion and smoothing of training sensors; no generator rate or true resistance enters learner. Calibration uses noise-free simulator temperature as evaluation target.",
"version": {
"numpy": "2.5.4",
"scipy": "1.18.1",
"pandas": "3.1.1",
"scikit-learn": "1.9.1"
},
"python": "3.12.11",
"runtime_seconds": 56.74,
"source_sha256": "db8482868a5707c29f03f46626cf15bbc60c24b743eb25afea6a2ed54c8246c3",
"runs": [
{
"seed": 0,
"training_ids": [
"C000",
"C002",
"C003",
"C004",
"C006",
"C008",
"C010",
"C011",
"C012",
"C016",
"C018",
"C019",
"C020",
"C021",
"C022",
"C023"
],
"calibration_ids": [
"C024",
"C025",
"C026",
"C027",
"C028",
"C029",
"C030",
"C031",
"C032",
"C033",
"C034",
"C035",
"C036",
"C037",
"C038",
"C039",
"C040",
"C041",
"C042",
"C043"
],
"calibration_rank": 20,
"calibration_scores": {
"Persistence": 11.985043608895921,
"Causal trend": 4.427685177221804,
"Fixed rate": 5.132247848686006,
"Direct ML": 4.462466969961895,
"Black hybrid": 3.956085058290512,
"Grey hybrid": 21.88460152746558,
"White hybrid": 4.04607605415714
}
},
{
"seed": 1,
"training_ids": [
"C001",
"C002",
"C003",
"C004",
"C005",
"C007",
"C010",
"C011",
"C012",
"C015",
"C016",
"C017",
"C020",
"C021",
"C022",
"C023"
],
"calibration_ids": [
"C024",
"C025",
"C026",
"C027",
"C028",
"C029",
"C030",
"C031",
"C032",
"C033",
"C034",
"C035",
"C036",
"C037",
"C038",
"C039",
"C040",
"C041",
"C042",
"C043"
],
"calibration_rank": 20,
"calibration_scores": {
"Persistence": 11.985043608895921,
"Causal trend": 4.427685177221804,
"Fixed rate": 5.140706651038158,
"Direct ML": 4.669159068707245,
"Black hybrid": 3.6626507452436954,
"Grey hybrid": 14.349985012544911,
"White hybrid": 4.092987051030661
}
},
{
"seed": 2,
"training_ids": [
"C000",
"C002",
"C006",
"C007",
"C010",
"C011",
"C012",
"C013",
"C014",
"C015",
"C016",
"C018",
"C019",
"C020",
"C022",
"C023"
],
"calibration_ids": [
"C024",
"C025",
"C026",
"C027",
"C028",
"C029",
"C030",
"C031",
"C032",
"C033",
"C034",
"C035",
"C036",
"C037",
"C038",
"C039",
"C040",
"C041",
"C042",
"C043"
],
"calibration_rank": 20,
"calibration_scores": {
"Persistence": 11.985043608895921,
"Causal trend": 4.427685177221804,
"Fixed rate": 5.064080321867493,
"Direct ML": 3.9820064203435663,
"Black hybrid": 4.242948728986676,
"Grey hybrid": 13.784499250792058,
"White hybrid": 4.057253498633656
}
},
{
"seed": 3,
"training_ids": [
"C000",
"C001",
"C002",
"C003",
"C006",
"C008",
"C009",
"C010",
"C011",
"C012",
"C013",
"C015",
"C017",
"C018",
"C022",
"C023"
],
"calibration_ids": [
"C024",
"C025",
"C026",
"C027",
"C028",
"C029",
"C030",
"C031",
"C032",
"C033",
"C034",
"C035",
"C036",
"C037",
"C038",
"C039",
"C040",
"C041",
"C042",
"C043"
],
"calibration_rank": 20,
"calibration_scores": {
"Persistence": 11.985043608895921,
"Causal trend": 4.427685177221804,
"Fixed rate": 5.794727325860322,
"Direct ML": 5.590206933502941,
"Black hybrid": 4.2091571361413,
"Grey hybrid": 19.249048590277273,
"White hybrid": 4.243004333376803
}
},
{
"seed": 4,
"training_ids": [
"C000",
"C001",
"C005",
"C007",
"C008",
"C009",
"C010",
"C011",
"C013",
"C015",
"C016",
"C017",
"C018",
"C019",
"C020",
"C022"
],
"calibration_ids": [
"C024",
"C025",
"C026",
"C027",
"C028",
"C029",
"C030",
"C031",
"C032",
"C033",
"C034",
"C035",
"C036",
"C037",
"C038",
"C039",
"C040",
"C041",
"C042",
"C043"
],
"calibration_rank": 20,
"calibration_scores": {
"Persistence": 11.985043608895921,
"Causal trend": 4.427685177221804,
"Fixed rate": 5.656132469501813,
"Direct ML": 5.757936372945039,
"Black hybrid": 3.9041593133903802,
"Grey hybrid": 14.146681951910846,
"White hybrid": 4.209430874849943
}
}
]
}Static campaign figure for export
