# CSV reporter refinements + per-NFR machine-readable trend lines

**Task**: AZ-446_csv_reporter_refinements
**Name**: Trend-line + acceptance-band annotations + Monte Carlo confidence intervals
**Description**: Add trend-line + acceptance-band annotations to the CSV reporter (so each numeric metric carries the AC's threshold inline), and emit Monte Carlo confidence intervals where applicable (NFT-RES-03, NFT-PERF-01).
**Complexity**: 2 points
**Dependencies**: AZ-406, AZ-445
**Component**: Blackbox Tests / Reporting (epic AZ-262)
**Tracker**: AZ-446
**Epic**: AZ-262 (E-BBT)

## Problem

A bare numeric metric without its acceptance band is hard to read. Adding the band inline (e.g., `p95_latency_ms = 387 (≤400 budget)`) makes the report immediately legible. Monte Carlo runs additionally need confidence intervals so a single iteration's outlier doesn't drive false-positive failures.

## Outcome

- `report.csv` columns extended: every numeric column gets a paired `_band` column (e.g., `p95_latency_ms`, `p95_latency_ms_band`).
- Monte Carlo CI: NFT-RES-03 + NFT-PERF-01 emit a `_ci95_low` + `_ci95_high` paired column.

## Scope

### Included
- Band annotation per numeric column (read from each scenario's task spec).
- CI-95 columns for the Monte Carlo + N-sample scenarios.

### Excluded
- Visual report rendering (HTML, etc.) — out of scope.

## Acceptance Criteria

**AC-1: band annotation**
Given any numeric metric column in `report.csv`
Then a paired `_band` column exists with the AC threshold text (e.g., `≤400 ms`).

**AC-2: CI-95 for Monte Carlo**
Given NFT-RES-03 emits 100 iterations
Then `report.csv` contains `_ci95_low` + `_ci95_high` paired columns for each metric.

**AC-3: parameterization**
Given conftest parameterization
Then this annotation pass runs once per CI invocation regardless of `(fc_adapter, vio_strategy)`.

## System Under Test Boundary

Reporting-only.

## Document Dependencies

- `_docs/02_document/tests/test-data.md` § Reporting & Evidence
- Each scenario task's AC numeric thresholds (read at report time)
