# Data refresh cadence

> How often each data source in Ordinary refreshes, and what that means for real-time reporting.

Source: https://help.tryordinary.com/reference/refresh-cadence

---

Ordinary is a mix of real-time (webhook-driven) and scheduled
(cron-driven) data. Here's what refreshes when.

## Real-time (seconds)

These fire via webhook or pixel. Latency from event to showing up
in Ordinary is typically **5-30 seconds**.

- **Orders** — Shopify `orders/create`, `orders/update`, `orders/delete`.
- **Customers** — Shopify `customers/create`, `customers/update`,
  `customers/delete`.
- **Products** — Shopify `products/create`, `products/update`.
- **Checkouts / carts** — Shopify `checkouts/create`, `checkouts/update`.
- **Pixel events** — page_viewed, product_viewed, collection_viewed,
  search_submitted, product_added_to_cart, product_removed_from_cart,
  cart_viewed, all checkout_* steps (started → contact → address →
  shipping → payment → completed), alert_displayed, ui_extension_errored.
  All first-party, no third-party tag manager in between. See
  [Customer Events pixel](https://help.tryordinary.com/integrations/customer-events-pixel).
- **Billing state changes** — Shopify `app_subscriptions/update`.

## Hourly

These are computed or synced on the hour.

- **Meta Ads — today's data** — pulled from Meta Graph API on the
  hour for in-day feedback.
- **Amazon Ads — today's data** — pulled hourly for the current day's
  spend and sales.
- **PostHog events** — hourly pull of the last 6 hours of events,
  deduplicated.
- **Shopify inventory levels** — hourly pull of inventory levels;
  webhook doesn't cover inventory-only changes.
- **Attribution rollups** — session-to-order attribution is
  recalculated hourly so reports stay fresh.
- **Shopify revenue reconciliation** — hourly check that Ordinary's
  revenue totals match Shopify's own Sales report to the cent. Drift
  is flagged immediately rather than discovered at month-end. See
  [Revenue matches Shopify exactly](https://help.tryordinary.com/features/reconciliation).

## Daily

These run once per day. Final daily numbers settle each morning (UTC),
after the upstream platforms close out the prior day.

- **Meta Ads — yesterday's final data** — settles each morning (Meta
  takes several hours past UTC midnight to close their reporting).
- **Amazon Ads — yesterday's final data** — settles each morning.
- **GA4 session data** — finalized each morning for the previous day.
- **Shopify GMV snapshot** — refreshed daily.
- **Customer totals reconciliation** — runs daily. Recomputes
  lifetime order count, total spent, and first/last order dates for
  all customers to catch any drift from the live-update path.
- **Creative thumbnail refresh** — daily (Starter+).

## Weekly

- **Cohort retention recalculation** — recalculates weekly.
- **Top-product trend analysis** — refreshes weekly.

## On-demand

- **Force resync last 24 hours** (Settings → Integrations → Shopify)
  — refetches recent orders from Shopify REST.
- **Refresh now** (any integration card) — rate-limited to once every
  15 minutes per store.

## First-sync backfills

On initial install or reconnection:

- **Shopify** — full order history (every order in your store's
  lifetime, not just recent), plus customers and products. Smaller
  stores finish in a few minutes; larger stores (10k-50k orders)
  take 10-25 minutes.
- **Meta Ads** — last 60 days of campaign, ad-set, and ad data.
- **Amazon Ads** — last 60 days of all ad types.
- **GA4** — last 90 days.
- **PostHog** — last 30 days.

All run in the background. Progress indicators on each integration
card.

## Related articles

- [Shopify — the base integration](https://help.tryordinary.com/integrations/shopify)
- [Connecting Meta Ads](https://help.tryordinary.com/integrations/meta)
- [Connecting Amazon SP-API](https://help.tryordinary.com/integrations/amazon)
