# Pareto Pipeline — B737-class cross-subsystem case

The data and processing pipeline behind the interactive Pareto front on
[buraksuslu.com/proof](https://buraksuslu.com/proof) and the
[B737-800 ECS case study](https://buraksuslu.com/writing/case-studies/b737-ecs).

The source-of-truth dataset is `/data/pareto-b737-ecs.json` — 77
non-dominated suites in (performance, cost, MTBF) space, derived from the
published MOSOF + NDCI cross-subsystem run in Suslu, Ali, Jennions (2026).
This pipeline loads it, verifies non-dominance, identifies the knee, and
emits a clean front for downstream rendering.

## What the pipeline does

1. **Load** `/data/pareto-b737-ecs.json` — 77 points × 3 axes.
2. **Verify Pareto-dominance** — every point in the file should be
   non-dominated under the published axis directions
   (perf↑, cost↓, MTBF↑). The script reports any dominated points.
3. **Identify the knee** — uses the elbow / utopia-point heuristic on the
   normalised perf×cost projection. The reference knee is at index 76
   (12-sensor suite: Engine 5 / Fuel 2 / EPS 2 / ECS 3,
   perf 0.69, $36k, 145 kh).
4. **Emit derived front** — writes `pareto_clean.csv` for downstream
   plotting and a `pareto_plot.png` quick-look using matplotlib.

## Run the demo

```bash
pip install -r requirements.txt
python pareto_pipeline.py
```

Expected output:

```
77 points loaded
77 non-dominated  (all clean)
Knee at index 76: 12 sensors, perf 0.690, $36k, 145 kh
Knee composition: Engine 5 · Fuel 2 · EPS 2 · ECS 3
Wrote pareto_clean.csv and pareto_plot.png
```

## File layout

```
.
├── README.md
├── requirements.txt    # numpy, matplotlib
└── pareto_pipeline.py  # ~140 lines, single file
```

## Citation

```bibtex
@article{Suslu2026MOSOF,
  author  = {Suslu, Burak and Ali, Fakhre and Jennions, Ian K.},
  title   = {MOSOF with NDCI: A Cross-Subsystem Evaluation of an Aircraft for an Airline Case Scenario},
  journal = {Sensors},
  volume  = {26},
  number  = {1},
  pages   = {160},
  year    = {2026},
  doi     = {10.3390/s26010160}
}
```

## License

MIT.
