figma guide

Designing breach settlement escrow replenishment and disbursement reserve UI in Figma: RES-*, TOP-*, and post-REV fund recovery

Design breach settlement escrow replenishment UI in Figma with RES-* reserve buckets, TOP-* funding approvals, post-reversal shortfall math, and wave-safe disbursement gates.

Published
Updated
Sep 27, 2026
Read time
6 min
Level
Intermediate

Quick answer

Escrow replenishment UI keeps disbursement waves honest when money leaves faster than the plan assumed—after REV-*, clawbacks, chargebacks, or court-ordered holds. Design RES- reserve buckets* (operating float, dispute holdback, appeal stayback), TOP- top-up requests* with counsel and court-monitor visibility, and shortfall dashboards that block WAVE-* export until available_to_pay ≥ scheduled_outflow. Treasury should connect RES-* to fund reconciliation, escrow interest allocation, and supplemental fund injection without duplicating the same approval in three screens. Claimants never see raw escrow ledgers—use status portal copy only when a wave delay is program-wide. Pair replenishment gates with GATE-PAY-*, distribution schedule, and payment reversal events that decrement RES-*. Start from the Figma guides hub and use tables, progress indicators, and Dev Mode handoff.


Who this is for

  • Product designers on treasury consoles where “escrow balance” is one number but five buckets fight over it.
  • Claims administrators explaining why a tranche slipped after chargebacks—not because individual claims failed validation.
  • Counsel and court monitors who need TOP-* and RES-* audit trails in final accounting and special master reporting.

RES-* reserve bucket model

DisbursementReserve — RES-992-040 · escrow_id: ESC-992-001
├── Buckets (never merge in UI without explicit transfer):
│   ├── RES-OP-* operating float (returns, fees, rounding)
│   ├── RES-DISP-* dispute holdback ([contested escrow](/designing-breach-settlement-contested-claim-escrow-and-dispute-reserve-ui-in-figma/))
│   ├── RES-STY-* appeal / mandamus stayback ([appeal review](/designing-breach-settlement-appeal-and-mandamus-review-ui-in-figma/))
│   ├── RES-REV-* expected recovery from REV-* / CB-* (optimistic—label clearly)
│   └── RES-CLAW-* program recovery pipeline ([clawback](/designing-breach-settlement-clawback-and-overpayment-recovery-ui-in-figma/))
├── Computed fields (read-only in admin UI):
│   ├── available_to_pay = escrow_cash − sum(RES-* committed) − pending_SUB-*
│   ├── scheduled_wave_outflow from [distribution schedule](/designing-breach-settlement-distribution-schedule-and-tranche-disbursement-planning-ui-in-figma/)
│   └── shortfall_flag when scheduled > available
├── Events that decrement RES-OP-* or trigger TOP-*:
│   ├── REV-* · CB-* · [returned payment](/designing-breach-settlement-returned-payment-and-reissue-ui-in-figma/) fees
│   ├── [Pro rata reduction](/designing-breach-settlement-fund-shortfall-and-pro-rata-reduction-ui-in-figma/) (does not fix cash—only awards)
│   └── [Attorney fee](/designing-breach-settlement-attorney-fee-allocation-and-incentive-award-ui-in-figma/) and [administrator fee](/designing-breach-settlement-claims-administrator-fee-and-expense-recovery-ui-in-figma/) draws
└── Audit:
    ├── LOG-RES-* every bucket transfer
    └── Link REC-* period in [reconciliation](/designing-breach-settlement-fund-reconciliation-and-bank-matching-ui-in-figma/)
BucketBest forCommon mistake
RES-OP-*ACH returns, wire fees, processor chargesTreating as “free to pay claimants”
RES-DISP-*Frozen awards pending disputesDouble-counting with contested escrow
RES-STY-*Appeal holdbackConfusing with GATE-PAY-* per claim
RES-REV-*Expected chargeback winBooking recovery before representment won

Verdict: Show bucket transfers as ledger rows, not silent spreadsheet edits—auditors and external reviewers need RES-* history.


TOP-* top-up and replenishment workflow

TopUpRequest — TOP-992-112 · requested_by: treasury · state: draft
├── Trigger sources:
│   ├── Shortfall dashboard · WAVE-* blocked
│   ├── Post [REV-*](/designing-breach-settlement-payment-reversal-chargeback-and-unauthorized-debit-dispute-ui-in-figma/) cluster
│   ├── [Supplemental fund injection](/designing-breach-settlement-supplemental-fund-injection-and-top-up-approval-ui-in-figma/) court-approved
│   └── Defendant funding cure (link DEF-FUND-* if used elsewhere)
├── Form ([forms patterns](/designing-forms-in-figma-inputs-states-and-handoff/)):
│   ├── Amount · target_bucket · justification narrative
│   ├── Attachments: bank statement · court order · [reconciliation](/designing-breach-settlement-fund-reconciliation-and-bank-matching-ui-in-figma/) snapshot
│   └── Impact preview: which WAVE-* / GATE-PAY-* rows unblock
├── Approval chain:
│   ├── Counsel · compliance · optional court monitor read-only
│   ├── OVR-TOP-* emergency (break-glass style—dual control)
│   └── Cannot approve if duplicate open TOP-* for same bucket
├── Execution:
│   ├── FUND-IN-* bank credit matched in REC-*
│   ├── RES-* bucket credit · LOG-TOP-*
│   └── Notify [distribution planning](/designing-breach-settlement-distribution-schedule-and-tranche-disbursement-planning-ui-in-figma/) owners
└── Claimant comms:
    ├── Only if wave date shifts—use [timeline notifications](/designing-breach-settlement-hold-release-notifications-and-claimant-payment-timeline-ui-in-figma/)
    └── No dollar amounts of escrow in portal

Replenishment differs from interest allocation: interest is earned on balance; TOP- is new defendant or reserve cash*.


Shortfall dashboard and wave gate

EscrowShortfallView — program_id · as_of_date
├── Header KPIs:
│   ├── Escrow cash (bank confirmed)
│   ├── Committed RES-* total
│   ├── Pending SUB-* / FILE-NACHA-* ([NACHA preview](/designing-breach-settlement-payment-file-generation-and-nacha-preview-ui-in-figma/))
│   └── available_to_pay (highlight red if < 0)
├── Wave table ([data UI](/figma-tables-and-data-ui-rows-columns-and-handoff/)):
│   ├── WAVE-* · scheduled_date · outflow · gate_status
│   ├── Block reason: RES-SHORT-* | RES-STY-* | SAN-HOLD-* ([sanctions](/designing-breach-settlement-sanctions-screening-and-ofac-payment-hold-ui-in-figma/))
│   └── Actions: open TOP-* · defer wave · run [pro rata](/designing-breach-settlement-fund-shortfall-and-pro-rata-reduction-ui-in-figma/) sim (award-only)
├── Drill-down:
│   ├── Last 30d REV-* / CB-* impact on RES-OP-*
│   └── Link [post-disbursement QA](/designing-breach-settlement-post-disbursement-qa-and-audit-sampling-ui-in-figma/) findings that drove holds
└── Export:
    └── FIN-ACCT-* snapshot for [final accounting](/designing-breach-settlement-final-accounting-and-court-closure-ui-in-figma/)

When shortfall is award-only (not cash), do not show TOP- as the fix*—route to award restatement and pro rata tools instead.


Comparison: replenishment vs other “fund” screens

ScreenQuestion it answersPrimary id
Escrow ALLOCWho gets interest?Interest allocation
DEF-FUND / supplementalCourt-ordered new money?Supplemental injection
RES- / TOP-**Can we pay this wave today?RES-* · TOP-*
REC-*Does bank match ledger?Reconciliation
RED-PR-*Cut award amounts?Pro rata reduction

Best for: Training treasury—TOP- adds cash; RED-PR- reduces obligations; never swap them in copy.**


Handoff checklist (Dev Mode)

  • DisbursementReserve — res_id (RES-*), escrow_id, bucket_enum, amount_committed, amount_available, last_transfer_at.
  • ReserveTransfer — xfr_id (XFR-RES-*), from_bucket, to_bucket, amount, reason_enum, actor, linked_rev_id optional.
  • TopUpRequest — top_id (TOP-*), amount, target_bucket, state_enum, approver_ids, linked_wave_ids_json.
  • EscrowShortfallSnapshot — snap_id (SNAP-ESC-*), as_of, available_to_pay, scheduled_outflow, shortfall_amount.
  • WaveGateBlock — block_id (BLK-WAVE-*), wave_id, block_reason_enum, res_bucket_optional, clear_condition_text.

Common mistakes

MistakeWhy it hurtsFix
Single “escrow balance” KPIWaves overpayRES-* buckets + available_to_pay
TOP-* without REC-* matchPhantom cashBlock until FUND-IN-* confirmed
Hide shortfall until export failsLast-minute panicShortfall dashboard on WAVE planning
Use TOP-* for pro rata gapsWrong remedyRED-PR-* simulation path
RES-REV-* booked as cashOver-disburseLabel non-cash · separate column
No LOG-RES-* on bucket movesAudit failureAppend-only transfer log
Claimant-facing escrow amountsSpeculation / fearAdmin-only views
Ignore RES-STY-* on appealContempt riskLink appeal stay

  1. Model RES- buckets* on the escrow detail page—not only on accounting exports.
  2. Add shortfall dashboard ahead of NACHA export and GATE-PAY-*.
  3. Design TOP- with impact preview* showing which waves unblock.
  4. Wire REV- / CB-** to RES-OP-* decrement events automatically.
  5. Document claimant-visible delays separately from internal TOP-* states.

FAQ

TOP-* vs supplemental fund injection?

Supplemental injection is often court-driven plan change; TOP-* can be operational replenishment after REV-*—link both when the same wire is court-ordered.

Chargeback won—does RES-REV-* auto-clear?

On representment_won, transfer RES-REV-* → RES-OP-* with LOG-RES-*; do not auto-release WAVE without treasury review.

Idempotency on TOP-* execution?

One FUND-IN- match per TOP-**—duplicate bank credits need manual REC-* exception, not double RES credit.

Escrow interest cover shortfall?

Interest may top RES-OP- slightly*—do not promise claimants interest covers delayed waves; see interest allocation.

Wind-down with positive RES-*?

Sweep rules in FIN-ACCT-*—show residual bucket plan before portal closure.


Next steps

Share on X

§ Keep reading

Related guides.