Unbundled Posted Legs Aging Past Cap

Posted transactions whose `bundle_id` is still NULL past their rail's `max_unbundled_age` cap. An AggregatingRail's job is to pick up these legs and group them into a Bundle; an unbundled leg older than the rail's cadence means the bundler hasn't fired or is failing to match. KPI shows total stuck count; the aging bar chart breaks the population into 4 buckets (<1d, 1–2d, 2–7d, >7d) — the typical max_unbundled_age cadence is a day or two, so buckets are wider than Pending Aging's. Right-click any row → View Transactions to see every leg of that transfer.

Stuck Unbundled

Count of Posted transactions whose `bundle_id` is still NULL past their rail's `max_unbundled_age` cap. Healthy = 0.

Stuck Unbundled by Age Bucket

Distribution of stuck-Unbundled transactions across 4 age bands, stacked by rail. Right-skewed (>2d, >7d) ⇒ the bundler hasn't fired for those rails in a while. Color bands surface per-variant rollup for XOR-grouped multi-mode templates.

Stuck Unbundled Detail

Every stuck-Unbundled leg with rail / amount / posting / live age. `max_unbundled_age_seconds` is the rail's cap (inlined at view-emit time from L2). Right-click any row → View Transactions to see every leg of that transfer.



**Per-rail unbundled aging**

> For every Rail with `max_unbundled_age` set, every Posted leg on that rail SHOULD be picked up by an AggregatingRail (`bundle_id` set) before `posting + max_unbundled_age`.

Posted transactions whose `bundle_id IS NULL` past their rail's cap. Per validator R8, `max_unbundled_age` is only meaningful on rails appearing in some AggregatingRail's `bundles_activity`.

**Columns:** same shape as `_stuck_pending` with `max_unbundled_age_seconds` instead of `max_pending_age_seconds`.

**Action.** Verify the AggregatingRail's `bundles_activity` still names this rail — the bundler may be silently mis-configured. For high `age_seconds`, run the bundle process manually and investigate why the regular cycle missed it.