# Data qualityData qualityThe degree to which data is fit for purpose: accurate, complete, consistent, timely, valid and unique. Poor quality data undermines analytics, reporting and AI.View full definition → frameworks for subscription businesses
A SaaS (Software as a Service) company reports 14,200 active subscribers to its board. Finance later discovers 900 of those are duplicate accounts created when a billing system migration failed to deduplicate emails with different capitalization ("Jane@Acme.com" vs "jane@acme.com"). Revenue forecasts, churn rates, and CACCACCustomer Acquisition Cost (CAC) is the total sales and marketing spend divided by the number of new customers gained in a period. It measures how efficiently you grow.View full definition → () payback calculations built on that number are all wrong, and nobody notices for two reporting cycles. This is not a hypothetical: duplicate-account inflation and mismanaged mid-cycle plan changes are among the most common silent data corruptions in subscription businesses.
This lesson gives you a practical framework to catch these errors before they reachreachThe number of unique people exposed to your message in a given period. Unlike impressions, reach counts each person once, no matter how often they see it.View full definition → a dashboard.
SaaS data has a structural quirk: the "truth" about a customer changes constantly and asynchronously. A customer can upgrade, downgrade, pause, add seats, and cancel within a single billing cycle. Each event touches a different system: the product database, the billing platform (e.g., Stripe, Chargebee), the CRMCRMCustomer Relationship Management: software and strategy to manage and analyse customer interactions throughout their lifecycle.View full definition → (Customer Relationship ManagementCustomer Relationship ManagementCustomer Relationship Management: software and strategy to manage and analyse customer interactions throughout their lifecycle.View full definition → system, e.g., Salesforce), and usage logs.
When these systems don't reconcile in real time, you get exactly the two error types in this lesson's hook:
Both errors are "silent" because the record still looks valid. Nothing crashes. The number is just wrong.
Before applying quality checks, know what you're checking. Four datasets anchor most SaaS reporting:
1. Subscription/billing table: plan, price, billing cycle start/end, status (active, canceled, paused), proration events.
2. Usage logs: event-level or session-level records of product activity, timestamped, tied to a user or account ID.
3. Customer/account master: the "single source of truth" for who a customer is, ideally one row per real-world entity.
4. CRM/support data: sales stage, renewal notes, support tickets, often the first place a plan change is recorded before billing catches up.
The recurring failure mode: these four datasets are maintained by different teams (engineering, finance, sales) with different update cadences, and no single owner reconciles them.
Apply these four checks to any subscription dataset. They're the industry-standard dimensions of data qualitydata qualityThe degree to which data is fit for purpose: accurate, complete, consistent, timely, valid and unique. Poor quality data undermines analytics, reporting and AI.View full definition →, adapted here to SaaS specifics.
Does every record have the fields it needs, and does every real-world event have a corresponding record?
*SaaS check*: Every subscription row should have a non-null customer_id, plan_id, start_date, and mrr_value. Every usage log event should mapmapUsing software to automate repetitive marketing tasks and campaigns, enabling personalisation at scale across channels like email, web, and social.View full definition → to an active account_id. A common gap: usage logs continue after a cancellation date because the product didn't gate access immediately, inflating engagement metrics for churned accounts.
Does the data reflect reality?
*SaaS check*: Does the plan_id in billing match what the customer actually has access to in the product? Misconfigured entitlement systems routinely let customers use "Enterprise" features on a "Pro" plan. This is an accuracy failure, not a completeness one; the field is populated, just wrong.
Is the data current enough to be decision-useful?
*SaaS check*: If usage logs are batch-processed with a 48-hour delay, but customer success teams need same-day churn-risk signals, the data is technically accurate but too stale to act on. Define a maximum acceptable lag per use case (e.g., billing events within 1 hour, usage aggregates within 24 hours).
Do the same facts match across systems and over time?
*SaaS check*: Cross-check MRRMRRMonthly Recurring Revenue: the predictable, normalized monthly revenue from active subscriptions, the baseline metric for SaaS and subscription businesses.View full definition → calculated from the billing table against MRRMRRMonthly Recurring Revenue: the predictable, normalized monthly revenue from active subscriptions, the baseline metric for SaaS and subscription businesses.View full definition → calculated from the CRMCRMCustomer Relationship Management: software and strategy to manage and analyse customer interactions throughout their lifecycle.View full definition →'s "closed-won" records. A 2 to 5% gap (estimate, varies by company maturity) is common and manageable; a 15%+ gap signals a systemic reconciliation failure, often from the duplicate-account or proration issues above.
Duplicates typically hide behind:
A basic deduplication check in SQLSQLSales Qualified Lead: a prospect the sales team has validated as ready for direct outreach and a proposal, having passed clear qualification criteria.View full definition →:
SELECT
LOWER(TRIM(email)) AS normalized_email,
COUNT(DISTINCT customer_id) AS account_count
FROM customer_master
GROUP BY LOWER(TRIM(email))
HAVING COUNT(DISTINCT customer_id) > 1;This surfaces candidate duplicates by normalizing email case and whitespace. It won't catch duplicates using entirely different emails (that requires fuzzy matching on name, company domain, or payment method), but it catches the most common and cheapest-to-fix case.
Metric to track: duplicate rate = (duplicate accounts found) / (total accounts). Many SaaS data teams target under 1% (estimate, industry practice varies); above 3% typically means the signup or migration pipelinepipelineAll active sales opportunities across the stages of the sales process, together with their combined potential value and probability of closing.View full definition → needs a structural fix, not just periodic cleanup.
The fix is proration logic, and the quality check is a reconciliation test.
Worked example: A customer on a $60/month plan upgrades to $180/month on day 20 of a 30-day cycle.
If your reporting pipelinepipelineAll active sales opportunities across the stages of the sales process, together with their combined potential value and probability of closing.View full definition → instead books the full $180 for the month (ignoring proration), you overstate that customer's MRRMRRMonthly Recurring Revenue: the predictable, normalized monthly revenue from active subscriptions, the baseline metric for SaaS and subscription businesses.View full definition → contribution by $76 for one cycle, and if it repeats across hundreds of upgrades monthly, aggregate MRRMRRMonthly Recurring Revenue: the predictable, normalized monthly revenue from active subscriptions, the baseline metric for SaaS and subscription businesses.View full definition → growth looks artificially strong.
Quality check: reconcile sum(billed_amount) per customer per cycle against sum(prorated_plan_value) calculated independently from the plan-change event log. Flag variances above a small tolerance (e.g., $1 or 1%, whichever is larger) for manual review.
Knowledge check
1. Why are duplicate accounts and mishandled mid-cycle plan changes described as 'silent' data corruptions?
2. What is the fundamental structural reason SaaS subscription data is especially prone to reconciliation errors compared to a simple one-time purchase business?
3. A customer upgrades from a lower-priced to a higher-priced plan on day 15 of a 30-day billing cycle. What is the core risk this creates for MRR reporting?
4. Select ALL correct answers about how duplicate customer accounts typically arise in subscription businesses.
Select all the correct answers.
5. Select ALL correct answers about the consequences of the duplicate-account inflation described in the SaaS example.
Select all the correct answers.
Data qualityData qualityThe degree to which data is fit for purpose: accurate, complete, consistent, timely, valid and unique. Poor quality data undermines analytics, reporting and AI.View full definition → checks only work if someone is accountable for acting on them. A minimal governance structure for subscription data:
This mirrors general data governancedata governanceData governance is the set of policies, roles, and processes that ensure data is accurate, secure, well-defined, and used responsibly across an organization.View full definition → practice; see the DAMA-DMBOK framework for a fuller reference model if you want the formal version.
There's no single global regulator setting SaaS data qualitydata qualityThe degree to which data is fit for purpose: accurate, complete, consistent, timely, valid and unique. Poor quality data undermines analytics, reporting and AI.View full definition → standards (this is an operational discipline, not a compliance one), so treat these as practitioner estimates, not audited figures:
Always benchmark against your own historical baseline first. A change from 1% to 4% duplicate rate matters more than the absolute number.