figma guide

Designing SLA dashboard and uptime reporting UI in Figma: targets, credits, and customer-facing reports

Design SLA dashboard and uptime reporting UI in Figma with SLO targets, error budgets, service credits, monthly reports, and customer portal exports for B2B SaaS teams.

Published
Updated
Jul 28, 2026
Read time
9 min
Level
Intermediate

Quick answer

SLA dashboard and uptime reporting UI turns contractual promises into measurable, auditable numbers—SLO targets, error budgets, incident deductions, and customer-facing monthly reports. Design an internal SLA hub with per-service uptime, downtime windows, and credit eligibility; a customer portal view with contract-specific targets; a service credit request flow when thresholds breach; and exportable monthly reports aligned with status page history. Start from the Figma guides hub and pair with BCP/DR planning, post-incident review, tables, badges, and Dev Mode handoff.


Who this is for

  • Product designers building SLA modules inside customer success, billing, or trust platforms for B2B SaaS.
  • Design system teams aligning uptime percentage displays, error budget gauges, and credit status chips with progress indicators and color tokens.
  • Engineering and finance teams implementing uptime calculation engines, credit automation, and contract-tier SLA mapping.

SLA hub (internal overview)

SLAHub — Org: Acme Cloud · Reporting period: July 2026
├── Header: Contracts 312 · At risk 4 · Credits pending 2 · Uptime avg 99.94%
├── Actions: [ Generate monthly reports ] [ Review credit requests ] [ Export audit pack ]
├── Tabs: Services · Contracts · Incidents · Credits · Reports · Settings
├── Alert: payments-api below 99.9% monthly target · 47m remaining budget
└── Link: Status page history · PIR actions · BCP service catalog
SectionPurpose
ServicesPer-component uptime vs SLO target
ContractsCustomer-specific SLA tiers and add-ons
IncidentsDowntime windows linked to status page incidents
CreditsEligibility queue and approval workflow
ReportsMonthly PDF/CSV generation and delivery log
SettingsCalculation rules, excluded maintenance, rounding

Verdict: SLA hub is contractual truth—uptime numbers must reconcile with public status page history and internal war room timestamps.


Service uptime dashboard

ServiceUptime — payments-api · SLO 99.9% monthly
├── Current month: 99.87% · Target 99.9% · Status: At risk (amber badge)
├── Error budget: 43m consumed / 43m total · 0m remaining
├── Chart: Daily uptime bars · Incidents marked as red ticks
├── Downtime log:
│   2026-07-14 09:12–09:47 · INC-PUB-038 · 35m · Excluded: No
│   2026-07-22 14:01–14:09 · INC-PUB-041 · 8m · Excluded: No
├── Maintenance excluded: 2026-07-02 02:00–04:00 · Planned · 0m counted
└── [ Link to status incident ] [ Open PIR ] [ Flag for credit review ]
MetricUI detail
Uptime %Rolling monthly; tooltip shows formula (total − downtime) / total
SLO targetPer contract tier; may differ from internal SLO
Error budgetRemaining minutes/hours before breach; gauge component
Downtime windowStart/end UTC; link incident ID
Excluded flagPlanned maintenance, customer-caused, force majeure
At-risk badgeProjected breach before month end based on trend

Map services to BCP catalog tiers—Critical services often carry stricter contractual SLAs.


Contract-specific SLA tiers

ContractSLA — Customer: Globex Corp · Plan: Enterprise Plus
├── API uptime: 99.95% monthly · Support response: P1 15m
├── Dashboard uptime: 99.9% monthly
├── Webhooks: 99.5% monthly · Best-effort delivery SLA
├── Credit policy: 10% monthly fee per 0.1% below target (cap 30%)
├── Reporting: PDF by 5th business day · Portal access ✓
├── Custom addendum: EU region 99.99% · Overrides default API target
└── [ View signed contract ] [ Edit tier mapping ] [ Preview customer portal ]
FieldHandoff detail
CustomerLinks CRM/account record
Plan tierMaps default SLO set
Per-service targetsOverride table when addendum exists
Credit formulaPercentage tiers; max cap; currency
Reporting cadenceMonthly, quarterly; delivery method
Portal visibilityWhich metrics customer sees vs internal-only
Effective datesMid-contract tier changes need historical snapshots

Enterprise deals often have custom SLAs—design override UI, not one-size-fits-all defaults.


Service credit request flow

CreditRequest — CR-2026-0089 · Globex Corp · Status: Pending finance
├── Trigger: API uptime 99.87% vs target 99.95% · July 2026
├── Calculated credit: $4,280 (12% of monthly fee) · Formula v2.1
├── Evidence: Downtime log (43m) · Status incidents INC-038, INC-041
├── Customer message: "We experienced two incidents affecting API availability..."
├── Internal notes: Finance approved formula · CS requested expedited
├── Approvals: [x] CS lead · [x] Legal (template) · [ ] Finance · [ ] Auto-apply
└── Actions: [ Adjust amount ] [ Deny with reason ] [ Schedule apply date ]
StepUI pattern
Auto-eligibilitySystem flags breach; CS reviews before customer notify
Calculation previewShow formula, inputs, rounding
Evidence bundleLink incidents, downtime log, status page archive
Approval chainRole-based; Legal for template changes only
Customer notificationEmail template with credit amount and next invoice line
Deny pathReason codes: excluded downtime, force majeure, below threshold
Audit trailLog in audit log

Use forms patterns for adjustment reason and modals for deny confirmation.


Customer portal SLA view

CustomerPortal — SLA & Uptime · Globex Corp (read-only)
├── Summary: July 2026 · API 99.87% · Target 99.95% · Credit pending
├── Uptime chart: 90-day rolling · Same data as public status page
├── Monthly reports: [ Download July PDF ] [ Download June PDF ]
├── Incident history: Linked from [status page](/designing-customer-incident-status-page-and-communication-ui-in-figma/) · Redacted summaries
├── Credit status: Request submitted · Expected response by 2026-08-05
├── Subscribe: Email when monthly report ready
└── FAQ: How uptime is calculated · What counts as downtime · Credit policy link
ElementDesign note
Summary cardsLarge uptime %; target below; status badge
Historical chartMatch public status page calculation
Report downloadsPDF with digital signature optional
Credit trackerStatus stepper: Submitted → Approved → Applied
Calculation FAQExpandable; link to trust center doc
Multi-productTab per service group if customer uses several

Portal numbers must match what Finance invoices—show “as of” timestamp on every metric.


Monthly report generator

ReportGenerator — July 2026 · Batch 312 customers
├── Template: Enterprise SLA v3 · Locale EN · PDF + CSV attachment
├── Sections: Executive summary · Uptime by service · Incident table · Credit notice
├── Preview: Globex Corp · 4 pages · Incidents 2 · Credit line included
├── Schedule: Generate 2026-08-01 06:00 UTC · Email 2026-08-05 09:00 customer TZ
├── Exclusions applied: 14 maintenance windows · 3 force majeure flags
└── [ Run test batch (5) ] [ Generate all ] [ Export delivery log ]
Report sectionContent
Executive summaryMonth uptime vs target; credit yes/no
Service breakdownTable with target, actual, delta
Incident appendixID, duration, affected components, public summary
Credit noticeAmount, application date, invoice reference
Methodology footerCalculation version, excluded categories
BrandingCustomer logo optional; Acme trust mark

Batch generation needs progress UI and failure retry per customer—use loading states during run.


Comparison: internal SLO vs contractual SLA

DimensionInternal SLOContractual SLA
AudienceEngineering, SRECustomer, Legal, Finance
TargetOften stricter (99.95%)Contract-defined (99.9%)
MeasurementReal-time error budgetMonthly rollup
ConsequenceDeploy freeze, escalationService credits, renewal risk
VisibilityInternal dashboardsCustomer portal, PDF reports
Data sourceSame incident timestampsSame—must reconcile

Design one incident timestamp source feeding both views—never duplicate calculation logic in UI copy alone.


Handoff checklist (Dev Mode)

  • Uptime formula — versioned spec; tooltip references doc ID.
  • Service-to-component map — aligns status page, BCP catalog, SLA rows.
  • Contract tier schema — defaults, overrides, effective dates.
  • Credit formula — inputs, rounding, cap; per-tier variants.
  • Excluded downtime reasons — enum list; audit required for manual exclude.
  • Report template — PDF layout tokens; pagination rules for long incident lists.
  • Portal permissions — read-only role; hide internal SLO columns.
  • Timezone — all timestamps UTC with customer-local display option.
  • Accessibility — uptime gauges have text equivalent; charts have data table fallback.

Common mistakes

MistakeWhy it hurtsFix
Portal ≠ status page numbersCustomer trust collapseSingle calculation engine; show sync timestamp
Credits auto-applied without reviewFinance disputesCS approval gate before customer notify
Missing maintenance exclusion UIInflated downtimeExplicit exclude flow with reason + approver
One SLA for all tiersEnterprise deal gapsContract override table
No historical snapshotsRetroactive tier changes break reportsEffective-date versioning
Rounding inconsistenciesPenny credit argumentsDocument rounding in formula tooltip
Incident not linked to downtimeAudit failureRequire incident ID for every counted window
No credit deny pathCS stuck on edge casesReason-coded deny with customer template
PDF differs from portalSupport ticketsSame template engine for both
Ignoring multi-region SLAsEU customers see wrong targetRegion column on contract mapping

  1. Design internal SLA hub with service uptime, error budget gauges, and incident-linked downtime log.
  2. Build contract tier mapping with override support for enterprise addenda.
  3. Create service credit request flow with calculation preview, approvals, and audit trail.
  4. Design customer portal view mirroring status page data with report downloads.
  5. Spec monthly report generator with batch progress, preview, and delivery log.
  6. Document calculation methodology in trust center and link from portal FAQ.

FAQ

SLA dashboard vs status page?

Status page is real-time operational comms during incidents. SLA dashboard is contractual measurement over reporting periods—same incidents, different aggregation and business consequences.

Error budget vs service credit?

Error budget is an internal SRE tool for release decisions. Service credits are customer compensation when contractual SLA breaches—related but separate workflows.

How to handle PIR disputed downtime?

Add dispute flag on downtime row; freeze credit calculation until PIR closes; show “under review” in portal.

Planned maintenance and SLA?

Design exclusion workflow with customer notification requirement for enterprise tiers—maintenance window object links to status page scheduled banner.

Multi-month credit caps?

Surface rolling cap in credit preview (e.g., max 30% quarterly)—Finance rule as configurable input.


Next steps

Share on X

§ Keep reading

Related guides.