PlaysbyMoat8
Back to the library
The workflow guideOperations

Refresh a recurring plan-versus-actual report

Turn a recurring business report into a scheduled workflow that refreshes the existing template and notifies its readers.

6 implementation stepsIntermediate

How this works

Turn a recurring business report into a scheduled workflow that refreshes the existing template and notifies its readers.

Refresh the existing report with a consistent metric definition and data cutoff. A successful scheduled run must establish both data freshness and delivery status; an old report with a new date is not a successful refresh.

Before you start

Defined operating scope

The team refreshes the same plan-versus-actual template at regular intervals.

Required source material

Obtain Approved metric definitions; BI data access; Report template and schedule. If connectors are unavailable, use authorized files with the same fields.

Decision and exception rules

One source has not refreshed for the period. Mark the affected metric stale and withhold a fully refreshed status.

Prepare the inputs

report_period
Required

Start, end and timezone

Match the business reporting calendar.

metric_definitions
Required

Name, formula and source

Use approved numerator, denominator and units.

data_snapshot
Required

BI values and freshness timestamps

Record missing and delayed sources explicitly.

template_destination
Required

Report version and audience

Confirm the authorized file and channel.

Implementation, step by step

  1. Establish the working record

    • Confirm the selected records, effective versions and responsible owner.
    • Check report_period, metric_definitions, data_snapshot, template_destination before beginning. Record the source version and the selected scope; an unavailable value stays unknown rather than becoming an inferred fact.

    Checkpoint: The input record identifies the selected report_period and any missing required fields.

  2. Retrieve the current metrics through an approved connector

    • Retrieve metrics with their source timestamps, checking whether all required partitions or periods are available.
    • Check every metric’s period and source freshness before interpreting variance.

    Checkpoint: A saved intermediate result for: Retrieve the current metrics through an approved connector.

  3. Insert results into the established document template

    • Populate the established template without replacing unavailable values with zero or retaining old values invisibly.
    • Reconcile totals and ensure the report date is not the sole evidence of current data.

    Checkpoint: A saved intermediate result for: Insert results into the established document template.

  4. Check totals and periods against the source

    • Recalculate totals and variances using deterministic arithmetic and compare the same period with the source.
    • Check every metric’s period and source freshness before interpreting variance.

    Checkpoint: A saved intermediate result for: Check totals and periods against the source.

  5. Post the completed report to the team channel

    • Prepare or post the report within the authorized workflow, saving the report version and delivery receipt separately.
    • Reconcile totals and ensure the report date is not the sole evidence of current data.

    Checkpoint: A saved intermediate result for: Post the completed report to the team channel.

  6. Package the result and unresolved work

    • Check freshness, permissions, time periods, missing values, and delivery failures.
    • Do not silently change metric definitions to make the report reconcile.

    Checkpoint: A dated recurring report with source-aligned metrics. Unresolved items remain visible in the review record.

Decisions along the way

One source has not refreshed for the period.

Mark the affected metric stale and withhold a fully refreshed status.

A denominator is zero or missing.

Use the approved not-applicable or unknown representation rather than a misleading rate.

Posting fails after the report is created.

Retry delivery of the same report version; do not regenerate and duplicate the period.

What you will produce

scheduled-plan-actual-report-result.json

JSON

A dated recurring report with source-aligned metrics. Label proposed and completed states separately.

Include: report_period · metric · plan · actual · variance · data_cutoff · freshness_status · delivery_receipt · status · evidence_reference · review_note

scheduled-plan-actual-report-review.md

Markdown

Keep the evidence and unresolved decisions needed to apply this result, including exceptions involving template_destination.

Include: source_reference · question · owner · next_action

Check the result

  • Check every metric’s period and source freshness before interpreting variance.
  • Reconcile totals and ensure the report date is not the sole evidence of current data.
  • Inspect report_period and metric_definitions in both the original and output; confirm that record identity and interpretation survived the transformation.
  • Check freshness, permissions, time periods, missing values, and delivery failures.

When something goes wrong

One source has not refreshed for the period.

Mark the affected metric stale and withhold a fully refreshed status. Retain the affected evidence and recovery status.

A denominator is zero or missing.

Use the approved not-applicable or unknown representation rather than a misleading rate. Retain the affected evidence and recovery status.

Posting fails after the report is created.

Retry delivery of the same report version; do not regenerate and duplicate the period. Retain the affected evidence and recovery status.

A worked example

SYNTHETIC EXAMPLE · NOT A REPORTED BUSINESS RESULT

Request

Refresh a recurring plan-versus-actual report for the following bounded example; prepare the result for review.

Inputs

Synthetic example: September plan is 100 units. Actual source returns 80 but its timestamp covers only through 27 September; other metrics cover the full month.

Expected result

Synthetic expected result: Report shows 80 as partial through 27 September, not final actual. A provisional difference of -20 is labeled incomplete; the run is not marked fully refreshed.

Run a small pilot

Start small

Trial a representative batch containing the ordinary case and the exception demonstrated above.

Record the baseline

Record current preparation time, review effort and correction types for the same records.

Agree success criteria

Agree acceptable review and error limits; measure time to a reconciled report; stale cells or failed refreshes per run.

Stop or revise

Posting fails after the report is created. Pause affected records and apply this recovery: Retry delivery of the same report version; do not regenerate and duplicate the period.

Keep the scope clear

  • Do not silently change metric definitions to make the report reconcile.
  • Publishing follows the approved audience; a prepared file does not prove successful delivery.

Check before using

Check freshness, permissions, time periods, missing values, and delivery failures.

Business activities

  • Review business performance

Editorially adapted workflow; not independently tested.

FROM A RECIPE TO YOUR WORKFLOW

Bring the company context together.

This workflow needs reliable inputs before it needs a better prompt. Moat8 Vault brings working information into a readable archive for the AI tools you use.

For this recipe: Approved metric definitions · BI data access · Report template and schedule

Start with one recurring task, agree which sources to use, and review the first result with your team.

Discuss this workflow

What does your team do?

Choose the recurring work you would like to improve.

A field guide, made for work.

Plays is a curated library of anonymized business workflows. Each recipe explains the inputs, steps, tools, and checks you can adapt to your team. These are editorial guides, not independently tested implementations.

When you share a company website, the guide may read a limited number of public pages on that website. Messages and retrieved page text are sent to our AI provider, NVIDIA, to recommend relevant workflows. Share a general description rather than confidential information.

Saved workflows and selected activities stay in this browser. Your chat history and selected company website are kept in this tab and cleared when you reload or start a new chat. The server does not store conversations. Live source monitoring is not enabled.

If you allow analytics, PostHog receives page views and actions such as workflow saves, skill downloads and link clicks. Random browser and session identifiers connect these actions without identifying you by name. Your choice and browser identifier expire after 90 days; sessions restart after 30 minutes of inactivity or 24 hours. We use local storage, not analytics cookies. Messages, company URLs, search text, full referrers and IP addresses are not sent. There are no person profiles or session recordings. You can decline or withdraw in Analytics settings; Do Not Track and Global Privacy Control keep analytics off.

Read the Plays Privacy Notice ↗