The buyer taking over at 2 p.m. opens the latest report and sees two warnings: spending is ahead of plan, and one campaign's CPA is above target. Without the earlier reports, it is difficult to tell whether these are new problems, known issues, or numbers that have changed as purchases arrived.
That uncertainty is what a useful BFCM hourly report should remove. It gives the team a consistent account summary, shows what changed since the previous check, and carries unresolved issues into the next shift with their evidence and owners attached.
For 2026, the Thanksgiving-to-Cyber-Monday period runs November 26–30, with Black Friday on November 27.
The template below is designed for teams monitoring active ecommerce campaigns across that window. It can be used in a reporting document, a spreadsheet, or a connected analysis workflow, provided the underlying data supports the required frequency.
Key takeaways
- Use the same report structure at every check: scope and freshness, spending position, purchase performance, exceptions, and next actions.
- Keep the last-hour delivery view separate from the longer window used to evaluate purchase efficiency.
- Retain previous snapshots so later conversions can revise a result without erasing what the buyer knew earlier.
- Give each open exception an owner and next review time, and carry it into the next report until resolved.
- Automate recurring report preparation, then verify the source refresh, delivery route, and failure handling before relying on it during BFCM.
Establish the references the report will use
An hourly report should read from an approved plan rather than create a new one at each refresh. Before building it, confirm the campaign scope, reporting currency, account time zone, daily and event authorization, expected spending checkpoints, purchase definitions, and approved CPA or return targets.
Keep the account identifiers alongside names so renamed or duplicated campaigns do not confuse the comparison. Record which version of the spending plan is current and who can approve a revision. When an allocation changes, update the reference so the next report compares delivery with the revised authorization.
Use the BFCM budget pacing playbook to establish the spending curve and reserve rules. Where channel allocations are still being decided, the cross-channel BFCM budgeting guide covers that decision separately.
The hourly report then has a clear job: show what happened against those references and identify what requires attention.
Build the report in five blocks
The report needs enough detail for a buyer to make an informed next step without opening every advertising account. Keep the account summary brief and expand the campaigns with exceptions or material changes.
1. Scope and data freshness
Identify the report's account, campaigns, currency, time zone, run time, latest successful retrieval, and reporting periods. Where available, include the source's latest data timestamp or processing status. If that information is unavailable, state the limit rather than implying that a successful fetch proves all activity has arrived.
This distinction matters because reporting metrics update at different rates. Google's data-freshness guidance describes an hourly freshness objective for most cost, click, and impression data, with possible delays. Conversion freshness varies by conversion type and attribution model, and other metrics can update less frequently.
Use a reporting status such as available, provisional, or unavailable for the relevant block. Keep this separate from the campaign's action status: a campaign can be delivering normally while its reporting is incomplete.
2. Spending position
Show day-to-date spend, event-to-date spend, the approved checkpoint, absolute and percentage variance, and the remaining authorization based on currently reported spend. Label that remainder as provisional when reporting delay could conceal additional delivery.
For example, $5,200 reported against a $4,000 noon checkpoint is $1,200, or 30%, ahead. That observation belongs in the report even if purchase performance remains acceptable. Whether to release more money or adjust later allocations remains a separate approval decision.
If using cumulative snapshots to estimate spending since the previous check, label it change in reported spend since the last run. Record the actual interval and remember that earlier costs can be revised. A negative change, missed run, or midnight reset needs reconciliation before it becomes a delivery conclusion.
3. Purchase performance
Show purchase count, purchase value, CPA, and ROAS against their approved targets, with the source, attribution basis, and evaluation window visible. Keep the newest period explicitly provisional when appropriate.
An hourly run does not require a one-hour CPA. A lower-volume campaign may need a longer evaluation window even though its spending is reviewed frequently. Use the account's conversion behavior, including Google's conversion lag reporting where relevant, to choose a defensible window and reassess it during the sale.
Retain a separate store-level view if available, but do not silently substitute transaction-time store purchases into an interaction-date platform CPA. The two views can support different questions. The PPC reporting automation guide covers the broader measurement definitions and reconciliation work.
4. Exceptions and changes since the previous run
List new exceptions first, followed by continuing issues and resolved items. Include the account or campaign, observed result, comparison, evidence status, and any relevant change available to the workflow, such as a budget edit or destination update.
Use a persistent issue reference so the same concern does not appear as a new incident every hour. Record whether it is new, acknowledged, under investigation, awaiting a recheck, or resolved. A worsening issue should remain eligible for escalation even when routine duplicate messages are suppressed.
5. Actions, ownership, and next check
End with the owner, agreed response, action status, next review time, and unresolved dependencies. Distinguish a proposed action from an approved action and a verified execution; a recommendation to reduce a budget does not establish that delivery changed.
If no material exception is found in the available data, report that outcome along with any missing inputs. A failed reporting run must not produce the same quiet result as a healthy account.
Copy this BFCM hourly reporting template
Use one copy per account or clearly defined reporting scope. The fields below are the report's operating structure, not native fields guaranteed to exist in every platform or integration.
BFCM hourly report: [account / campaign scope]
Report identity: [run ID], [generated time], [time zone], [currency].
Data status: [latest successful retrieval], [source coverage if known], [missing or provisional inputs].
Plan reference: [approved version], [current daily authorization], [event authorization].
Spending position
Day-to-date: [actual] against [checkpoint]. Variance: [amount] / [percentage].
Event-to-date: [reported spend]. Remaining authorization: [amount, subject to stated data limitations].
Change in reported spend since previous run: [amount] over [actual interval].
Purchase performance
Evaluation window: [start–end], [date basis / attribution settings].
Purchases: [count]. Purchase value: [value and definition].
CPA: [result] against [target]. ROAS: [result] against [target, if used].
Evidence status: [provisional / eligible for review under the account's defined criteria].
Exceptions
[Issue reference]: [campaign], [new / continuing / resolved], [observed result], [reason for attention], [missing evidence].
Response and handover
Owner: [role or person]. Action: [proposed / approved / executed / verified].
Next check: [time and purpose]. Escalation: [backup owner or dependency].
Changes since previous report: [setting, approval, time, verification].
Keep the headline report focused on decisions. Store detailed campaign results and source evidence with it so a buyer can investigate without copying every available metric into the summary.
Read two successive reports without inventing a performance change
Consider a hypothetical account with a $10,000 Friday authorization and a $35 CPA target for the campaign being examined. At noon, the approved account checkpoint is $4,000.
The 12:05 report shows $5,200 in day-to-date account spend, so the account is $1,200 ahead. Within it, Campaign A's fixed 06:00–10:00 evaluation window shows $900 and 18 purchases: a reported $50 CPA. Its recent conversion data is still provisional.
The report opens two distinct issues: a spending review for the account and a provisional purchase-performance observation for Campaign A. The buyer checks the campaign's measurement and buying journey, records the pending conversion reassessment, and reviews spending exposure without treating the provisional CPA as a proven efficiency failure.
At 13:05, account spend is $6,400 against the revised hour's original-plan checkpoint of $5,500. It is now $900, approximately 16.4%, ahead. The change in reported day-to-date spend is $1,200 over the hour between snapshots, subject to possible cost revisions.
For Campaign A's same 06:00–10:00 window, spend remains $900 but reported purchases have risen to 30. CPA is now $30. The report should say that the earlier window was revised as purchases arrived, rather than claiming the latest hour suddenly became more efficient.
The buyer can close the above-target CPA observation for that fixed window while retaining its history and continuing the normal review. The account's pacing issue remains open because its separate spending variance has not disappeared. Good conversion results do not automatically authorize more money.
This example is why every report needs both its evaluation window and its snapshot time. Without them, a handover can mistake reporting changes for new delivery outcomes.
Turn the exception into a message someone can act on
The full report is the reference; a notification should carry the specific issue and enough context to route it. Link back to the run or conversation containing its evidence.
Fast spending with acceptable reported purchase performance
Spending review required: Account A
Run: November 27, 13:05, account time zone. Latest retrieval succeeded; recent figures remain subject to platform updates.
Reported spend: $6,400 against $5,500 planned, $900 / 16.4% ahead. Daily authorization: $10,000.
Campaign A's 06:00–10:00 CPA has revised to $30 against $35; that does not change spending authority.
Owner: covering media buyer. Review remaining exposure and obtain approval for any plan revision. No campaign change executed by this report.
The message gives the buyer the observation and decision needed without reproducing the pacing strategy. Use the existing ad-spend anomaly guide for deeper detection and threshold design.
A CPA exception that meets the account's review criteria
Purchase-efficiency review: Campaign B
Evaluation window: [fixed period and attribution basis].
Spend: $1,800. Purchases: 40. CPA: $45 against $35, approximately 28.6% above target.
The window meets the team's configured evidence requirements; conversion completeness and recent changes need review.
Owner: assigned buyer. Next check: [time]. Supporting report: [run reference].
Define those evidence requirements before the sale and keep them attached to the reporting configuration. They are account-specific operating criteria, not a guarantee of statistical certainty. A separate spend-without-purchases condition is necessary so a minimum-purchase gate does not conceal a zero-purchase case.
When purchases are zero, show CPA as undefined and report spend, period, and data status explicitly. Do not display a reassuring zero CPA or assume a purchase-event outage from the ratio alone.
A report that cannot assess the account
Reporting unavailable: Account C
Scheduled run: 14:05. Retrieval failed; last successful result: 12:05.
Current spending and CPA have not been assessed. Previous figures are retained with their timestamp.
Owner: reporting support. Backup buyer to check material exposure in the source account. Next update: [time].
This failure message should be operationally distinct from “no exceptions found.” Where budgets create material exposure, the backup process needs to work even when the reporting workflow itself is unavailable.
Use diagnosis to complete the report, then link to the action framework
After an exception is acknowledged, add the evidence that explains the response. Record whether data was incomplete, a setting changed, product mix shifted, or an operational issue was confirmed. Include uncertainties where the cause remains unresolved.
Traffic-cost and purchase-conversion metrics can help identify where to investigate, but the hourly report does not need to repeat the full optimization playbook. The real-time budget optimization guide covers the broader monitoring and response framework.
For each issue, finish with a clear status: awaiting further data, investigation assigned, approved change pending, execution verified, or resolved. Keeping that sequence visible prevents the next buyer from repeating an edit or assuming someone else already performed it.
Set up recurring report preparation in Prism
Pixis Prism supports conversational campaign analysis, while Scheduled Workflows run defined analysis prompts against a selected account and agent and produce conversations for review. Build the intended report in a conversation first, checking that the output uses the correct campaign scope, periods, definitions, and plan reference.
Once the analysis is reliable, create a workflow from the conversation or configure it from the Workflows page. Confirm the supported recurrence and notification path for your actual setup before relying on an hourly requirement. Automating report preparation reduces repeated manual checks; owners still review the exceptions and approve consequential decisions.
Use a reporting brief that preserves the distinctions
Prepare the BFCM report for the specified account and campaigns using the approved template and current plan reference. Show run time, retrieval status, and data coverage where available. Keep day-to-date spending separate from the purchase-evaluation window. Identify new, continuing, and resolved exceptions, describing revisions to earlier periods explicitly. Return supporting figures, missing evidence, owners, and next checks. Flag unavailable inputs rather than substituting zero. This workflow prepares the report and proposes investigations; it does not execute campaign changes.
Supply the approved plan, thresholds, issue history, and ownership through inputs supported by the implementation. Validate how the next run receives revisions and open issues; naming a field in a prompt does not establish a persistent issue-tracking integration.
Verify the refresh behind the schedule
A workflow can run regularly while its source remains unchanged. Prism's Campaign Portfolio synchronization documentation describes manual and scheduled daily synchronization, so a daily portfolio snapshot should not be assumed to support fresh hourly assessment.
Confirm what the selected analysis retrieves, which periods and breakdowns are available, and what additional supported reporting connection is needed if the requirement cannot be met by that source. Keep source coverage visible in the report rather than promising a freshness the implementation cannot verify.
Use Execution History to inspect runs and their resulting conversations, and test how missing or failed runs reach an owner. Producing a conversation and delivering an external notification are separate steps to verify.
Hand over the account without handing over uncertainty
At the end of a shift, the covering buyer should not need to read every hourly report. Provide the latest dependable summary and a short account of the open decisions.
BFCM handover: [account], [time and time zone]
Last successful report: [run reference]. Source limitations: [details].
Current plan: [version]. Reported event spend: [amount]. Remaining authority: [amount, with data caveats].
Open issues: [reference, owner, status, evidence, next check].
Changes made this shift: [setting, time, approval, execution verification].
Next scheduled event: [email, offer change, launch, or closing time].
Escalation contact: [primary and backup].
Include recent edits even when results look healthy, since the next buyer needs to know what is still being evaluated. Keep pending decisions explicit: a proposed reduction, an approved allocation, and a completed change are different states.
If an issue is resolved, retain the closure evidence and time. This allows the team to distinguish a recurring failure from an old alert that simply reappeared in a new report.
Rehearse the complete reporting cycle before Thanksgiving
Test the template using labeled historical or hypothetical records. Include late conversions that revise a fixed window, a fresh spend variance, a zero-purchase result, a missed run, a revised plan, and the account's midnight boundary.
Check that the report does not label a revised historical CPA as a new hourly improvement, add overlapping windows together, or treat failed retrieval as healthy delivery. Confirm that acknowledged issues carry forward with their owner and that material deterioration remains visible.
Then test the handoff from report to notification to buyer acknowledgment. Verify that the recipient can open the evidence and knows where to record the response. This rehearsal should establish whether another person can use the report without reconstructing its assumptions.
After BFCM, review which reports led to decisions, which exceptions were missed, and which messages created unnecessary work. Preserve the useful fields and examples so the next promotion starts with a tested reporting process.
Explore Pixis Prism to discuss the recurring campaign analysis and reporting workflow your team needs for BFCM.

