Skip to main content

Timeliness

All 6 timeliness metrics DQS measures, the diagnostic flow for finding stale and anomalous dates, and how to configure freshness analysis.

What is Timeliness?

Timeliness measures whether your date values are current enough for their intended use. A date field is timely when it falls within your acceptable freshness window. A date field is stale when it sits beyond that window, meaning the data no longer reflects present reality.

Every date field in your CRM carries a time-based expectation. A LastActivityDate that is 18 months old signals a dead lead. A Contract_End_Date__c set to 2099 is a placeholder, not a real deadline. A Date_of_Birth__c in the future is a data entry error. Timeliness analysis catches all of these.

Freshness Rate = (Records with Date in Freshness Window / Total Records) x 100

If 659 of 1,000 records have a Last_Certification_Date__c within the last 90 days, your freshness rate is 65.9%. The remaining 34.1% are either stale, null, or future-dated. This single number tells you how current a field is across your dataset.

Why Timeliness Matters

Reporting

Stale dates distort your analytics. When 30% of your Opportunity CloseDate values are in the past on open deals, your pipeline reports show deals that are stuck, ignored, or already lost but never updated. Forecasts built on these dates mislead leadership.

Automation

Salesforce automation depends on date values. A renewal workflow that triggers 30 days before Contract_End_Date__c fails when the date is five years old. An SLA escalation that fires on Due_Date__c triggers false alarms when the date was never updated after resolution.

AI and Agentforce

AI models treat your date values as current truth. Agentforce uses dates to prioritize actions, schedule follow-ups, and assess urgency. When your dates are stale, the model recommends contacting leads who left two years ago, flags contracts that were renewed months ago, and misses the ones that actually need attention.

SystemTimeliness Impact
ReportsStale close dates skew pipeline and forecast accuracy
WorkflowsOutdated dates trigger false or missed automation
Duplicate RulesStale modification dates make recency-based matching unreliable
AgentforceOld dates produce outdated prioritization and recommendations

How DQS Measures Timeliness

DQS produces 6 timeliness metrics organized around a diagnostic question: “Is the data current, how old is it, and are there dates that do not make sense?”

Think of these metrics as a diagnostic flow. Each step builds on the previous one.

Step 1: Is the Data Current?

Freshness Rate is the headline metric. It calculates the percentage of records where the date field value falls within your configured freshness window (for example, the last 90 days). This is the number you put on a dashboard.

You run a scan on the LastActivityDate field for Opportunities with a 30-day freshness window. Freshness Rate comes back at 41%. That means 59% of your open Opportunities have had no activity in the last month. Pipeline reviews, forecast accuracy, and sales coaching are all working with stale signals.

Staleness Rate quantifies the problem side. It measures the percentage of records where the date field is null or older than the freshness window. Future-dated records are excluded from staleness because they are a different type of problem (captured by Future Rate).

Example: Contract_End_Date__c on Accounts shows 28% Staleness Rate with a 365-day window. Nearly a third of your contracts show end dates more than a year in the past. These are either expired contracts still marked active, or contracts that were renewed but never updated. Either way, your renewal pipeline is inaccurate.

The Three-Way Decomposition

Every record falls into exactly one of three categories. The rates always sum to 100%:

CategoryDefinitionExample (90-day window)
FreshDate within the freshness window65.9%
StaleNull or past beyond the window32.6%
FutureDate after today1.5%
Total100.0%

This decomposition gives each category a distinct meaning. A stakeholder asking “what percentage is stale?” gets a number that means “outdated or missing,” not “outdated or missing or impossibly future-dated.”

Step 2: How Old Is It?

Freshness Rate is binary: a record is either fresh or stale. Average Age adds nuance.

Average Age calculates the mean number of days between each past-dated record’s value and today, divided by total records. Nulls and future dates contribute 0 to the sum but are counted in the denominator.

Two fields can both show 60% freshness, but one has an average age of 15 days (mostly recent, a few outliers) while the other has an average of 90 days (staleness spread evenly). The remediation strategy differs. A field with a low average age needs targeted cleanup of a few old records. A field with a high average age needs a broader refresh effort.

Example: Last_Contacted_Date__c on Leads has 55% freshness (30-day window) and an average age of 45 days. The staleness is not severe, as most stale records sit slightly outside the window. A quick outreach campaign can move the freshness rate significantly.

Step 3: Are There Anomalies?

Two metrics catch dates that do not belong.

Future Rate measures the percentage of records where the date value is in the future. For historical date fields like Created Date, Last Modified Date, or Date_of_Birth__c, future dates are almost always errors: timezone issues, data entry mistakes, or placeholder values like 2099-12-31.

Example: Date_of_Birth__c on Contacts shows a Future Rate of 0.8%. That is 400 records out of 50,000 with birth dates in the future. These break age-based segmentation, compliance checks, and marketing campaigns that filter by age group.

Operational Range Rate measures the percentage of records where the date value falls within a defined operational boundary (a minimum date and maximum date you configure). Dates outside this range are flagged as anomalies.

Some date fields have natural boundaries. A Hire_Date__c before 1950 is wrong. A Project_Deadline__c set to 2099 is a placeholder. Operational Range Rate catches these outliers that pass basic freshness checks because the field is populated, just with unrealistic values.

Example: You set an operational range of 365 days in the past to 0 days in the future on Close_Date__c for Opportunities. Operational Range Rate is 84%. Investigation reveals 200 records with close dates from 2005 (migrated from a legacy system) and 50 records with close dates in 2099 (placeholder from an integration). Both groups distort your pipeline analytics.

Note: When your operational range maximum is set to 0 (today), all future dates are also out of range. Future Rate and Operational Range Rate overlap on future-dated records. They are complementary views, not additive.

Step 4: Are Deadlines Being Met?

Overdue Rate measures the percentage of records where the date field is past today’s date, with an optional grace period. It is purpose-built for deadline-type fields where “past due” has business meaning.

Overdue Rate differs from Staleness Rate in two ways. First, it adds a configurable grace period buffer (for example, 14 days) so the scan does not flag records as overdue the day after the deadline. Second, it targets fields like renewal dates, certification dates, and contract end dates where a past date means action is needed.

Example: Renewal_Date__c on Contracts with a 30-day grace period shows an Overdue Rate of 12%. That means 12% of contracts are more than 30 days past their renewal date without being renewed or closed. These are revenue leakage risks.

”Last Event” vs “Deadline” Fields

Not every timeliness metric fits every field. Overdue Rate reads tautologically high on “last event” fields because most events are, by definition, in the past. Choose your headline metric based on the field type:

Field TypeExample FieldsHeadline MetricWhy
Last eventLastActivityDate, Last_Certification_Date__cFreshness Rate”When was this last updated?” is the relevant question
DeadlineRenewal_Date__c, Contract_End_Date__c, Due_Date__cOverdue Rate”Is this past due?” is the relevant question

Why All Metrics Use Total Records

All 6 timeliness metrics use the same denominator: total records, including nulls. This keeps every metric comparable within the same scan. If one metric excluded nulls and another included them, a stakeholder comparing “freshness 66% vs future 1.6%” would be comparing two different universes without knowing it.

When Null As Stale is enabled, null records count against freshness (they are in the denominator but not the freshness numerator). When disabled, nulls are excluded from both numerator and denominator, and freshness is calculated over populated records only.

Metric Reference

Foundation Metrics

These 2 metrics form the base of every timeliness analysis. They answer the core question: is this data current?

MetricTypeWhat It Measures
Freshness RatePercentageShare of records with dates within the freshness window
Staleness RatePercentageShare of records with null or expired dates beyond the window

Advanced Metrics

These 4 metrics go beyond “is it current?” to analyze age distribution, date anomalies, and deadline compliance. They require the Advanced Data Freshness analysis mode.

MetricTypeWhat It Measures
Average AgeDaysMean age of date values across all records
Future RatePercentageShare of records with dates after today
Overdue RatePercentageShare of records past due (with optional grace period)
Operational Range RatePercentageShare of records with dates inside the configured boundary

Field Type Coverage

DQS measures timeliness on Date and DateTime fields only. Timeliness is inherently temporal. Unlike completeness (which works on all 20+ field types), timeliness applies only to fields that represent points in time.

MetricDateDateTime
Freshness RateXX
Staleness RateXX
Average AgeXX
Future RateXX
Overdue RateXX
Operational Range RateXX

Two Analysis Modes

DQS offers two timeliness analysis modes:

Data Freshness answers the question: “Is the data current or stale?” It produces the 2 foundation metrics and covers the essentials for any org with date-sensitive processes. Use this mode for quick hygiene checks and baseline audits.

Advanced Data Freshness goes deeper. It produces all 6 metrics, including average age, future-date anomalies, overdue tracking, and operational range compliance. Use this mode when you need to understand the full picture of date quality, not just the freshness score.

Business NeedRecommended Mode
Quick date hygiene check or baseline auditData Freshness
Data migration assessmentAdvanced (operational range catches legacy date anomalies)
SLA or deadline monitoringAdvanced (overdue tracking with grace periods)
Pipeline accuracy auditAdvanced (future rate + operational range catch placeholder dates)
Ongoing data governanceStart with Data Freshness, move to Advanced when date quality is a priority

Configuring Timeliness

DQS provides five configuration inputs for timeliness. Each can be set at the global level (applies to all fields) and overridden at the individual field level.

SettingWhat It Controls
Freshness WindowThe number of days a date is considered “fresh.” A window of 90 means any date within the last 90 days counts as fresh. Required: you must set this before running a scan. Range: 1 to 9,999 days.
Null As StaleWhen enabled, null date values count as stale (they are in the denominator and penalize freshness). When disabled, nulls are excluded from evaluation. Default: disabled.
Overdue TrackingEnables the Overdue Rate metric. When disabled, Overdue Rate is not computed. Default: disabled.
Grace PeriodThe number of days after a deadline before DQS flags a record as overdue. Visible only when Overdue Tracking is enabled. Range: 0 to 365 days.
Operational RangeDefines the minimum and maximum date boundaries as days in the past and days in the future from today. DQS converts these to absolute dates at scan time. Visible only when enabled.

Tip: Different date fields have different freshness expectations. A LastActivityDate on open Opportunities needs a 30-day window. A Contract_End_Date__c on Accounts needs 365 days. Use field-level overrides to set the right window for each field.

Choosing Your Freshness Window

The freshness window is the most important configuration decision for timeliness. Here are starting points by field type:

Date FieldSuggested WindowRationale
LastActivityDate30 daysActive deals need recent engagement
LastModifiedDate90 daysRecords touched within a quarter are generally current
Contract_End_Date__c365 daysContracts renew annually
Last_Verified_Date__c90-180 daysVerification cadence varies by org
Created DateNot applicableCreation date never changes; use completeness, not timeliness

Operational Range Configuration

Operational range uses “days in past” and “days in future” instead of absolute dates. DQS converts these to absolute dates at scan time using today’s date.

Example: You set 365 days in the past and 0 days in the future. On February 22, 2026, DQS converts this to the range February 22, 2025 through February 22, 2026. Any date before February 22, 2025 or after today is out of range.

This means the range shifts forward each day. A record that is in range today can fall out of range tomorrow as the window moves.

Common Timeliness Issues

Stale Activity Dates on Open Opportunities

Sales reps stop updating Opportunities but leave them in an “Open” stage. The LastActivityDate ages silently. Your pipeline reports show active deals, but the dates reveal that nobody has touched them in months.

Fix: Set a 30-day freshness window on LastActivityDate for open Opportunities. Use the Staleness Rate to scope how many deals need follow-up or stage correction.

Placeholder Future Dates

Integrations and bulk imports often use placeholder dates like 2099-12-31 for fields that require a value. These placeholders look like populated data but distort any time-based analysis.

Fix: Use Future Rate to identify records with dates after today. Use Operational Range Rate to catch both far-future placeholders and ancient legacy dates in a single metric.

Expired Contracts Never Updated

Contracts renew, but the Contract_End_Date__c never gets updated to the new expiration. Your system shows expired contracts alongside active ones with no way to tell the difference without checking dates.

Fix: Enable Overdue Tracking with a grace period that matches your renewal cycle (for example, 30 days). Overdue Rate shows you exactly how many contracts are past due and unrenewed.

Null Dates Hiding Staleness

When Null As Stale is disabled (the default), null dates are excluded from evaluation entirely. If 20% of your records have null dates, your Freshness Rate is calculated over only the remaining 80%. This can make your numbers look healthier than they are.

Fix: Enable Null As Stale if null dates represent missing data that needs attention. This includes records where no activity has ever occurred or fields that were never populated during migration.

Best Practices

Choose the Right Headline Metric

Freshness Rate is the right headline for “last event” fields (when was this last updated?). Overdue Rate is the right headline for deadline fields (is this past due?). Presenting Overdue Rate on a LastActivityDate produces a misleadingly high number because most activities are, by nature, in the past.

Set Field-Specific Windows

A single freshness window across all date fields misses the point. Activity dates need tight windows (30 days). Contract dates need wider windows (365 days). Certification dates depend on your industry’s renewal cycle. Use field-level overrides to match each field’s business context.

Use Average Age to Plan Remediation

Freshness Rate tells you how big the problem is. Average Age tells you how bad. A field with 40% staleness and an average age of 45 days needs a quick outreach campaign. A field with 40% staleness and an average age of 400 days needs a data enrichment project. Same percentage, different fix.

A single scan shows current state. Run scans regularly to detect freshness degradation, measure the impact of cleanup initiatives, and identify data sources that introduce stale records. A field that drops from 80% to 60% freshness between scans has a new problem source.

Combine Timeliness with Completeness

A date field can be 95% complete but only 50% fresh. Completeness tells you the field has a value. Timeliness tells you whether that value is current. Run both dimensions on your date fields to get the full picture.

Next Steps

You now understand how to measure and diagnose date freshness issues. Continue learning about the next dimension: