Data freshness is the age of a record: how long ago it was last checked against the real world. A fresh B2B record has a title, employer and email that were confirmed recently. A stale one describes a person as they were months ago.
Key takeaways
- Freshness is about time. Accuracy is about being right. A record can be old and still correct, or new and wrong.
- Every B2B record decays, because people change jobs and companies change domains. Nobody can stop that, only measure it.
- Ask any provider for two things: how often the dataset refreshes, and a per-record date you can read.
- LeadOcean refreshes the dataset monthly. Each record carries its own
fetched_atdate, andemail_statustells you how an address checked out.
What it is
Data freshness is the time elapsed between the moment a record was last checked against its source and the moment you use it.
That gap has two parts. The first is how often the provider refreshes its database. The second is how old each individual record is inside that refresh cycle. A database refreshed monthly can still hold a record that was last checked months ago, if that record was skipped in several runs.
Freshness matters most for fields that change: job title, employer, email address, phone number and headcount. It matters little for fields that rarely move, such as a company's founding year or its country.
Records go stale for plain reasons. A person changes employer and the old email stops working. A company rebrands and moves to a new domain. A team grows and its headcount band no longer fits. The provider's database has not seen any of that yet.
This page gives no decay percentage, because none is published for LeadOcean data. Measure the rate on your own list instead. Pull a sample, check it against LinkedIn or a verification run, and count the rows that no longer match.
How it works
Freshness is measured per record, then summarised per dataset. Here is the process a data team follows.
- Stamp every record. Each time a record is fetched or re-verified, store the date. Without a stamp you cannot compute age.
- Compute age at read time. Age is today's date minus the stamp. Do this when you pull the record, not when you load the file.
- Set a tolerance per field. A title used in a first line of an email needs a tighter limit than a company's industry.
- Re-check what exceeds the limit. Re-enrich, re-verify the email, or drop the row.
- Track the cadence. Note how often the provider refreshes the whole dataset, and compare it to how long your list sits unused.
A worked example. You export 5,000 contacts on 1 September with a fetched_at of 1 September. You hold the list for six weeks before the campaign starts. By mid-October, the oldest data on the list is already six weeks past the fetch date, plus whatever age it had on export day.
So your rule is simple: read the stamp, add the weeks you sat on the list, and decide whether that total is under your limit. If it is not, enrich the rows again before you send.
Two habits make this cheap. First, store the fetch date in your CRM or sheet next to the value, not in a separate export. Second, sort by date before every campaign and work the oldest rows first. Those rows carry the most risk and are the first to re-check.
Data freshness vs data accuracy
People use the two words as if they meant the same thing. They do not, and the fix for each is different.
| Data freshness | Data accuracy | Email verification | |
|---|---|---|---|
| Question it answers | How recent is this record? | Is this record correct? | Will this address accept mail? |
| Unit | Days or months since last check | Share of fields that are right | A status per address |
| How you measure it | A date field such as fetched_at | Sample and compare with a source | A status such as verified or risky |
| What breaks it | Time passing | Bad source, bad matching | Mailbox closed, domain changed |
| Fix | Re-fetch or re-enrich | Change source, fix matching | Read the status before sending |
A fresh record can be wrong if the source was wrong. An old record can be right if nothing has changed. Treat freshness as a risk signal and accuracy as an outcome you test with a sample.
When it matters
Outbound email
A stale email costs you a bounce, and bounces damage the sending domain. LeadOcean gives no refund or credit for bounced emails, so read email_status before every send. The status is the cheapest freshness check you have for an address.
Targeting by role
If you write to a "VP of Sales", you want to reach the person holding that title now. Titles drift faster than most fields. A title that is a month old is usually fine. A title that is a year old is a guess.
Account lists and territory planning
Company fields move more slowly, but domains, headcount bands and funding status do change. Refresh account lists before a quarter starts, not halfway through it.
Sales handoffs and enrichment pipelines
A list passed from marketing to sales often sits for weeks. Add a date check to the handoff. If a row's stamp is older than your limit, send it back through enrichment before a rep touches it.
Agents and automated workflows
An agent that calls a data API will act on whatever it reads. If your prompt or workflow does not check the date, the agent will treat a stale title as current. Make the date part of the output the agent sees.
How LeadOcean handles it
LeadOcean refreshes the dataset monthly, and each record carries its own fetched_at date. That gives you both numbers from the section above: the cadence and the per-record age. LeadOcean does not publish a freshness percentage, so measure it on a sample of your own list.
Email checks live in email_status, which has 13 values, from verified and catch_all_valid to risky, invalid and spam_trap. A people count in MCP covers verified, catch_all_valid and catch_all by default.
To see the date on a record, enrich one person by person_id (take it from a people search row) and read the fetched_at field. A miss on this endpoint is a 404 and costs nothing.
curl -s -X POST "https://api.leadocean.io/v1/people/enrich" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "content-type: application/json" \
-d '{"person_id":"1234567"}' \
| jq '. | .fetched_at? // empty'Replace the placeholder person_id with one from your own search. Every person or company returned counts as one record. For a whole list, add the fetched_at column to an export with POST /v1/exports or on the Exports page of the app. See pricing for the Free and Pro plans.
For a ranking of providers by how fresh their data is and what it costs, see the hub: B2B prospecting tools ranked by data freshness and price. For a wider view of vendors, read best B2B databases. If you sell into the UK, see best B2B data providers in the UK.
FAQ
How often should B2B data be refreshed?
Match the refresh to how fast the field changes and how long your list sits unused. For outbound email, re-check titles and addresses close to send time. For account lists, refresh once a quarter.
Does fresh data mean accurate data?
No. Freshness says when a record was last checked. Accuracy says whether it was right. Test accuracy on a sample of 100 to 200 rows against a source you trust.
What is the difference between a refresh cycle and a record date?
The refresh cycle is how often the provider rebuilds the dataset. The record date is when that one record was last fetched. You need both, because a monthly cycle can still carry older records.
Where do I find the freshness date in LeadOcean?
Read the fetched_at date that comes back with each record. The dataset is refreshed monthly. Check email_status for the state of an address.
Check how fresh your data is before you send
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →