# contextweaver — ScoringConfig Weight Sweep

> Auto-generated by `make sweep-scoring`. Do not edit by hand.
> Source: ``benchmarks/scenarios/*.jsonl`` + ``ScoringConfig`` grid in
> ``scripts/sweep_scoring.py``.

Composite formula:

```
composite = coverage_pct
          - 5.0 * max(0, avg_util_pct - 100) / 10
          - 0.5 * abs(dropped - default_dropped)
```

* ``coverage_pct`` = ``included / event_count × 100`` aggregated across
  scenarios — the same coverage proxy used by ``scripts/baseline_naive.py``.
* The mid-term penalises configs that bust the answer-phase budget.
* The last term penalises configs that drop substantially more (or fewer)
  items than the default, so the composite favours configs *close* to the
  default's drop profile but with higher coverage.

The default ``ScoringConfig`` is included in the sweep so its rank is
visible alongside the alternatives. **This script does NOT change
``ScoringConfig`` defaults** — Pareto-dominating configs (if any) are
flagged below as candidates for a deliberately-scoped follow-up.


Default `ScoringConfig` ranks **#225** of 243.

## Top 10 configs

| rank | rec | tag | kind | cost | dedup | incl | drop | dedup_n | tokens | util% | cov% | composite | note |
|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---|
| 1 | 0.20 | 0.15 | 0.25 | 0.05 | 0.85 | 296 | 7 | 4 | 11209 | 46.70% | 96.42% | 96.4200 |  |
| 2 | 0.20 | 0.15 | 0.25 | 0.10 | 0.85 | 296 | 7 | 4 | 11209 | 46.70% | 96.42% | 96.4200 |  |
| 3 | 0.20 | 0.15 | 0.25 | 0.15 | 0.85 | 296 | 7 | 4 | 11209 | 46.70% | 96.42% | 96.4200 |  |
| 4 | 0.20 | 0.15 | 0.35 | 0.05 | 0.85 | 296 | 7 | 4 | 11209 | 46.70% | 96.42% | 96.4200 |  |
| 5 | 0.20 | 0.15 | 0.35 | 0.10 | 0.85 | 296 | 7 | 4 | 11209 | 46.70% | 96.42% | 96.4200 |  |
| 6 | 0.20 | 0.25 | 0.25 | 0.05 | 0.85 | 296 | 7 | 4 | 11209 | 46.70% | 96.42% | 96.4200 |  |
| 7 | 0.20 | 0.25 | 0.25 | 0.10 | 0.85 | 296 | 7 | 4 | 11209 | 46.70% | 96.42% | 96.4200 |  |
| 8 | 0.20 | 0.25 | 0.25 | 0.15 | 0.85 | 296 | 7 | 4 | 11209 | 46.70% | 96.42% | 96.4200 |  |
| 9 | 0.20 | 0.25 | 0.35 | 0.05 | 0.85 | 296 | 7 | 4 | 11209 | 46.70% | 96.42% | 96.4200 |  |
| 10 | 0.20 | 0.25 | 0.35 | 0.10 | 0.85 | 296 | 7 | 4 | 11209 | 46.70% | 96.42% | 96.4200 |  |

## Candidates for a follow-up defaults change

Configs that weakly dominate the default on ``(coverage_pct,
dropped, tokens)`` and strictly improve on at least one of the
three. **Not actionable in this PR** — defaults change is a
separate deliberately-scoped follow-up.

| rec | tag | kind | cost | dedup | cov% | drop | tokens |
|---:|---:|---:|---:|---:|---:|---:|---:|
| 0.20 | 0.15 | 0.35 | 0.15 | 0.85 | 96.74% | 6 | 11207 |
| 0.20 | 0.15 | 0.45 | 0.05 | 0.85 | 96.74% | 6 | 11207 |
| 0.20 | 0.15 | 0.45 | 0.10 | 0.85 | 96.74% | 6 | 11207 |
| 0.20 | 0.15 | 0.45 | 0.15 | 0.85 | 96.74% | 6 | 11207 |
| 0.20 | 0.25 | 0.45 | 0.15 | 0.85 | 96.74% | 6 | 11207 |

## Reproducing

```bash
make sweep-scoring
git diff --quiet benchmarks/sweep_scoring.md  # passes on clean re-run
```
