Unbundled Aging¶
Per-sheet walkthrough — L1 Reconciliation Dashboard.
What the sheet shows¶
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.
Per validator R8, max_unbundled_age is only meaningful on rails
that appear in some AggregatingRail's bundles_activity. Rails
without the field are excluded by NULL cap.
Screenshot

When to use it¶
End-of-day or end-of-week, depending on the typical bundling cadence. If the bundler fires nightly, anything older than 1-2 days is suspect. If it fires monthly (e.g., fee accrual), the threshold shifts accordingly — the aging buckets reflect this.
Visuals¶
- Stuck Unbundled (KPI) — count of Posted legs whose
bundle_id IS NULLand live age has exceeded the rail's cap. - Stuck Unbundled by Age Bucket (BarChart, horizontal) — 4
number-prefixed buckets:
<1d,1-2d,2-7d,>7d. Coarser than Pending Aging becausemax_unbundled_ageis typically days rather than hours. - Stuck Unbundled Detail (Table) — every stuck-Unbundled leg
with rail / amount / posting / live age.
max_unbundled_age_secondsis the rail's cap.
Drills¶
- Right-click any row → "View Transactions for this transfer" —
opens Transactions narrowed to the clicked
transfer_id.
Filters¶
- Date From / Date To — universal date-range pickers (on
posting). - Account — multi-select dropdown over
account_id. - Transfer Type — multi-select dropdown over
transfer_type. - Rail — multi-select dropdown over
rail_name.