--- title: "Event ROI Daily Snapshots" slug: "event-roi-daily-snapshots" updated: 2026-07-23T20:57:42Z published: 2026-07-23T20:57:42Z canonical: "docs.blackthorn.io/event-roi-daily-snapshots" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.blackthorn.io/llms.txt > Use this file to discover all available pages before exploring further. # Event ROI Daily Snapshots ## About Blackthorn Events captures a **daily snapshot** of each event's registration, attendance, and revenue/ROI metrics. Each snapshot records where an event stood as of a given day, and the snapshots accumulate into a day-by-day history. This history is what powers the **trend charts and ROI dashboards** in the Events Reporting suite (for example, the Planning ROI Dashboard). Metrics like registrations over time, revenue and fees to date, budget vs. actuals, and campaign-influenced pipeline are read from these daily records rather than calculated live. Dashboards fill in over time Because snapshots accumulate one day at a time, dashboards and reports that rely on them **start empty and populate as snapshots are captured each day.** A brand-new org (or a newly enabled event) will not show trend history until snapshots have run — or until an administrator runs a backfill (see **Historical data** below). This is expected; the data builds up going forward. ## What each snapshot captures One snapshot record is created **per event, per day.** Each record stores: **Daily activity (for that day)** - New registrations - Payment failures **Running totals (as of that day)** - Registrations, check-ins, no-shows, and waitlisted counts - Gross revenue, net revenue, fees collected, discounts, refunds, and taxes - Budget and expenses - Average order value - Campaign-influenced pipeline, influenced revenue, and opportunities influenced **Derived metrics** - Capacity and capacity utilization % - Budget-vs-fees delta Where the numbers come from: revenue and fees are based on **captured Blackthorn Payments transactions** for the event (or, if the org does not use transactions, on posted/paid invoices). The campaign-influence metrics (pipeline, influenced revenue, opportunities influenced) require the event to have a **Campaign** and use Salesforce **Campaign Influence**. ## How often it runs Snapshots are generated **once per day** by a scheduled Apex job (set to run at 2:00 AM). The job is scheduled automatically when Blackthorn Events is set up — specifically when an administrator completes the Events authorization/connection. No manual scheduling is required; you can confirm the job is active under **Setup → Scheduled Jobs** (see the admin note below). ## Historical data (backfill) The daily job only captures data going **forward**, so an event's history from before snapshots started running is not present by default. A **backfill** can populate prior dates: - By default it covers the **trailing 90 days** (through yesterday); a custom date range can also be specified (the end date is capped at today). - It is **safe to re-run** — each event/day record is matched on a unique key and updated in place rather than duplicated. - It follows the same rules as the daily job: it does nothing if reporting is disabled, and it only processes snapshot-eligible events. The backfill is **run manually** (executed as an Apex batch by an administrator or by Blackthorn). In the current release there is no self-serve button or automatic trigger for it. For Salesforce administrators - **Storage object:** `Event_Daily_Snapshot__c` — one record per event per day. `Event_Snapshot_Key__c` (a unique External ID in the format `<EventId>:<YYYY-MM-DD>`) is the upsert key that keeps writes idempotent. - **Scheduled job:** runs daily at 2:00 AM under the name **"Blackthorn | Events ROI Daily Snapshot"** (cron `0 0 2 ? * *`). It is scheduled when an admin completes the Events authorization/connection — **not** by the package install itself. Confirm/monitor it under **Setup → Scheduled Jobs**; if it is missing, re-run the Events setup/authorization to reschedule it. - **Which events are included:** all events are eligible **by default**. To exclude a specific event, set the Event Settings field **`Enable_ROI_Snapshots__c`** to false. Events that are part of a **recurring series are excluded** automatically. - **Data dependencies:** revenue/fee metrics require Blackthorn Payments transactions (or posted/paid invoices); campaign-influence metrics require the event's Campaign and Salesforce Campaign Influence. `Budget_To_Date__c` and `Expense_To_Date__c` are copied from the event's `Total_Budget__c` / `Total_Expenses__c` at snapshot time. - **Backfill:** `RoiSnapshotBackfill` batch — default window `today − 90` through yesterday (custom range supported; end capped at today), idempotent upsert on `Event_Snapshot_Key__c`. Run manually via Apex; there is no scheduled or self-serve trigger. Its event query only includes events created within ~30 days before the backfill start date, so events created well before the window may not be picked up. - **Fields not yet populated:** the object defines `AR_Outstanding_To_Date__c` and `Sessions_At_Risk__c`, but the current release does **not** populate them — expect these to be blank. - **Turning it off:** **Blackthorn Events Settings → Disable Reporting Apex** (`Disable_Reporting_Apex__c`) disables **all** Events reporting automation, including the daily snapshot job and the backfill.