figma guide

Designing breach settlement program wind-down and portal closure UI in Figma: WIN-* closure campaigns, final notices, and claimant redirect flows

Design breach settlement program wind-down and portal closure UI in Figma with WIN-* closure campaigns, final claimant notices, read-only grace periods, and redirect flows to archive FAQ.

Published
Updated
Sep 04, 2026
Read time
9 min
Level
Intermediate

Quick answer

Wind-down UI closes the settlement program without stranding claimants who still have open CLM- or PAY- status.** Design WIN- closure campaigns* that sequence final notices, read-only grace periods, and hard portal shutdown on a court-approved timeline—after final accounting and court monitor sign-off. Claimants see clear next steps: download records, contact call center before deadline, or follow redirect to notice FAQ archive. Admins get a closure checklist blocking WIN-* completion until disbursements, UCF, and RSP-* remediation are resolved. Start from the Figma guides hub and pair with inline alerts, account dashboard, and Dev Mode handoff.


Who this is for

  • Product designers building settlement administrator portals that must sunset claimant-facing access on a fixed schedule.
  • Settlement administrators coordinating final communications, grace periods, and portal redirects without losing audit trail.
  • Class counsel and court monitors verifying closure gates before the program is archived.

Wind-down lifecycle overview

WindDownCampaign — WIN-992-001 · settlement_id: SET-992 · Status: Grace period
├── Triggers:
│   ├── Court approves [final accounting](/designing-breach-settlement-final-accounting-and-court-closure-ui-in-figma/)
│   ├── MON-* attestation received ([court monitor](/designing-breach-settlement-court-monitor-and-special-master-reporting-ui-in-figma/))
│   ├── All PAY-* batches reconciled · UCF routed
│   ├── Open DIS-* disputes resolved or escalated to archive-only
│   └── Admin counsel signs closure readiness memo
├── ID namespace:
│   ├── WIN-* (wind-down campaign) · NOT-* (notice template send)
│   ├── PH-* (portal phase) · RED-* (redirect rule)
│   ├── CHK-WIN-* (closure checklist item) · LOG-WIN-* (closure activity)
│   └── BNR-* (global portal banner)
├── Portal phases (PH-*):
│   ├── Active — full claimant self-service
│   ├── Wind-down announced — BNR-* + email NOT-*
│   ├── Grace read-only — view CLM-* · download docs · no new submissions
│   ├── Hard close — login blocked · RED-* to static archive
│   └── Archived — admin read-only · [ARC-*](/designing-breach-settlement-archive-and-long-term-record-retention-ui-in-figma/) only
├── Closure gates (must pass before next PH-*):
│   ├── Zero pending PAY-* in flight
│   ├── No open REM-* on material FIND-*
│   ├── Call center script updated for closure FAQ
│   └── Redirect targets tested (404 check)
└── Outcomes:
    ├── Claimants informed · records export window honored
    ├── Portal closed · traffic to archive FAQ
    └── WIN-* closed → handoff to archive retention UI
PH stateClaimant canAdmin can
ActiveSubmit · amend · trackFull ops
AnnouncedSame + see closure dateSchedule NOT-*
Grace read-onlyView · export · contact supportNo new CLM-* approve
Hard closeStatic page onlyMonitor redirects
ArchivedExternal FAQ onlyARC-* access

Verdict: Never hard-close while PAY- or open deficiency cure windows remain—grace period exists to prevent support avalanches.*


WIN-* campaign dashboard and CHK-WIN-* closure checklist UI

WindDownDashboard — WIN-992-001 · target_hard_close_at: 2026-11-15
├── Header:
│   ├── Settlement name · current PH-* phase · days until hard close
│   ├── Court order ref · MON-* closure attestation status
│   └── Blockers count (CHK-WIN-* incomplete)
├── CHK-WIN-* checklist (ordered · blocking):
│   ├── Final accounting filed ([FIN-*](/designing-breach-settlement-final-accounting-and-court-closure-ui-in-figma/))
│   ├── All disbursement batches closed ([PAY-*](/designing-breach-settlement-payment-disbursement-and-payout-tracking-ui-in-figma/))
│   ├── UCF / escheatment filed ([UCF-*](/designing-breach-settlement-unclaimed-funds-and-escheatment-ui-in-figma/))
│   ├── Residual / cy pres allocated ([RES-*](/designing-breach-settlement-residual-fund-and-cy-pres-allocation-ui-in-figma/))
│   ├── Open disputes documented for archive ([DIS-*](/designing-breach-settlement-claims-dispute-and-appeals-ui-in-figma/))
│   ├── Auditor / monitor engagements closed ([AUD-EXT-*](/designing-breach-settlement-external-auditor-access-and-read-only-review-portal-ui-in-figma/) · MON-*)
│   ├── Final NOT-* email/SMS sent · delivery report
│   ├── Grace period start/end configured
│   ├── Redirect rules (RED-*) QA passed
│   └── Call center + [notice FAQ](/designing-breach-faq-and-notice-landing-page-ui-in-figma/) updated
├── Phase transition controls:
│   ├── "Advance to grace read-only" — requires checklist subset
│   ├── "Schedule hard close" — date picker · timezone · confirm modal
│   ├── "Execute hard close now" — break-glass · dual approval
│   └── Rollback one phase (admin only · LOG-WIN-* reason required)
├── Metrics during wind-down:
│   ├── Logins during grace · export downloads count
│   ├── Support tickets tagged WIN-closure
│   ├── Redirect 302 hits after hard close
│   └── Failed login attempts (claimants confused)
└── Activity feed:
    ├── PH-* transitions · NOT-* sends · RED-* changes
    └── LOG-WIN-* immutable audit trail

Pair checklist UX with security posture dashboard patterns—blockers should be obvious, not buried in settings.


NOT-* final notices and BNR-* portal banner UI

ClosureNotice — NOT-WIN-992-FINAL · win_id: WIN-992-001 · channel: email + in-app
├── Notice content blocks:
│   ├── What is changing (portal closing · date · timezone)
│   ├── What claimants should do before deadline
│   │   ├── Download claim confirmation / payment proof
│   │   ├── Save [status portal](/designing-breach-settlement-claim-status-portal-and-claimant-dashboard-ui-in-figma/) PDF
│   │   └── Contact [call center](/designing-breach-call-center-and-agent-script-ui-in-figma/) for open items
│   ├── After closure: redirect URL · archive FAQ · mailing address for paper
│   ├── Legal disclaimer · no new claims accepted after date
│   └── Preferred language variants (if multilingual settlement)
├── BNR-* global banner (in-app):
│   ├── Dismissible until 7 days before hard close · then sticky
│   ├── Countdown to grace end · link to export help
│   ├── Severity escalates: info → warning → critical
│   └── Hidden after PH-* = hard close (replaced by static page)
├── Delivery tracking:
│   ├── sent_at · delivered_at · bounce count
│   ├── Resend to undelivered · alternate channel (SMS if consented)
│   └── Proof of notice stored for [compliance exports](/designing-compliance-exports-and-legal-hold-ui-in-figma/)
└── Templates:
    ├── wind_down_announcement · grace_reminder_7d · grace_reminder_24h · hard_close_confirmation
    └── Preview with sample CLM-* merge fields

Use inline alert and toast patterns for in-app urgency without modal fatigue.


Grace read-only mode and claimant export UI

GracePeriodView — PH-GRACE · claim_id: CLM-992-004821 · read_only: true
├── Claimant dashboard changes:
│   ├── All action buttons disabled with tooltip ("Portal closed to new submissions")
│   ├── Prominent export CTA: "Download my records"
│   ├── Export bundle includes:
│   │   ├── Claim summary PDF · payment confirmation · uploaded EVD-*
│   │   ├── NOT-* receipt history · correspondence log
│   │   └── QR or reference number for call center lookup
│   ├── Status timeline frozen at last update · "Final as of {date}"
│   └── Link to disputes: "If you believe this is an error, contact us before {grace_end_at}"
├── Blocked actions (show reason):
│   ├── New claim · amendment · document upload
│   ├── Address change · payment method update
│   └── Appeal filing (unless court order extends window)
├── Admin override (rare):
│   ├── Break-glass extend grace 7 days · LOG-WIN-* · counsel ticket ref
│   └── Single-claim exception for court-ordered cure
└── Accessibility:
    ├── Export available in screen-reader-friendly HTML + PDF
    └── Banner text not color-only (icon + copy)

Link export patterns to data portability and proof of deletion handoff notes for post-archive retention.


RED-* redirect rules and hard-close static page UI

RedirectRule — RED-992-001 · from: /claims/* · to: /settlement-closed
├── Rule types:
│   ├── Exact path → static archive page
│   ├── Wildcard /portal/* → /settlement-closed?ref=portal
│   ├── API 410 Gone for deprecated endpoints (document in Dev Mode)
│   └── Preserve query ?lang= for localized static page
├── Static archive page (post hard close):
│   ├── Settlement name · closure date · "Program complete"
│   ├── FAQ accordion: how to get records · contact · cy pres info
│   ├── Link to [notice FAQ](/designing-breach-faq-and-notice-landing-page-ui-in-figma/) (may be same content)
│   ├── Mailing address · call center hours (if still staffed)
│   ├── No login form · no PII collection
│   └── SEO: noindex · minimal tracking · cookie banner if needed
├── QA checklist before go-live:
│   ├── Deep links from old emails still land safely
│   ├── Mobile · PDF links · 404 scan
│   └── Monitor redirect volume first 72 hours
└── Admin preview:
    ├── "View as claimant after hard close" toggle
    └── Simulate RED-* without executing PH-* transition

Comparison: wind-down vs adjacent settlement UI

SurfacePrimary audienceTimingThis UI adds
Final accountingCourtPre-closureClaimant-facing sunset
Court monitor MON-*Judge / special masterOngoingClosure attestation gate
Notice FAQPublic claimantsActive programPost-close static destination
Status portalClaimantsActiveGrace read-only mode
Archive ARC-*Admin / legalPost-closeLong-term retention after WIN-*

Handoff checklist (Dev Mode)

  • WindDownCampaign — win_id (WIN-*), settlement_id, status_enum, target_hard_close_at, current_ph_enum.
  • PortalPhase — ph_id (PH-*), win_id, phase_enum, started_at, ended_at.
  • ClosureChecklistItem — chk_win_id (CHK-WIN-*), win_id, item_enum, completed_bool, completed_at, blocker_bool.
  • ClosureNotice — not_id (NOT-*), win_id, template_enum, channel_enum, sent_at, delivery_stats_json.
  • PortalBanner — bnr_id (BNR-*), win_id, severity_enum, copy_ref, dismissible_bool, active_until.
  • RedirectRule — red_id (RED-*), win_id, from_pattern, to_url, http_status_enum.
  • WindDownActivityLog — log_win_id (LOG-WIN-*), actor_id, action_enum, timestamp, metadata_json.

Common mistakes

MistakeWhy it hurtsFix
Hard close before PAY-* settlesClaimants panic · support spikeCHK-WIN-* payment gate
No export during graceDSAR / goodwill failuresProminent download bundle
Surprise closure dateCourt / counsel backlashNOT-* sequence + BNR-* countdown
Login error with no explanationTrust collapseStatic page + FAQ on failed auth
Redirect loopsSEO / support nightmareQA RED-* before PH-* advance
Grace too short (<14 days)Elderly / low-digital claimantsCourt-approved minimum
Admin console closes with portalOps cannot archiveSeparate admin sunset phase
Delete data at hard closeLegal hold violationWIN-* → ARC-* handoff
Same copy for all claimantsConfusing if DIS-* openSegment NOT-* by CLM-* status
No LOG-WIN-* on phase changeAudit gapImmutable activity log

  1. Define WIN- timeline* from court order—announcement, grace length, hard close date.
  2. Build CHK-WIN- dashboard* with blocking gates tied to PAY-, UCF, MON-.
  3. Design NOT- templates and BNR-** with escalating severity and export CTAs.
  4. Prototype grace read-only claimant dashboard with disabled actions and export bundle.
  5. Configure RED- and static archive page*—preview before executing hard close.
  6. Execute phased rollout—announce → grace → hard close → handoff to archive UI.

FAQ

Can claimants still file disputes during grace?

Only if court order extends DIS- window* · Otherwise read-only with call-center escalation path · Document in CHK-WIN-*.

Admin portal closes same day as claimant portal?

No · Admin needs months for archive · Separate admin PH-* schedule.

What about returned payments during wind-down?

Block hard close until reissue complete or claimant unreachable documented · CHK-WIN-* item.

Multilingual settlements?

NOT- and static page* need parallel locales · RED-* preserve ?lang= · Test RTL if applicable.

Monitor must approve closure?

Often yes · ATT-MON-* on WIN-* readiness · Link from MON-* dashboard.

Public status page during wind-down?

Update status page to “Program closed” · Align messaging with BNR-*.


Next steps

Share on X

§ Keep reading

Related guides.