Backline

Backfilling history you were never given

A new analytics connection starts counting today, and public streaming counters expose no dated past. What can actually be recovered, from where, and how to show it honestly.

Danny Starr

Co-founder, Backline · 18 May 2026 · 3 min read

In short

  • Public streaming counters give a running total with no dated past, so history cannot be reconstructed from them after the fact.
  • Platform exports are the only real route back. A Spotify for Artists timeline export gives dated daily figures for the period before tracking began.
  • Sources with a genuine reporting API, such as advertising, search and email, backfill themselves on connection because they serve a trailing window.
  • Merge uploaded history only for dates before live tracking started, and flag every uploaded point so the two provenances never blur.
  • Show the boundary in the interface. A dashed segment with a live data begins marker is more trustworthy than one unbroken line.

Connect a new analytics platform to a project with four years of catalogue and the charts start at zero, today.

That is not a limitation of the platform. It follows from what the sources expose.

Why history cannot be recovered from a counter

A cumulative counter tells you the total now. Yesterday's total is not retrievable, because the value was overwritten by today's.

If nobody was snapshotting on that day, the number that existed then is gone. We looked for dated history endpoints on the providers we use, probing several plausible shapes for historic data and date range parameters, and found none. What is available is the total, as of asking.

So the only history a counter-based system has is history it recorded itself.

What backfills, and how far

Illustrative
Backfills on connectionRecoverable laterGone unless captured
Streaming totalsNoVia a platform exportEverything the export does not cover
Monthly listeners and followersNoPartly, via a platform exportDaily detail
Advertising performanceYes, trailing windowYes
Search performanceYes, trailing windowYes
Email campaignsYes, sent campaigns return with the accountYes
Ticket salesDepends on the partnerVia settlement or exportDaily pacing if never captured
Press coveragePartly, from an indexPartlyAnything not indexed
The first column is why a new connection is not uniformly blank. The third is why streaming history is the one thing that has to be uploaded rather than fetched.

What can be recovered

Platform exports. The real answer. Spotify for Artists provides timeline exports of audience and per-song data. Those are dated daily figures produced by the platform itself, which is exactly the history a third-party pipeline could not have collected.

If your tooling accepts one, an artist onboarded in 2026 can have real data from 2023.

Anything with a proper reporting API. Advertising platforms, search, analytics and email all serve a trailing window on request, so they backfill themselves the moment a connection is made. A newly connected ad account arrives with its recent history intact.

Ticketing. Depends on the partner, but a settlement or a box-office export can rebuild a pacing history that was never captured live.

Nothing else. Public streaming and social counters start from the connection date, and no amount of engineering changes that.

Handling an upload honestly

Once you accept uploaded history, you have two provenances in one series and a set of decisions to make.

Merge only before live tracking began. For any date where you have a real snapshot, use it. Uploaded data fills the period before, never overwrites the period after. That keeps one rule, avoids reconciling two sources for the same day, and means an upload can never quietly rewrite recorded history.

Flag every uploaded point. In the data, not only in the interface. Downstream consumers, chart tooltips, exports and AI summaries should all be able to tell that a point came from an upload.

Record the boundary. The date live tracking began, per source, so the interface can mark it.

Replace rather than accumulate on re-upload. A second upload for the same scope should replace the first. Otherwise a user correcting a mistake ends up with two overlapping histories and no way to tell which is current.

Uploaded history and live tracking, drawn honestly

Illustrative
610live data beginsJanFebMarAprMayJunJulAug
Uploaded from a platform exportLive tracking
Illustrative. The dashed segment and the marked boundary are the point. A single continuous line would be prettier and would hide the fact that the two halves came from different places.

Showing it

The temptation is to render one continuous line, because it is prettier. Resist it.

Draw uploaded segments distinctly, dashed or lighter, mark the boundary with a label such as live data begins, and note which platforms the uploaded data covers, since a platform export usually covers one service rather than all of them.

This looks like admitting a weakness. It reads as the opposite: a chart that distinguishes its own sources is more credible than one that hides the seam. The first time somebody spots an undeclared join themselves, they stop trusting the whole chart.

Who should be allowed to upload

Worth a thought, because it is a permission that does not fit the obvious buckets.

Uploading history is not the same as changing what a project tracks. A member of a project should generally be able to add historical data without also being able to change the catalogue, so it makes sense as its own permission rather than being folded into a general settings capability.

What to tell somebody migrating

Be direct. Streaming and social history does not transfer, and it cannot be reconstructed later, so the first month on any new platform has no comparisons.

Two things reduce the pain. Export whatever the incumbent allows while you still have access, since even monthly totals give a reference. And upload a platform export on day one rather than after three months of flat charts.

The second is the one people skip, and it is the difference between a first quarter that can answer questions and one that cannot.

Common questions

Can you backfill historical streaming data into a new analytics platform?
Only from a platform export. Public streaming counters expose a running total with no dated past, so any day nobody snapshotted is unrecoverable. A Spotify for Artists timeline export contains dated daily figures and is the practical route to real history for the period before tracking began.
Which data sources backfill themselves when connected?
Anything with a genuine reporting API that serves a trailing window: advertising platforms, Google Search Console, web analytics and email platforms all return recent history on connection. Streaming and social counters do not, because they only publish a current total.
How should uploaded historical data be displayed?
As a visually distinct segment with the boundary marked, for example a dashed line and a live data begins label, plus a note on which platforms the upload covers. Merging it invisibly into one continuous line is prettier and costs credibility the moment anyone notices the seam themselves.

Sources

  1. 1Spotify for Artists, Reviewed August 2026. Data in Spotify for Artists
  2. 2Google, Reviewed August 2026. Search Console API: Search Analytics query reference

Danny Starr

Co-founder, Backline

Danny Starr is a co-founder of Backline and builds the platform. He writes about the data engineering behind music analytics: ingestion, identity, honesty in charts, and the AI layer on top of it.

Backline does this for the projects you run

Streaming, audience, social, advertising, website, search, ticketing and press data in one dashboard per project, with an AI assistant that answers questions about your own connected data. Invite-only.

What Backline does
Ask Backline AI
Ask Backline AI
Backline

Ask anything about your project: suggestions, strategy, next steps.

Select a project to start chatting

Enter to send · Shift+Enter for new line

Backline

Booting up your Backline session…