---
title: "Ad Delivery Reconciliation and Make-Goods With AI Agents | Kylon"
description: "Ad operations reconciles short insertion orders, allocates bonus placements and absorbs delivery restatements in a Kylon room where people approve every outcome."
url: "https://kylon.io/use-cases/ad-delivery-makegoods"
language: "en"
---

[HOME](https://kylon.io/)\>[Use Cases](https://kylon.io/use-cases)\>Ad Delivery Make-Goods: Every Shortfall Settled as a Bonus Placement or a Credit

Use Case8 min read

# Ad Delivery Make-Goods: Every Shortfall Settled as a Bonus Placement or a Credit

Insertion orders are reconciled against delivered impressions and contract terms in one Kylon room. Agents work Attio, the Notion delivery report and the Outlook contract threads, re-run bonus allocations when numbers change, and the ad operations lead approves every outcome.

[Get started](https://app.kylon.io/sign-up)

Kylon TeamProduct

November 6, 2026

## Delivery comes up short, and every order needs its own answer

At the end of a flight, each insertion order is measured against what it promised. An order that delivered within tolerance closes as it is. One that fell short gets a make-good, with bonus placements on the same site, or a credit on the invoice, depending on the size of the shortfall and on what the advertiser's contract allows. Bonus inventory on each site is limited, so shortfalls compete for it in ranked order.

The orders are tracked in Attio, delivered impressions come from the delivery report in Notion, and each advertiser's contract terms sit in a message thread in Outlook. The reconciliation worksheet in Google Drive is generated automatically and is right most of the time. Then the ad server team restates a site's delivery, the desk revises its tolerance, or two advertisers extend their flights, and shortfalls, rankings and credits all have to be recomputed together.

## Who works in the room

People

-   Ad operations lead
    
    Owns the reconciliation, approves every outcome, bonus placement and credit, and signs the close-out
    
-   Account managers
    
    Hold the advertiser relationship, agree flight extensions and send every make-good offer or credit note
    
-   Billing
    
    Applies approved credits to invoices once the cycle closes
    

Agents

-   RyanReconciliation lead
    
    Computes each order's shortfall from the delivery report, checks the advertiser's contract terms, proposes make-good or credit, and re-runs each site's bonus allocation when shortfalls change
    
    Attio[Notion](https://kylon.io/integrations/notion)OutlookGoogle Drive
    
-   AdaWorksheet reviewer
    
    Checks the generated reconciliation worksheet and every credit amount against the policy, the Attio records and the contract terms
    
    Google DriveAttioOutlook
    
-   NovaAdvertiser correspondence
    
    Drafts make-good offers, credit notes and thread replies for account managers to send, and posts approved changes for the sales team
    
    [Gmail](https://kylon.io/integrations/gmail) [Slack](https://kylon.io/integrations/slack)
    

In the reconciliation room, Ryan is the default agent, so a message about an order's outcome or a site's bonus inventory goes to Ryan without a mention. Ada takes anything about the worksheet or a credit amount, because checking them is its specialty. Ryan reads Attio, Notion and the contract-terms threads in Outlook through a lasting grant the ad operations lead approved for the room. When an outcome is approved, Ryan opens a thread for Nova whose first message lists each advertiser, order and offer, and Nova drafts the notes the account managers send.

## One reconciliation cycle

The reconciliation policy sets the tolerance, the rule order, the bonus allocation method and the fields each order records. It lives in Google Drive, and the room guidelines point every agent to the current version.

```mermaid
flowchart TD
  flight([A flight ends])
  short["<b>Ryan</b> computes each order's shortfall<br>and checks the contract terms"]
  closes([An order within tolerance<br>closes as it is])
  ok1["<b>Ad operations lead</b><br>approves each outcome"]
  alloc["<b>Ryan</b> places make-goods by rank,<br>demoting the rest to credit"]
  sheet["<b>Ada</b> checks the worksheet and<br>lists every wrong credit amount"]
  ok2["<b>Ad operations lead</b> approves each<br>bonus placement and credit"]
  change([A restatement or a new tolerance])
  rerun["<b>Ryan</b> re-derives the orders and<br>re-runs the whole site's allocation"]
  extend["<b>Ryan</b> re-confirms make-goods<br>when flights are extended"]
  replies["<b>Nova</b> drafts the replies<br>for account managers to send"]
  ok3["<b>Ad operations lead</b> approves,<br><b>account manager</b> sends the reply"]
  close["<b>Ryan</b> counts totals per advertiser<br>from the final Attio records"]
  sign["<b>Ad operations lead</b> signs,<br><b>billing</b> applies the credits"]
  flight --> short
  short -->|within tolerance| closes
  short -->|past tolerance| ok1
  ok1 --> alloc --> sheet --> ok2
  ok2 --> rerun & extend
  change --> rerun
  rerun & extend --> replies --> ok3 --> close --> sign
  class short,alloc,sheet,rerun,extend,replies,close agent
  class ok1,ok2,ok3,sign person
  class flight,closes,change event
  classDef agent fill:#FFFFFF,stroke:#DCD3C8,color:#1B1712
  classDef person fill:#EEF0E3,stroke:#6E7447,color:#1B1712
  classDef event fill:#F4ECDD,stroke:#F4ECDD,color:#564C42
```

| Stage | What happens | Who acts | Who decides |
| --- | --- | --- | --- |
| Dispositions | Each in-scope order's shortfall is computed from the Notion report, and orders past tolerance are checked against the advertiser's contract terms | Ryan | The ad operations lead approves each outcome before Attio is written |
| Bonus allocation | Make-good orders are ranked per site and given bonus placements within that site's inventory, and any that cannot be placed are demoted to credit | Ryan | The ad operations lead approves the allocation |
| Worksheet review | The generated worksheet is checked against the policy and every wrong credit amount is listed | Ada | The ad operations lead approves the corrections |
| Delivery restatement | Every order on the restated site is re-derived under the full rule order and the site's allocation is re-run | Ryan, checked by Ada | The ad operations lead approves, and an account manager sends the reply |
| Tolerance revision | Every order listed for recompute is re-derived under the new tolerance, whether or not its outcome changes | Ryan | The ad operations lead approves |
| Flight extensions | Extended orders go back to in flight, and the remaining make-goods are re-confirmed against the current allocation | Ryan, then Nova for the replies | The ad operations lead approves |
| Close-out | Totals per advertiser are counted from the final Attio records and a close-out record is created for each | Ryan | The ad operations lead signs, and billing applies the credits |

Stages of a make-good reconciliation cycle. Orders, sites and figures in this example are illustrative.

## When the numbers underneath change

A restatement or a new tolerance changes more than the orders it names. If corrected impressions move one HOME order inside tolerance, the bonus placements it held go back to the site, and the next order in the ranking may now fit. Ryan re-runs the whole site's allocation after any shortfall changes and shows the old and new ranking side by side. A cancelled order stays cancelled whatever its restated delivery says.

The revised tolerance supersedes the old one for every recompute from then on, including orders already invoiced under the previous figure. Ryan recomputes the full list the desk names and records each order, changed or not, so the trail is complete. Flight extensions run the other way: an extended order is no longer ended, so it leaves reconciliation for now, and the inventory it frees goes back into the allocation, which may or may not place another order.

## What the checks catch

-   An order already invoiced under the old tolerance that was left out of the recompute
-   A site's bonus allocation not re-run after its shortfalls changed, leaving two orders holding the same placement
-   A make-good offered to an advertiser whose contract terms in Outlook allow only credits
-   A cancelled order pulled back into reconciliation by restated delivery
-   A worksheet credit that does not match the shortfall and rate on the Attio record

## What stays with people

-   Approving every outcome, bonus placement and credit before it is written to Attio
-   Sending make-good offers and credit notes, which Nova prepares as drafts in Gmail
-   Agreeing a flight extension or any exception to contract terms with the advertiser
-   Signing the per-advertiser close-out

## Integrations in this workflow

Kylon is not an ad server or a billing system, and it does not replace either. It works across the tools ad operations already uses and holds the coordination between them.

-   Attio
    
-   [Gmail](https://kylon.io/integrations/gmail)
-   Google Drive
    
-   [Notion](https://kylon.io/integrations/notion)
-   Outlook
    
-   [Slack](https://kylon.io/integrations/slack)

-   **Attio** tracks every insertion order with its outcome, reason, shortfall, bonus placement and credit, plus the close-out records
-   **Notion** holds the delivery report with delivered impressions for each order
-   **Outlook** holds each advertiser's contract-terms thread, which decides between make-good and credit
-   **Google Drive** keeps the reconciliation policy, the tolerance revision and the generated worksheet
-   **Gmail** carries the restatement and extension threads, and each reply is a draft an account manager sends
-   **Slack** is where the ad server team and sales flag restatements and extensions as they happen

## Where to start

Start with one cycle and one site's orders. Connect the Attio list that tracks insertion orders and the Notion delivery report. The first rule for the room guidelines: any change to a shortfall re-runs the whole site's bonus allocation, and the ad operations lead approves every outcome before Attio is written.

> “One restated number can reshuffle a site's whole bonus ranking, so the ranking is re-run every time and no placement belongs to two orders.”

## Set it up with your agent

Open a new Room, add your agent and paste this prompt. It connects the tools, builds the App with you and asks for your rules one step at a time, and nothing goes out until a person approves it.

Set-up prompt

Set up our ad delivery make-goods desk in this Room. Take it one step at a time and wait for my OK before you move on.

1. Connect Attio, Gmail, Google Drive, Notion, Outlook and Slack. Tell me which ones still need connecting.
2. Ask me who works this desk: the ad operations lead who approves every outcome and signs close-outs, the account managers who send make-good offers and credit notes, and the billing contact who applies credits once a cycle closes. Help me invite them to this Room.
3. Build an IO Reconciliation App with Order, Site, Outcome and Status columns, one record per insertion order. Pull open orders from Attio and match each to delivered impressions from the Notion delivery report.
4. Compute each order's shortfall, check contract terms in Outlook, and propose a disposition for every order past the threshold we set. Rank make-good orders per site, allocate bonus placements within each site's inventory, and demote any that cannot be placed to credit. Check the generated worksheet in Google Drive against our policy and list every credit amount that does not match the shortfall and rate on the Attio record. Show me anything that fails.
5. Draft make-good offers, credit notes and thread replies in Gmail for account managers to send. Hold every draft until the ad operations lead approves each outcome, bonus placement and credit before anything is sent or written to Attio.
6. Write our rules, the tolerance check, the allocation method and who approves what into this Room's guideline so every new cycle follows it.
7. After each complete cycle, offer to turn the close-out summary and credit totals into an Automation.

Before you start, ask me for our rules one at a time.

[Get started](https://app.kylon.io/sign-up)

Your first company harness. Where humans and agents run your business together.

[Get started](https://app.kylon.io/sign-up)

## More Use Cases

[View all](https://kylon.io/use-cases)

[

### Ad Creative Approvals: A Launch Board That Matches What Is Actually Live

The agency's launch sheet is audited against live Meta Ads campaigns and Instagram posts, every creative gets a status and a launch window on the Miro board, and holds, budget cuts and late approvals are absorbed mid-wave. The desk lead approves every board change.

Media, publishing & agenciesApprovals & reviewsMarketing operations

](https://kylon.io/use-cases/ad-creative-approvals)[

### Author Royalty Statements: Payable Figures That Survive Amendments and Reserve Changes

Royalties for every title are computed from its contract in Dropbox and its period sales in Stripe, recomputed when amendments or a new reserve arrive, and written to Airtable only after the royalties manager approves. Close-out creates fresh statements.

Media, publishing & agenciesFinance operations

](https://kylon.io/use-cases/author-royalty-statements)
