Every analytics product eventually shows a timestamp that says something like "Updated five minutes ago." It looks reassuring. It can also hide the most important detail: which data was updated five minutes ago?
A profit view combines sources that move at different speeds. Shopify orders may arrive within minutes. An ad platform may still be processing conversion data. A historical import may be running in the background.
Freshness is about the data, not the job#
Data freshness describes how current the information available to a report is. It is related to pipeline latency, but the two are not the same. A fast pipeline can still serve stale data if the source stopped updating, and a successful sync job does not prove that every source in a combined report is current.
This distinction is also made in Materialize's guide to data freshness: a generic last-updated value can be misleading when an output combines sources with different freshness.
A profit dashboard has more than one clock#
Consider a store with Shopify and Meta connected. Shopify supplies orders and refunds. Meta supplies spend and attributed conversions. Net profit needs both sides.
If Shopify synced two minutes ago but Meta last synced eighteen minutes ago, the combined profit view is not two minutes fresh. Its weakest input is eighteen minutes old. Showing the newer timestamp would describe one source while implying something about the entire report.
Pluto therefore bases the headline on the oldest successful timestamp among the connected sources. Each source still keeps its own row, status, and link to the relevant integration. The summary stays conservative, while the detail explains why.
Six freshness states#
A timestamp alone cannot explain what the pipeline is doing. Pluto's freshness model also represents whether a source is waiting for its first import, queued, actively syncing, delayed, or unable to complete.
That difference matters to the merchant. "Updated 40 minutes ago" during an active historical import is not the same situation as a connection that failed before importing anything. One asks for patience; the other asks for action.
- Live means recent Shopify data is arriving normally.
- Synced means a source completed successfully within its expected range.
- Pending means a source is connected but its first sync has not completed yet.
- Updating means a queued or running sync is actively changing the available data.
- Delayed means the last successful update is older than expected.
- Failed means the first import did not complete and the connection needs attention.
Thresholds are product decisions#
There is no universal number of minutes after which analytics data becomes stale. The right threshold depends on the source and the decision being made. Inventory may need a tighter expectation than a monthly finance report. Ad attribution can legitimately settle later than an order event.
Pluto currently treats a combined view as live when Shopify is current and the oldest connected source is less than fifteen minutes old. A source is marked delayed after one hour without a successful update. These are Pluto's operating thresholds, not industry standards. We can change them as source behavior and merchant expectations become clearer.
The broader rule is more durable: thresholds should follow the business use case rather than the fastest schedule the infrastructure can run. Metaplane's overview of data freshness explains why teams should set freshness expectations by use case rather than apply one global threshold.
Fresh does not mean final#
Freshness answers whether the pipeline has imported recent source data. It does not promise that an upstream platform will never revise that data. Meta conversion reporting, for example, can change after the first pull as attribution and processing settle.
Pluto handles that separately by re-fetching recent reporting windows and replacing older versions. The freshness indicator tells you when the source was last read. The reconciliation process keeps previously read dates aligned with later upstream revisions. Both are necessary for a trustworthy report.
Trust comes from showing uncertainty#
The easiest freshness indicator to build is the most optimistic one. The useful indicator is the one that helps someone decide whether the number in front of them is ready to act on.
That is why Pluto exposes the oldest source, active work, and failed imports instead of compressing everything into a green dot. A merchant should not have to inspect logs to understand whether today's profit includes today's orders and ad spend.
Questions or sharp takes: join Discord or email hello@plutoprofit.com.
