RevenueHogdocs
Get started

Data freshness

When every RevenueHog number updates: real-time notifications, the daily syncs, every scheduled job with its UTC time, and the lags that each store adds.

Some data arrives the moment it happens; some only exists once a store publishes a report. This page lists both, so you can tell a normal lag from a problem.

Real-time

DataArrives
App Store purchases, renewals, trials, cancellations, refundsSeconds after Apple sends the notification, once server notifications point at RevenueHog.
Google Play eventsWhen Pub/Sub pushes Play's real-time developer notification.
Stripe eventsInstantly with a webhook; otherwise at the next poll (see below).
App Review and TestFlight changesInstantly with an App Store Connect webhook; otherwise on the daily sync.

Scheduled jobs

All times are UTC.

ScheduleJobWhat it does
08:07 dailySyncRefreshes FX rates for the last 3 days, then re-pulls the last 7 days of App Store sales and subscription reports for every workspace with a key. Sends a silent refresh to open apps.
00:07, 04:07, 12:07, 16:07, 20:07DiscoverWalks each App Store Connect app list for new apps (the 08:07 sync also discovers).
08:20 dailyStripe syncAccount identity, catalog, three-day rollup re-sweep, subscription snapshot.
08:28 dailyGoogle Play syncCatalog, re-enrichment, voided purchases, subscription sweep, rollup, snapshot.
08:35 dailyAd spendRe-pulls the trailing 14 days of Apple Ads spend.
08:40 dailyStore metricsImpressions, product page views and downloads from Apple's Analytics Reports.
09:15 dailyReviewsMirrors new App Store reviews; Apple has no review webhook.
09:25 dailyCatalogRefreshes each app's in-app purchase catalog.
09:50 dailyFinanceChecks for newly posted monthly payout reports.
Every 4 hours at :22Stripe pollReads each Stripe account's event log.
:03 and :33 hourlyDigestSends daily digests to people whose digest hour has arrived in their time zone.
:44 hourlyForward reconcileRe-sends forwards that never went out or exhausted their retries.
Every 10 minutesAdServices resolveExchanges pending install attribution tokens with Apple.

The Google Play sync and ad spend run after the 08:07 sync so the day's FX rates exist before amounts are converted.

Store lags

DataTypical lagWhy
Sales reportsThrough yesterdayToday's report is incomplete, so syncs end the day before.
Subscription snapshots (MRR, subscribers)About 1 dayApple's subscription report is daily.
Store metrics and funnels2 to 3 daysApple publishes Analytics Reports once a day, 2 to 3 days behind.
PayoutsWeeksApple posts a fiscal period's finance report weeks after it closes, on no fixed date.
Apple Ads spendThrough yesterdayThe current day is skipped, as in Apple's dashboard; charges can restate for 10 days, which the 14-day re-pull absorbs.
Stripe feesUp to 3 daysFees settle late, so the daily sync re-sweeps three days.

Reading store freshness labels

Store screens end on the last day Apple delivered and say how far behind it is: "today", "1 day behind" or "N days behind", counted against your local calendar day. Up to 4 days behind is normal. More than 4 days is flagged stale and is worth a look (for example, a key that lost access).

Analytics are never backfilled

Apple generates analytics only after a report request exists and never fills in an unrequested window. RevenueHog requests reports for every app daily, so a new app starts collecting from the day it is first seen.

History depth

SourceHow far back
App Store salesUp to about 365 days at daily grain, pulled on demand.
App Store notifications180 days, via Import 180-day history on each app page. Apple keeps exactly 180 days.
StripeFull history, from a date, or none: your choice at connect time.
Google PlayRevenue starts the day you connect. Refunds from the last 30 days are imported.
Apple AdsBuilds forward from the first sync; spend since shows the earliest day stored.

Last updated on

On this page