Understanding the Trade-Off: Live Data vs Approved Snapshots
In SaaS products serving South African businesses, deciding whether customers should see live dashboard figures or approved reporting snapshots is a common design challenge. Live data offers immediacy, showing the freshest metrics as they update. However, such data can be incomplete or unverified, potentially leading to confusion or mistrust. Approved snapshots, by contrast, are reviewed, validated reports capturing a fixed period’s data, recording a review decision but often at the cost of timeliness. Approval does not guarantee accuracy or constitute an independent audit.
Balancing Data Freshness with Review Requirements
Freshness matters for operational decisions, especially in fast-moving sectors like e-commerce or digital marketing. Yet, financial or compliance reporting demands accuracy and auditability, favouring approved snapshots. The product design must weigh how critical real-time updates are versus the risk of exposing unconfirmed data. For example, a marketing dashboard might show live campaign clicks but lock final conversion numbers until approved.
Labeling Reporting Periods: Draft and Approved States
A clear visual distinction helps customers understand data status. Label dashboard figures as “Draft” when data is still accumulating or under review, and “Approved” once finalised. This reduces misinterpretation and sets expectations. For instance, a sales dashboard could show a "Q3 Draft" tab with live data and an "Q2 Approved" tab with reviewed results.
Defining Roles: Who Can Finalise Customer-Visible Data?
Assigning responsibility for data approval is crucial. Typically, internal product owners or data stewards review and finalise reports before publishing to customers. Implement role-based access control aligned with OWASP authorization principles to ensure only authorised personnel can transition data from draft to approved states, preventing premature exposure.
Reporting-State Product Design: A Practical Template
| Reporting Period | Data State | Visible To | Finalised By | Notes |
|---|---|---|---|---|
| Current Month | Draft | Internal | Product Owner | Live data, subject to change |
| Previous Month | Approved | Customers | Data Steward | Reviewed versioned report |
| Custom Range | Draft/Approved | Depends on user role | Defined approver | User-triggered snapshots |
This template guides product teams to define and communicate data states clearly.
Hypothetical proposed example: a marketing dashboard
A South African SaaS platform offers marketing analytics. Live dashboard shows daily click and impression counts labelled as Draft. Monthly performance reports are reviewed by the analytics team and published as Approved snapshots by the 5th working day of the following month. Customers see only Approved data for billing and ROI calculations, under this proposed product rule.
Implementing the Design: Technical and UX Considerations
Use feature flags or state machines in your dashboard backend to manage data states. Frontend UI should visually differentiate draft and approved data, possibly with colour coding or icons. Provide audit trails for approvals and automate notifications to approvers. Refer to dashboard development best practices for implementation guidance.
Avoiding Common Pitfalls
- Don’t mix live and approved data in the same view without clear labels.
- Avoid giving customers access to unapproved financial figures.
- Ensure approval workflows are robust and auditable.
- Communicate clearly to users about data freshness and reliability.
Conclusion and Recommendation
Choose visibility for the decision and customer agreement. A hybrid design can show provisional operational figures to authorised customers and reviewed snapshots for final reporting. Internal-only drafts are one proposed option, not a universal best practice. Define clear roles for finalising data visibility and label reporting periods transparently. This balances the need for timely insights with accuracy and trust.
If your business needs help designing customer dashboards with clear data states, or implementing secure approval workflows, get in touch to explore our dashboard development services.
Managing Data State Transitions with Role-Based Controls
Implementing a robust role-based access control (RBAC) system is essential to govern who can move data from draft to approved states. In a South African SaaS context, this supports an adopted review workflow; it does not establish compliance or customer trust.
Defining Roles and Permissions
- Data Creator: Typically automated systems or analysts who input or generate draft data. They have read/write access to draft data but cannot approve.
- Data Reviewer: Senior analysts or product owners who review draft data for completeness and correctness. They can comment, request changes, and initiate approval workflows.
- Data Approver: Usually data stewards or compliance officers authorized to finalise and publish data to customers. Their approval triggers the transition to the approved state.
Enforcing Authorization
Use the principle of least privilege as recommended by OWASP to restrict approval actions strictly to approvers. Implement deny-by-default policies to prevent unauthorized access. Every approval request should be logged with:
- Approver identity
- Timestamp
- Changes approved
- Comments or conditions
Automate notifications to approvers when draft data is ready for review to reduce delays.
Audit and Recovery
Maintain audit trails accessible to internal teams for compliance and troubleshooting. If an incorrect approval occurs, implement a rollback mechanism:
- Mark the approved data as "Revoked"
- Show an appropriate prior valid version of that period, or a withdrawn/unavailable state if none exists
- Notify stakeholders of the issue and corrective action
Hypothetical proposed workflow: a billing dashboard
Scenario: A SaaS company offers billing analytics to South African SMEs. Customers require accurate monthly billing summaries but also want near-real-time usage data.
Reporting Periods and States
| Reporting Period | Data State | Visible To | Finalised By | Notes |
|---|---|---|---|---|
| Current Month | Draft | Internal Only | Billing Analyst | Live usage data, updated daily |
| Previous Month | Approved | Customers | Finance Manager | Reviewed versioned billing report |
| Custom Date Range | Draft/Approved | Internal or Customer | Billing Analyst/Manager | On-demand reports with approval |
Workflow Steps
- Data Collection: Usage data streams into the system daily, stored as draft.
- Preliminary Review: Billing analysts monitor draft data for anomalies.
- Approval Preparation: By the 5th working day after month-end, analysts prepare the final report.
- Approval: Finance Manager reviews and approves the report, triggering publication.
- Customer Access: In this example, customers see approved monthly reports; draft usage is internal only. Other products may allow clearly labelled provisional customer usage.
Acceptance Tests
- Test 1: Draft data is not visible to customers.
- Action: Attempt to access current month draft data via customer account.
- Expected Result: Access denied with clear messaging.
- Test 2: Only authorized approver can finalise reports.
- Action: Billing Analyst attempts to approve report.
- Expected Result: Approval rejected; only Finance Manager succeeds.
- Test 3: Approved report is accessible to customers after approval.
- Action: Customer requests previous month report.
- Expected Result: Report loads with "Approved" label.
Failure Tests
- Test 4: Unauthorized user tries to access approved reports.
- Action: External user attempts API call.
- Expected Result: Access denied; logged and alerted.
- Test 5: Approval rollback after error discovery.
- Action: Finance Manager revokes approval due to data error.
- Expected Result: The period shows a withdrawal notice or appropriate prior version; notification delivery is recorded separately.
Recovery Steps
- Implement a "revocation" feature to mark reports as invalid.
- Notify customers proactively with corrected reports.
- Conduct root cause analysis and improve data validation.
Practical Worksheet: Reporting-State Product Design Template
| Field | Description / Example | Recorded Value / Notes |
|---|---|---|
| Reporting Period Type | Monthly, Quarterly, Custom | Monthly |
| Data State Names | Draft, Approved, Revoked | Draft, Approved, Revoked |
| Visibility Rules | Who sees each state | Draft: Internal only; Approved: Customers |
| Approval Role | Who can finalise data | Finance Manager |
| Approval Workflow | Steps to approve and publish data | Draft review → Approval request → Finalise → Publish |
| Audit Logging | What approval info is recorded | Approver ID, timestamp, comments |
| Notification Triggers | When to notify approvers or users | Draft ready, approval granted, revocation issued |
| UI Labels and Indicators | Visual cues for data state | "Draft" in orange, "Approved" in green, "Revoked" in red |
| Rollback Mechanism | Process to handle approval errors | Mark revoked, revert view, notify users |
This worksheet helps product teams document and communicate their reporting-state design clearly, ensuring alignment across development, operations, and customer support teams.
Documentation boundaries for this decision
Vercel Observability documentation explains how live runtime metrics and error traces can be captured and queried in near real-time. This capability supports showing live dashboard figures internally, as it provides fresh insights into system behavior and errors. However, it does not imply that such live data is verified or audited for accuracy, so exposing it directly to customers without review could risk presenting incomplete or misleading information. Source: Vercel observability
The OWASP Authorization Cheat Sheet details best practices for role-based access control, emphasizing the principle of least privilege and deny-by-default policies. Applying these guidelines ensures that only authorized personnel can approve and finalise reporting snapshots before customer release. This prevents unauthorized or premature exposure of data, supporting a secure workflow for transitioning data from draft to approved states in customer dashboards. Source: OWASP authorization guidance
Supabase's row-level security guide explains grants and row policies. Restrict reports by organisation, period and visibility state where appropriate. Authorise privileged server paths separately; approval for one customer is not publication to every customer.
Version the report that was actually reviewed
Keep snapshot ID, period, timezone, source cutoff, calculation version, content hash, reviewer, approval time and publication time. Approval references an immutable reviewed version. If a worker updates the draft after review, do not publish changed content under the old approval. Compare the expected version atomically before approving or publishing it.
Separate draft, ready-for-review, approved, published, withdrawn and superseded states. Approval and publication may be separate operations. Store notification delivery separately: a failed email does not mean publication failed. These are proposed application states, not names mandated by a hosting service.
Suppose a hypothetical September report receives a late conversion adjustment. Create a new version, record the reason and review the correction. Retain the original for authorised reviewers under the retention rule. Do not quietly change an exported file the customer relied on, and do not display August's figure as September's fallback.
Test a source update during approval, conflicting approvals, access to another organisation, stale caches after withdrawal and exports lacking the period. Verify state and version in both screen and download. A previous approved version can also be wrong; recovery needs an explicit suitability decision.
The fifth-working-day schedule is an invented proposed rule, not a legal deadline or real client practice established here. Define holidays, timezone and responsibility for delayed reporting before adoption.
Frequently asked questions
What are the risks of showing live data to customers?
Live data may be incomplete, incorrect, or subject to change, leading to misinformed decisions or loss of trust if not clearly labelled.
How can I label draft versus approved data effectively?
Use clear text labels like "Draft" or "Preliminary" and "Approved" or "Final" with distinct colours or icons to differentiate data states.
Who should be responsible for approving data before customer release?
Typically, internal data stewards or product owners with appropriate permissions should review and finalise data.
Can customers request custom reporting snapshots?
Yes, but these should follow the same draft/approval workflow to maintain data integrity.
Related resources
- Dashboard development best practices
- SaaS development overview
- Marketing dashboard metrics guide
- AI CRM integration workflows
- AI automation glossary

