---
title: "Build an AI weekly report that flags exceptions"
description: "Design a weekly AI report with fixed calculations, checked source periods, exception rules, named reviewers, and receipts for incomplete or failed runs."
canonical: "https://scalewithsearch.com/articles/ai-weekly-report-exception-workflow"
---
## Site navigation

- [Scale With Search](https://scalewithsearch.com/)
- Services
  - Services
    - [AI systems](https://scalewithsearch.com/ai-systems)
    - [Site build](https://scalewithsearch.com/work#site-build)
    - [Whole website fix](https://scalewithsearch.com/work#whole-website-fix)
    - [Content library with SEO](https://scalewithsearch.com/work#content-library)
    - [Working session](https://scalewithsearch.com/audit)
  - Start here
    - [Send your brief](https://scalewithsearch.com/work#send-your-brief)
    - [Example scope](https://scalewithsearch.com/work#review-the-example-scope)
  - [Prices and terms](https://scalewithsearch.com/work#prices-and-terms)
- Industries
  - Real estate
    - [Real estate agents and teams](https://scalewithsearch.com/for/real-estate)
    - [Platforms, ownership, and IDX](https://scalewithsearch.com/for/real-estate/real-estate-website-platforms-ownership-idx)
    - [Search, content, and AI](https://scalewithsearch.com/for/real-estate/real-estate-search-content-ai)
    - [Inquiries, campaigns, and handoffs](https://scalewithsearch.com/for/real-estate/real-estate-website-inquiries-campaigns-handoffs)
    - [Buyer, seller, and local pages](https://scalewithsearch.com/for/real-estate/real-estate-buyer-seller-local-resources)
    - [Rules, privacy, and trust](https://scalewithsearch.com/for/real-estate/real-estate-website-rules-privacy-trust)
  - Browse by business
    - [Trades and home services](https://scalewithsearch.com/for/#group-trades)
    - [Health, wellness, and animal care](https://scalewithsearch.com/for/#group-practices)
    - [Law, finance, and IT](https://scalewithsearch.com/for/#group-professional)
    - [Marketing and SEO agencies](https://scalewithsearch.com/for/#group-agencies)
    - [Shops and manufacturers](https://scalewithsearch.com/for/#group-manufacturing)
    - [Restaurants, shops, studios, and nonprofits](https://scalewithsearch.com/for/#group-local-services)
  - Chiropractic practices
    - [Chiropractic and wellness practices](https://scalewithsearch.com/for/chiropractic-and-wellness-practices)
    - [Chiropractic and physical therapy clinics](https://scalewithsearch.com/for/chiropractic-and-physical-therapy-clinics)
  - [All industries](https://scalewithsearch.com/for/)
- Resources
  - Free tools
    - [AI readiness check](https://scalewithsearch.com/check)
    - [Free tools](https://scalewithsearch.com/tools/)
    - [Free Starter Kit](https://scalewithsearch.com/kit/business-memory-starter-kit.zip)
  - Guides
    - [AI-native library](https://scalewithsearch.com/ai-native)
    - [Industry intelligence](https://scalewithsearch.com/intelligence)
    - [Office job guides](https://scalewithsearch.com/guides/)
    - [Business memory](https://scalewithsearch.com/articles/business-memory-for-ai-agents-guide)
    - [Agent governance](https://scalewithsearch.com/articles/ai-agent-governance-guide-small-business)
    - [Migration and ownership](https://scalewithsearch.com/articles/leaving-vendor-ai-memory-guide)
  - Articles
    - [All articles](https://scalewithsearch.com/articles/)
    - [What changed](https://scalewithsearch.com/changes/)
- About
  - Evidence
    - [Proof](https://scalewithsearch.com/proof)
  - Scale With Search
    - [About](https://scalewithsearch.com/about)
    - [How it works](https://scalewithsearch.com/how-it-works)

# How do you build an AI weekly report that flags exceptions?

Build the report from defined source records, calculate the numbers with fixed rules, and use AI to draft the explanation. Place missing information and rule violations in a separate exception list. Have a person check the report before distribution.

The function should return a reviewable package: verified totals, a source status table, explanatory notes, exceptions, and a run receipt. A scheduled start alone does not define a finished report.

The design below uses a hypothetical service business tracking completed work and open jobs. It is a specification example. It makes no claim about results from an existing installation.

## Write the decisions the report should support

Name the reader and the decisions they need to make. For this example, the operations manager needs to identify overdue work, unresolved customer questions, and records requiring correction.

Choose measures that serve those decisions. Define completed work, open work, and overdue work in business terms. State whether canceled jobs remain in the report and how reopened jobs are treated.

Assign an owner to each definition. Keep those definitions in the business record, separate from the model instructions used to phrase the summary.

Before building, remove sections nobody uses. If a section has no reader or decision, leave it out of the first version. A narrower report gives the team a clearer acceptance task.

## Fix the period and source boundaries

State the reporting window with dates, times, and a time zone. Define which timestamp assigns a job to the week: creation, completion, or another approved field.

List each source and its required freshness. For a job register, record the export time and last update information available. If the source cannot demonstrate freshness, say so in the source status table.

Give the reporting function read access to the required records. Do not include permission to repair job statuses unless that is a separately scoped function with its own approval controls.

Use the [context manifest guide](/articles/ai-context-manifest-template) to identify the sources and rules the job must read. Require a blocked result when an essential input cannot be loaded.

## Calculate before writing the explanation

Have ordinary code select the period, apply the documented definitions, and calculate the totals. Keep the calculation output available to the reviewer.

Require each reported total to identify its contributing records or a reproducible query. For comparisons, confirm both periods use the same definitions and compatible inputs. If a definition changed, label the break in comparison.

Pass the verified totals to the drafting step. Ask the model to describe what changed and which recorded notes relate to it. Do not ask it to supply missing numbers from context.

For the hypothetical business, the report might show open jobs at the start and end of the week. Define how newly opened, completed, canceled, and reopened jobs reconcile those figures.

## Define an exception before asking AI to find it

An exception is a record that meets a written condition or lacks something required. Specify each condition, its owner, and the expected next step.

Examples for this design include a job past its approved due date, a completed job without required evidence, and a record with conflicting status fields. These examples are rules to consider, not universal reporting requirements.

| Exception type | Detection rule | Reviewer decision |
|---|---|---|
| Overdue work | Approved due date passed; job remains open | Confirm priority and next owner |
| Missing evidence | Required completion reference absent | Request the missing record |
| Conflicting status | Approved sources disagree | Resolve the source conflict |
| Incomplete source | Required export unavailable | Decide whether to hold the report |

Keep a rule identifier beside each flag. The manager should be able to find why an item appeared without interpreting a model's private judgment.

## Separate known causes from open questions

The narrative should distinguish a recorded explanation from a possible question. If a job note states that an input is missing, the report can attribute that explanation to the note.

If the source contains no explanation for a change, say the cause is unconfirmed. Add a question for the responsible person. Do not turn a plausible account into the report's finding.

For example, a lower completion total does not establish why fewer jobs closed. The manager may need to check workload, job complexity, or missing updates. List the needed check without presenting any candidate as the answer.

Require source references for explanatory statements. Keep proposed actions labeled as proposals until the owner accepts them. The report should show what needs a decision rather than making that decision invisibly.

## Decide how incomplete reports behave

Write the policy before the first scheduled run. A missing essential source might block the whole report. A missing optional note might allow a partial draft with a visible warning.

Distinguish zero activity from an unreadable source. Use zero only after the relevant source was successfully inspected under the reporting rules. If a source failed, mark the affected measure unavailable.

Keep the previous report available, but do not silently reuse its numbers as current. If the owner needs historical context during an outage, label the date and source of that material.

Require an explicit result when no eligible records exist. The receipt should name the reporting period, sources inspected, and eligibility rules. The [no-work receipt guide](/articles/ai-agent-no-work-receipt) explains how to distinguish an empty workload from a broken run.

## Give the reviewer a defined check

The operations manager should verify the reporting window, source completeness, calculation totals, and exception list. They should inspect the linked records for material findings.

Ask the reviewer to accept the report, return it with corrections, or hold it for missing information. Record that decision against the exact version reviewed.

If distribution is part of the function, show the audience and final document before release. A report approved for an internal team should not acquire an external audience through a later default setting.

Use the [build acceptance list guide](/articles/what-a-build-acceptance-list-contains) to define evidence for the period selection, source checks, calculation, review, and distribution boundary.

## Test exceptions as carefully as totals

Create a small fictional dataset with known expected results. Include an ordinary open job, an overdue job, a missing completion reference, and a conflicting status.

Test the boundary between weeks. Add a late-arriving update and a reopened job. Write the expected totals and flags before running the function.

NIST's Measure guidance recommends testing whether a system functions as claimed, with defined performance limits and correction actions. Apply that principle to the report's calculations and flags. [NIST AI RMF Playbook: Measure, checked 2026.10.26](https://airc.nist.gov/airmf-resources/playbook/measure/)

Then test source failure and model failure. Both should leave an explicit outcome and alert the designated owner. A failed narrative step should not erase the verified calculation evidence.

## Control spend and repeated runs

Set a monthly AI spend limit and name the alert recipient. Bound retries and record why each repeat was attempted. Do not loop indefinitely when a source or model remains unavailable.

Give each weekly report a stable run identity. A rerun should create a traceable revision rather than an indistinguishable second report. Preserve the relationship between the original and replacement versions.

The receipt should record source versions, calculation version, model used, output location, review state, and cost. Mark estimates and pending usage clearly. State which charges the spend limit covers.

Keep the model replaceable through a defined interface. Rerun the same calculation and exception cases after a model change. Check behavior against the business rules rather than matching the previous wording.

## Hand over the whole reporting job

Train the future operator to find the current definitions, inspect exceptions, review a failed run, and apply an accepted correction. Include the alert route and stopping procedure in the runbook.

The [AI systems method](/ai-systems) builds one function on an owned record and trains the people who run it. For reporting, the handoff includes the definitions and checks as well as the recurring draft.

For a scoped reporting function, [send your brief](/work#send-your-brief). Include the current report, its intended decisions, available sources, and the exceptions you want surfaced for review.


## Related: Ownership and Migration

- [AI Context Manifest Template for One Recurring Business Job](/articles/ai-context-manifest-template)
- [No Work or Broken Run? Make the AI Agent Prove Which One](/articles/ai-agent-no-work-receipt)
- [What a Build Acceptance List Contains](/articles/what-a-build-acceptance-list-contains)

----

```text
                  .|########||.                                       .|########||.                                       .|########||.
               |##||.      .||##|.                                 |##||.      .||##|.                                 |##||.      .||##|.
             |#|.              .|#|.                             |#|.              .|#|.                             |#|.              .|#|.
           |#|                    |#|                          |#|                    |#|                          |#|                    |#|
         .#|                        |#.                      .#|                        |#.                      .#|                        |#.
        .#.                          .#|                    .#.                          .#|                    .#.                          .#|
       |#.                            .#|                  |#.                            .#|                  |#.                            .#|
      |#             ......             #|                |#             ......             #|                |#             ......             #|
     .#           ||#########|           #|              .#           ||#########|           #|              .#           ||#########|           #|
    .#.         |######||######|.        .#.            .#.         |######||######|.        .#.            .#.         |######||######|.        .#.
    #.        .##|###|##|#|######|        .#            #.        .##|###|##|#|######|        .#            #.        .##|###|##|#|######|        .#
   ||        |##|#||||||||||||#||#|        ||          ||        |##|#||||||||||||#||#|        ||          ||        |##|#||||||||||||#||#|        ||
   #        |#||||||||||||||||||||#|        #.         #        |#||||||||||||||||||||#|        #.         #        |#||||||||||||||||||||#|        #.
  ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||
  #       .#||||||||||||||||||||||||#|       #        #       .#||||||||||||||||||||||||#|       #        #       .#||||||||||||||||||||||||#|       #
 ||   ....|||#||||||##|#|||#|#||##||||....|. ||      ||   ....|||#||||||##|#|||#|#||##||||....|. ||      ||   ....|||#||||||##|#|||#|#||##||||....|. ||
 #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#      #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#      #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#
 #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.     #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.     #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.
.|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||    .|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||    .|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||
||   |....  #. ....|#.      |. ...|. ....||   ||    ||   |....  #. ....|#.      |. ...|. ....||   ||    ||   |....  #. ....|#.      |. ...|. ....||   ||
#.  .||||||##||||||##||####|||||||#||||||#|   .#    #.  .||||||##||||||##||####|||||||#||||||#|   .#    #.  .||||||##||||||##||####|||||||#||||||#|   .#
#    .||####|###########################|.     #    #    .||####|###########################|.     #    #    .||####|###########################|.     #
#      .#||||||.#.|| # |. ..# #| #|||||#|      #    #      .#||||||.#.|| # |. ..# #| #|||||#|      #    #      .#||||||.#.|| # |. ..# #| #|||||#|      #
#      .#|||||| ..  |# ## |#| ...#|#|||#|      #    #      .#|||||| ..  |# ## |#| ...#|#|||#|      #    #      .#|||||| ..  |# ## |#| ...#|#|||#|      #
#      .#|||#|# .# .#| #| ##|.#..#|||||#|      #    #      .#|||#|# .# .#| #| ##|.#..#|||||#|      #    #      .#|||#|# .# .#| #| ##|.#..#|||||#|      #
#      .#||||||############|######|||||#|      #    #      .#||||||############|######|||||#|      #    #      .#||||||############|######|||||#|      #
#   |...||#||||||#||||#|#||||||#|||||#||| |.|  #    #   |...||#||||||#||||#|#||||||#|||||#||| |.|  #    #   |...||#||||||#||||#|#||||||#|||||#||| |.|  #
#. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#    #. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#    #. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#
|| |  ...||  ...##| |  #| .|. |. #####  .. .| ||    || |  ...||  ...##| |  #| .|. |. #####  .. .| ||    || |  ...||  ...##| |  #| .|. |. #####  .. .| ||
|| ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||    || ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||    || ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||
.# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.    .# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.    .# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.
 #.|||||||#############################| ||| .#      #.|||||||#############################| ||| .#      #.|||||||#############################| ||| .#
 ||       ##||#||#||||||#||#||#||#||##.      ||      ||       ##||#||#||||||#||#||#||#||##.      ||      ||       ##||#||#||||||#||#||#||#||##.      ||
  #       .#|||||||||#||#|||||||||||#|       #        #       .#|||||||||#||#|||||||||||#|       #        #       .#|||||||||#||#|||||||||||#|       #
  ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||
  .#        |#||||||||||||||||||||#|        #.        .#        |#||||||||||||||||||||#|        #.        .#        |#||||||||||||||||||||#|        #.
   ||        |#||||||||||||||||||#|        ||          ||        |#||||||||||||||||||#|        ||          ||        |#||||||||||||||||||#|        ||
    #.        .######|#|#########|        .#            #.        .######|#|#########|        .#            #.        .######|#|#########|        .#
    .#.         |#####||||#####|         .#.            .#.         |#####||||#####|         .#.            .#.         |#####||||#####|         .#.
     |#           ||########||           #.              |#           ||########||           #.              |#           ||########||           #.
      |#             ......             #|                |#             ......             #|                |#             ......             #|
       |#.                            .#|                  |#.                            .#|                  |#.                            .#|
        |#.                          .#.                    |#.                          .#.                    |#.                          .#.
         .#|                        |#.                      .#|                        |#.                      .#|                        |#.
           |#|                    |#|                          |#|                    |#|                          |#|                    |#|
            .|#|.              .|#|.                            .|#|.              .|#|.                            .|#|.              .|#|.
               |##||.      .||##|                                  |##||.      .||##|                                  |##||.      .||##|
                 .||########||.                                      .||########||.                                      .||########||.

Scale With Search  2026  [scalewithsearch.com](https://scalewithsearch.com)
```
