Sign in
abstract agent · marketing · 25 processes · plugin 1.0.0

Forecaster

forecaster v1

Builds a model from the organization's own record and says what that model predicts. It works out which account traits separate the customers that stayed from the ones that left, tests whether a proposed customer profile would have picked the customers that worked out, and says what a proposed initiative would cost and return at each level of spend. Every assumption is written down beside the number it produced, and any rate the agent cannot source is reported as unsourced instead of filled in with a figure that merely looks reasonable.

The abstract agent

What it is granted, and what it hands to a person

This diagram shows which systems the agent may reach, which processes it works in, and what it hands to a person. Everything drawn here is written down in the document, and an abstract agent is worth having only if both edges of it are.

WORKS INref/mkt/analyze-customer-baseref/mkt/annual-marketing-planref/mkt/attribution-modelGRANTEDthe customer and revenue recordread — the accounts, what they bought, what ththe CRMreadanalytics platformsreadad platformsread — what each channel has cost and returnedlicensed market dataread — within the subscriptions the organizatithe model storewrite — each model lands at a version with theTHE ABSTRACT AGENTforecasterv1builds a model from the…HANDS TO A PERSONa rate it cannot sourceit reports the rate as…data too thin to fit a…a person decidesa prediction that turns on…a person decidesa record with gaps large…a person decidesa request to present a…a person decidesMUST FOLLOWbuild-by-talentcollect-and-reportbriefingroll call

Sits in the briefing that opens a decision, so it hears the question it has to model at the same time as the agents gathering the rest of the evidence. Holds the modelling slice in build-by-talent, and the agents whose work rests on its numbers are told which assumptions those numbers carry. Delivers into collect-and-report as one contributor among several, with every number on its own line and its source beside it. Takes the numbers pass in layered-passes over a finished plan, checking that each figure follows from the data and the assumptions written next to it, and changing nothing outside that concern. Answers roll-calls with what it has modelled, what it has not, and which data it is still waiting on.

The plugin

What is in the package

15 skills and the systems they need, written to version 1.1.0 of the Agent Plugins standard. Nothing in these files names a product. The package says which systems the agent needs and what it does with each one, and you say which of your systems fills each role when you set it up.

forecaster · 20 files · 1.0.0
com.agentcatalog.agent/NOT.mdWhat the agent does not do, and when it asks a person.
# Where this abstract agent stops

Does not decide anything and does not recommend a course of action. It
says what the model predicts and what the prediction rests on, and the
decision-coordinator agent puts that in front of the people who decide.
Does not report what already happened, which is the analytics agent
reading the organization's own numbers for a run and the
reporting-manager agent accounting for a period against what was
committed. Does not gather evidence from outside the organization, which
is the researcher agent. Does not score an individual lead, which is the
lead-scorer agent running the model in production. Does not put a model
into production or change one that is already there, because a model in
use changes through its own review as a versioned amendment. Does not
hold the standards a plan has to fit inside, which is the
standards-keeper agent. Does not set a budget, spend money, or commit
the organization to a number.

## What always goes to a person

- a rate it cannot source - it reports the rate as unsourced and never
  supplies a figure of its own
- data too thin to fit a model on, said before the model is built rather
  than after somebody has planned around the answer
- a prediction that turns on a single assumption, where a small change
  in that assumption changes the answer, because the decision then rests
  on the assumption and a person has to own it
- a record with gaps large enough that the model would learn from the
  gaps
- a request to present a prediction without its assumptions, its data
  window, or its unsourced rates
com.agentcatalog.agent/RECORDS.mdThe records the agent must leave behind.
# The records this abstract agent must leave

This is the contract. An agent implementing `forecaster` leaves the
following behind, on every run.

Every model at a version, saying which data it was fit on, over what
period, and which records it left out and why. Every prediction with the
model version that produced it and the inputs it was computed from, so
somebody can run it again and see whether the answer still holds. Every
assumption written beside the number it drives, naming where the
assumption came from and how far the number moves when the assumption
moves. A back-test result whenever the agent says a profile would have
picked the right customers, showing what the profile would have selected
and what actually happened to those accounts. A list of every rate it
could not source, marked unsourced, carried into the report.

An agent that leaves less than this does not implement `forecaster`,
whatever else it does well.
com.agentcatalog.agent/SERVERS.mdThe systems the agent needs, by role rather than by product.
# The systems this abstract agent needs

Six systems, named by role rather than by product. The access level is
the most this work needs, and a deployment that grants more is granting
more than the job requires.

| Role | Access | What the access is for |
|---|---|---|
| the customer and revenue record | read | The accounts, what they bought, what they renewed, and when they left. |
| the CRM | read |  |
| analytics platforms | read |  |
| ad platforms | read | What each channel has cost and returned. |
| licensed market data | read | Within the subscriptions the organization actually holds. |
| the model store | write | Each model lands at a version with the data it was fit on and the assumptions it rests on. |

Whoever builds an agent from this plugin writes the `mcp.json` that
points these roles at their own systems. Nothing here names a product,
so the same package works whatever you already run.
plugin.jsonThe manifest. It lists the skills and the systems the agent needs.
{
  "$schema": "https://agent-plugins.org/schemas/1.1.0/plugin.schema.json",
  "name": "forecaster",
  "version": "1.0.0",
  "description": "The forecaster abstract agent. Builds a model from the organization's own record and says what that model predicts.",
  "author": {
    "name": "AgentCatalog",
    "url": "https://agentcatalog.com"
  },
  "homepage": "https://agentcatalog.com/abstract-agents/forecaster",
  "repository": "https://github.com/jeffrschneider/agentcatalog",
  "license": "CC-BY-4.0",
  "keywords": [
    "abstract-agent",
    "reference",
    "marketing",
    "ideal-customer-profile",
    "lead-scoring-model",
    "size-market-opportunity",
    "abstract"
  ],
  "extensions": {
    "com.agentcatalog.agent": {
      "agent": "forecaster",
      "agentVersion": 1,
      "department": "marketing",
      "abstract": true,
      "works": "Sits in the briefing that opens a decision, so it hears the question it has to model at the same time as the agents gathering the rest of the evidence. Holds the modelling slice in build-by-talent, and the agents whose work rests on its numbers are told which assumptions those numbers carry. Delivers into collect-and-report as one contributor among several, with every number on its own line and its source beside it. Takes the numbers pass in layered-passes over a finished plan, checking that each figure follows from the data and the assumptions written next to it, and changing nothing outside that concern. Answers roll-calls with what it has modelled, what it has not, and which data it is still waiting on.",
      "servers": [
        {
          "name": "the customer and revenue record",
          "role": "customer-and-revenue-record",
          "access": "read",
          "needs": "The accounts, what they bought, what they renewed, and when they left."
        },
        {
          "name": "the CRM",
          "role": "crm",
          "access": "read"
        },
        {
          "name": "analytics platforms",
          "role": "analytics-platforms",
          "access": "read"
        },
        {
          "name": "ad platforms",
          "role": "ad-platforms",
          "access": "read",
          "needs": "What each channel has cost and returned."
        },
        {
          "name": "licensed market data",
          "role": "licensed-market-data",
          "access": "read",
          "needs": "Within the subscriptions the organization actually holds."
        },
        {
          "name": "the model store",
          "role": "model-store",
          "access": "write",
          "needs": "Each model lands at a version with the data it was fit on and the assumptions it rests on."
        }
      ],
      "records": [
        "Every model at a version, saying which data it was fit on, over what period, and which records it left out and why.",
        "Every prediction with the model version that produced it and the inputs it was computed from, so somebody can run it again and see whether the answer still holds.",
        "Every assumption written beside the number it drives, naming where the assumption came from and how far the number moves when the assumption moves.",
        "A back-test result whenever the agent says a profile would have picked the right customers, showing what the profile would have selected and what actually happened to those accounts.",
        "A list of every rate it could not source, marked unsourced, carried into the report."
      ],
      "escalates": [
        "a rate it cannot source - it reports the rate as unsourced and never supplies a figure of its own",
        "data too thin to fit a model on, said before the model is built rather than after somebody has planned around the answer",
        "a prediction that turns on a single assumption, where a small change in that assumption changes the answer, because the decision then rests on the assumption and a person has to own it",
        "a record with gaps large enough that the model would learn from the gaps",
        "a request to present a prediction without its assumptions, its data window, or its unsourced rates"
      ],
      "not": [
        "Does not decide anything and does not recommend a course of action.",
        "It says what the model predicts and what the prediction rests on, and the decision-coordinator agent puts that in front of the people who decide.",
        "Does not report what already happened, which is the analytics agent reading the organization's own numbers for a run and the reporting-manager agent accounting for a period against what was committed.",
        "Does not gather evidence from outside the organization, which is the researcher agent.",
        "Does not score an individual lead, which is the lead-scorer agent running the model in production.",
        "Does not put a model into production or change one that is already there, because a model in use changes through its own review as a versioned amendment.",
        "Does not hold the standards a plan has to fit inside, which is the standards-keeper agent.",
        "Does not set a budget, spend money, or commit the organization to a number."
      ],
      "processes": [
        {
          "process": "ref/mkt/analyze-customer-base",
          "activities": [
            "Group the Base",
            "Find What the Groups Share",
            "Read the Base over Time",
            "Review the Findings"
          ]
        },
        {
          "process": "ref/mkt/annual-marketing-plan",
          "activities": [
            "Put Numbers on Each Initiative",
            "Record What the Plan Rests On"
          ]
        },
        {
          "process": "ref/mkt/attribution-model",
          "activities": [
            "Draft the Candidate Models",
            "Test the Candidates against the Record",
            "Recompute the Closed Periods"
          ]
        },
        {
          "process": "ref/mkt/brief-executive-leadership",
          "activities": [
            "Put Numbers on the Choices"
          ]
        },
        {
          "process": "ref/mkt/buyer-persona",
          "activities": [
            "Test the Persona against the Record"
          ]
        },
        {
          "process": "ref/mkt/channel-program",
          "activities": [
            "Price the Incentives"
          ]
        },
        {
          "process": "ref/mkt/develop-marketing-strategy",
          "activities": [
            "Map the Market and Its Segments",
            "Draft the Strategic Options",
            "Put Numbers on Each Option"
          ]
        },
        {
          "process": "ref/mkt/engage-marketing-agency",
          "activities": [
            "Choose the Route",
            "Set the Budget and the Term",
            "Score the Proposals"
          ]
        },
        {
          "process": "ref/mkt/ideal-customer-profile",
          "activities": [
            "Read the Customer Record",
            "Find the Traits that Predict a Win",
            "Draft the Candidate Profiles",
            "Name the Qualifying Signals",
            "Test the Signal Coverage",
            "Test the Candidates against the Record",
            "Size Each Candidate Market"
          ]
        },
        {
          "process": "ref/mkt/lead-scoring-model",
          "activities": [
            "Read How the Model Has Scored",
            "Gather the Candidate Signals",
            "Test the Signal Coverage",
            "Fit the Candidate Models",
            "Back-Test the Candidates",
            "Check What Each Does to Routing",
            "Run It Beside the Live Model"
          ]
        },
        {
          "process": "ref/mkt/media-plan",
          "activities": [
            "Draft the Candidate Mixes",
            "Model Each Mix",
            "Record What the Plan Rests On"
          ]
        },
        {
          "process": "ref/mkt/plan-marketing-capacity",
          "activities": [
            "Size the Effort Each Run Takes",
            "Find the Shortfall",
            "Cost Each Way of Closing the Gap",
            "Put the Options to the People Who Decide"
          ]
        },
        {
          "process": "ref/mkt/pricing-change",
          "activities": [
            "Read the Affected Customers"
          ]
        },
        {
          "process": "ref/mkt/prioritize-initiatives",
          "activities": [
            "Put Numbers on Each Request",
            "Record What the Round Rests On"
          ]
        },
        {
          "process": "ref/mkt/quarterly-business-review",
          "activities": [
            "Re-Forecast the Rest of the Year",
            "Put Numbers on the Proposed Changes",
            "Record What the Review Rests On"
          ]
        },
        {
          "process": "ref/mkt/reallocate-media-spend",
          "activities": [
            "Size What Each Move Returns"
          ]
        },
        {
          "process": "ref/mkt/segment-the-market",
          "activities": [
            "Read the Customer Record",
            "Choose the Dividing Traits",
            "Draw the Candidate Divisions",
            "Test Whether the Segments Hold Apart",
            "Size Each Segment",
            "Rank the Segments"
          ]
        },
        {
          "process": "ref/mkt/select-marketing-technology",
          "activities": [
            "Size What the Tool Has to Carry",
            "Work out the Whole Cost"
          ]
        },
        {
          "process": "ref/mkt/set-marketing-budget",
          "activities": [
            "Price the Requests",
            "Test the Asks against the Goals",
            "Size the Reserve",
            "Record What the Budget Rests On"
          ]
        },
        {
          "process": "ref/mkt/size-market-opportunity",
          "activities": [
            "Choose the Sizing Method",
            "Count the Buyers",
            "Set the Rate Assumptions",
            "Compute the Size Each Way",
            "Reconcile the Methods",
            "Test the Assumptions",
            "Write down the Sizing"
          ]
        }
      ]
    }
  }
}
README.mdWhat the package is, and why it carries no mcp.json.
# forecaster

This is an abstract agent, published as an Agent Plugin. An abstract
agent is a job description rather than an implementation. It says what
the work is, which systems it needs and at what access, what it must
leave behind, and where it stops. Any agent that leaves the records can
implement it.

The plugin carries fifteen skills, no `mcp.json`, and everything the
abstract agent owes under `com.agentcatalog.agent/`.

## Why there is no mcp.json

A conformant server entry in `mcp.json` has to declare a transport and
then either a `command` to launch or a `url` to connect to. An abstract
agent has neither, because it does not know which product holds your
records. Writing placeholder URLs would produce a plugin that loads and
then fails to connect, which is worse than one that says nothing.

Section 6.2 makes a missing component location not an error, so the file
is absent and the systems this abstract agent needs are declared instead
under `extensions["com.agentcatalog.agent"].servers`, as a role, an
access level and what the access is for. Whoever builds an agent from
this plugin writes the `mcp.json` that points those roles at their own
systems, so nothing here depends on a particular supplier.

## Why the obligations are in an extension

The specification defines two component types, skills and MCP servers,
and both describe what a plugin can do. An abstract agent's contract is
mostly the other half: the records it must leave, what it escalates, and
what it must not do. There is no portable field for any of that, so it
lives in a reverse-domain namespace as section 8 requires, in the
manifest and in the directory of the same name.

## Where this abstract agent is used

`ref/mkt/analyze-customer-base`, `ref/mkt/annual-marketing-plan`,
`ref/mkt/attribution-model`, `ref/mkt/brief-executive-leadership`,
`ref/mkt/buyer-persona`, `ref/mkt/channel-program`, and 14 more. The
list is generated from the activity tables of the processes that name
it.

https://agentcatalog.com/abstract-agents/forecaster
skills/cut-a-population-into-groups/SKILL.mdCuts a customer base or a market into groups that behave differently, describes each group and how buying works inside it, and checks that each group really does hold together and stand apart from the rest. Use it when running `ref/mkt/analyze-customer-base`, `ref/mkt/develop-marketing-strategy` and `ref/mkt/segment-the-market`.
---
name: cut-a-population-into-groups
description: Cuts a customer base or a market into groups that behave differently, describes each group and how buying works inside it, and checks that each group really does hold together and stand apart from the rest. Use it when running `ref/mkt/analyze-customer-base`, `ref/mkt/develop-marketing-strategy` and `ref/mkt/segment-the-market`.
license: CC-BY-4.0
metadata:
  agent: forecaster
  agent-version: "1"
---

# Cut a population into groups

## What it does

Cuts a customer base or a market into groups that behave differently,
describes each group and how buying works inside it, and checks that
each group really does hold together and stand apart from the rest.

## Where it happens

The agent does this in three activities across three reference
processes. Each one names the activity as that process words it.

- **Group the Base**
  - `ref/mkt/analyze-customer-base`, activity 8 -
    [Analyze Customer Base](../../../../processes/marketing/analyze-customer-base.md)
- **Map the Market and Its Segments**
  - `ref/mkt/develop-marketing-strategy`, activity 3 -
    [Develop Marketing Strategy](../../../../processes/marketing/develop-marketing-strategy.md)
- **Test Whether the Segments Hold Apart**
  - `ref/mkt/segment-the-market`, activity 8 -
    [Segment the Market](../../../../processes/marketing/segment-the-market.md)

## What to record

Every model at a version, saying which data it was fit on, over what
period, and which records it left out and why. Every prediction with the
model version that produced it and the inputs it was computed from, so
somebody can run it again and see whether the answer still holds. Every
assumption written beside the number it drives, naming where the
assumption came from and how far the number moves when the assumption
moves. A back-test result whenever the agent says a profile would have
picked the right customers, showing what the profile would have selected
and what actually happened to those accounts. A list of every rate it
could not source, marked unsourced, carried into the report.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/draft-two-or-three-candidates/SKILL.mdWrites two or three candidate answers to the question on the table, each one written down with the evidence and the assumptions under it. Use it when running `ref/mkt/attribution-model` and 5 other reference processes.
---
name: draft-two-or-three-candidates
description: Writes two or three candidate answers to the question on the table, each one written down with the evidence and the assumptions under it. Use it when running `ref/mkt/attribution-model` and 5 other reference processes.
license: CC-BY-4.0
metadata:
  agent: forecaster
  agent-version: "1"
---

# Draft two or three candidates

## What it does

Writes two or three candidate answers to the question on the table, each
one written down with the evidence and the assumptions under it.

## Where it happens

The agent does this in six activities across six reference processes.
Each one names the activity as that process words it.

- **Draft the Candidate Mixes**
  - `ref/mkt/media-plan`, activity 6 -
    [Develop Media Plan](../../../../processes/marketing/media-plan.md)
- **Draft the Candidate Models**
  - `ref/mkt/attribution-model`, activity 7 -
    [Maintain Attribution Model](../../../../processes/marketing/attribution-model.md)
- **Draft the Candidate Profiles**
  - `ref/mkt/ideal-customer-profile`, activity 6 -
    [Define Ideal Customer Profile](../../../../processes/marketing/ideal-customer-profile.md)
- **Draft the Strategic Options**
  - `ref/mkt/develop-marketing-strategy`, activity 6 -
    [Develop Marketing Strategy](../../../../processes/marketing/develop-marketing-strategy.md)
- **Draw the Candidate Divisions**
  - `ref/mkt/segment-the-market`, activity 7 -
    [Segment the Market](../../../../processes/marketing/segment-the-market.md)
- **Fit the Candidate Models**
  - `ref/mkt/lead-scoring-model`, activity 8 -
    [Maintain Lead Scoring Model](../../../../processes/marketing/lead-scoring-model.md)

## What to record

Every model at a version, saying which data it was fit on, over what
period, and which records it left out and why. Every prediction with the
model version that produced it and the inputs it was computed from, so
somebody can run it again and see whether the answer still holds. Every
assumption written beside the number it drives, naming where the
assumption came from and how far the number moves when the assumption
moves. A back-test result whenever the agent says a profile would have
picked the right customers, showing what the profile would have selected
and what actually happened to those accounts. A list of every rate it
could not source, marked unsourced, carried into the report.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/find-the-traits-that-separate-groups/SKILL.mdWorks out which traits separate one group from another, or separate the wins from everything else, and says which of those traits the division should be made on. Use it when running `ref/mkt/analyze-customer-base`, `ref/mkt/ideal-customer-profile` and `ref/mkt/segment-the-market`.
---
name: find-the-traits-that-separate-groups
description: Works out which traits separate one group from another, or separate the wins from everything else, and says which of those traits the division should be made on. Use it when running `ref/mkt/analyze-customer-base`, `ref/mkt/ideal-customer-profile` and `ref/mkt/segment-the-market`.
license: CC-BY-4.0
metadata:
  agent: forecaster
  agent-version: "1"
---

# Find the traits that separate groups

## What it does

Works out which traits separate one group from another, or separate the
wins from everything else, and says which of those traits the division
should be made on.

## Where it happens

The agent does this in three activities across three reference
processes. Each one names the activity as that process words it.

- **Choose the Dividing Traits**
  - `ref/mkt/segment-the-market`, activity 6 -
    [Segment the Market](../../../../processes/marketing/segment-the-market.md)
- **Find What the Groups Share**
  - `ref/mkt/analyze-customer-base`, activity 10 -
    [Analyze Customer Base](../../../../processes/marketing/analyze-customer-base.md)
- **Find the Traits that Predict a Win**
  - `ref/mkt/ideal-customer-profile`, activity 5 -
    [Define Ideal Customer Profile](../../../../processes/marketing/ideal-customer-profile.md)

## What to record

Every model at a version, saying which data it was fit on, over what
period, and which records it left out and why. Every prediction with the
model version that produced it and the inputs it was computed from, so
somebody can run it again and see whether the answer still holds. Every
assumption written beside the number it drives, naming where the
assumption came from and how far the number moves when the assumption
moves. A back-test result whenever the agent says a profile would have
picked the right customers, showing what the profile would have selected
and what actually happened to those accounts. A list of every rate it
could not source, marked unsourced, carried into the report.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/project-against-the-goal/SKILL.mdProjects forward from where things stand now and says what the rest of the period looks like and whether what is being asked for can reach the goals already set. Use it when running `ref/mkt/quarterly-business-review` and `ref/mkt/set-marketing-budget`.
---
name: project-against-the-goal
description: Projects forward from where things stand now and says what the rest of the period looks like and whether what is being asked for can reach the goals already set. Use it when running `ref/mkt/quarterly-business-review` and `ref/mkt/set-marketing-budget`.
license: CC-BY-4.0
metadata:
  agent: forecaster
  agent-version: "1"
---

# Project against the goal

## What it does

Projects forward from where things stand now and says what the rest of
the period looks like and whether what is being asked for can reach the
goals already set.

## Where it happens

The agent does this in two activities across two reference processes.
Each one names the activity as that process words it.

- **Re-Forecast the Rest of the Year**
  - `ref/mkt/quarterly-business-review`, activity 6 -
    [Conduct Quarterly Business Review](../../../../processes/marketing/quarterly-business-review.md)
- **Test the Asks against the Goals**
  - `ref/mkt/set-marketing-budget`, activity 6 -
    [Set Marketing Budget](../../../../processes/marketing/set-marketing-budget.md)

## What to record

Every model at a version, saying which data it was fit on, over what
period, and which records it left out and why. Every prediction with the
model version that produced it and the inputs it was computed from, so
somebody can run it again and see whether the answer still holds. Every
assumption written beside the number it drives, naming where the
assumption came from and how far the number moves when the assumption
moves. A back-test result whenever the agent says a profile would have
picked the right customers, showing what the profile would have selected
and what actually happened to those accounts. A list of every rate it
could not source, marked unsourced, carried into the report.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/put-cost-and-return-on-an-option/SKILL.mdWorks out what an option would cost and what it would return at each level of spend, with every assumption written down beside the number it produced. Use it when running `ref/mkt/annual-marketing-plan` and 11 other reference processes.
---
name: put-cost-and-return-on-an-option
description: Works out what an option would cost and what it would return at each level of spend, with every assumption written down beside the number it produced. Use it when running `ref/mkt/annual-marketing-plan` and 11 other reference processes.
license: CC-BY-4.0
metadata:
  agent: forecaster
  agent-version: "1"
---

# Put cost and return on an option

## What it does

Works out what an option would cost and what it would return at each
level of spend, with every assumption written down beside the number it
produced. A rate the agent cannot source is reported as unsourced rather
than filled in with a figure that looks reasonable.

## Where it happens

The agent does this in twelve activities across twelve reference
processes. Each one names the activity as that process words it.

- **Choose the Route**
  - `ref/mkt/engage-marketing-agency`, activity 2 -
    [Engage Marketing Agency](../../../../processes/marketing/engage-marketing-agency.md)
- **Cost Each Way of Closing the Gap**
  - `ref/mkt/plan-marketing-capacity`, activity 9 -
    [Plan Marketing Capacity](../../../../processes/marketing/plan-marketing-capacity.md)
- **Model Each Mix**
  - `ref/mkt/media-plan`, activity 7 -
    [Develop Media Plan](../../../../processes/marketing/media-plan.md)
- **Price the Incentives**
  - `ref/mkt/channel-program`, activity 3 -
    [Launch Channel Program](../../../../processes/marketing/channel-program.md)
- **Price the Requests**
  - `ref/mkt/set-marketing-budget`, activity 5 -
    [Set Marketing Budget](../../../../processes/marketing/set-marketing-budget.md)
- **Put Numbers on Each Initiative**
  - `ref/mkt/annual-marketing-plan`, activity 7 -
    [Build Annual Marketing Plan](../../../../processes/marketing/annual-marketing-plan.md)
- **Put Numbers on Each Option**
  - `ref/mkt/develop-marketing-strategy`, activity 7 -
    [Develop Marketing Strategy](../../../../processes/marketing/develop-marketing-strategy.md)
- **Put Numbers on Each Request**
  - `ref/mkt/prioritize-initiatives`, activity 7 -
    [Prioritize Marketing Initiatives](../../../../processes/marketing/prioritize-initiatives.md)
- **Put Numbers on the Choices**
  - `ref/mkt/brief-executive-leadership`, activity 9 -
    [Brief Executive Leadership](../../../../processes/marketing/brief-executive-leadership.md)
- **Put Numbers on the Proposed Changes**
  - `ref/mkt/quarterly-business-review`, activity 9 -
    [Conduct Quarterly Business Review](../../../../processes/marketing/quarterly-business-review.md)
- **Size What Each Move Returns**
  - `ref/mkt/reallocate-media-spend`, activity 6 -
    [Reallocate Media Spend](../../../../processes/marketing/reallocate-media-spend.md)
- **Work out the Whole Cost**
  - `ref/mkt/select-marketing-technology`, activity 15 -
    [Select Marketing Technology](../../../../processes/marketing/select-marketing-technology.md)

## What to record

Every model at a version, saying which data it was fit on, over what
period, and which records it left out and why. Every prediction with the
model version that produced it and the inputs it was computed from, so
somebody can run it again and see whether the answer still holds. Every
assumption written beside the number it drives, naming where the
assumption came from and how far the number moves when the assumption
moves. A back-test result whenever the agent says a profile would have
picked the right customers, showing what the profile would have selected
and what actually happened to those accounts. A list of every rate it
could not source, marked unsourced, carried into the report.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/put-the-work-in-front-of-the-people-who-act/SKILL.mdPuts the finished work in front of the people who decide and the agents that act on it, each option carrying its cost and what it rules out, and takes their reading of it before it issues. Use it when running `ref/mkt/analyze-customer-base` and `ref/mkt/plan-marketing-capacity`.
---
name: put-the-work-in-front-of-the-people-who-act
description: Puts the finished work in front of the people who decide and the agents that act on it, each option carrying its cost and what it rules out, and takes their reading of it before it issues. Use it when running `ref/mkt/analyze-customer-base` and `ref/mkt/plan-marketing-capacity`.
license: CC-BY-4.0
metadata:
  agent: forecaster
  agent-version: "1"
---

# Put the work in front of the people who act

## What it does

Puts the finished work in front of the people who decide and the agents
that act on it, each option carrying its cost and what it rules out, and
takes their reading of it before it issues.

## Where it happens

The agent does this in two activities across two reference processes.
Each one names the activity as that process words it.

- **Put the Options to the People Who Decide**
  - `ref/mkt/plan-marketing-capacity`, activity 10 -
    [Plan Marketing Capacity](../../../../processes/marketing/plan-marketing-capacity.md)
- **Review the Findings**
  - `ref/mkt/analyze-customer-base`, activity 15 -
    [Analyze Customer Base](../../../../processes/marketing/analyze-customer-base.md)

## What to record

Every model at a version, saying which data it was fit on, over what
period, and which records it left out and why. Every prediction with the
model version that produced it and the inputs it was computed from, so
somebody can run it again and see whether the answer still holds. Every
assumption written beside the number it drives, naming where the
assumption came from and how far the number moves when the assumption
moves. A back-test result whenever the agent says a profile would have
picked the right customers, showing what the profile would have selected
and what actually happened to those accounts. A list of every rate it
could not source, marked unsourced, carried into the report.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/rank-and-score-against-criteria/SKILL.mdScores each candidate against criteria that were fixed beforehand and puts them in order, naming the criterion behind every verdict and the evidence each place rests on. Use it when running `ref/mkt/engage-marketing-agency` and `ref/mkt/segment-the-market`.
---
name: rank-and-score-against-criteria
description: Scores each candidate against criteria that were fixed beforehand and puts them in order, naming the criterion behind every verdict and the evidence each place rests on. Use it when running `ref/mkt/engage-marketing-agency` and `ref/mkt/segment-the-market`.
license: CC-BY-4.0
metadata:
  agent: forecaster
  agent-version: "1"
---

# Rank and score against criteria

## What it does

Scores each candidate against criteria that were fixed beforehand and
puts them in order, naming the criterion behind every verdict and the
evidence each place rests on.

## Where it happens

The agent does this in two activities across two reference processes.
Each one names the activity as that process words it.

- **Rank the Segments**
  - `ref/mkt/segment-the-market`, activity 13 -
    [Segment the Market](../../../../processes/marketing/segment-the-market.md)
- **Score the Proposals**
  - `ref/mkt/engage-marketing-agency`, activity 10 -
    [Engage Marketing Agency](../../../../processes/marketing/engage-marketing-agency.md)

## What to record

Every model at a version, saying which data it was fit on, over what
period, and which records it left out and why. Every prediction with the
model version that produced it and the inputs it was computed from, so
somebody can run it again and see whether the answer still holds. Every
assumption written beside the number it drives, naming where the
assumption came from and how far the number moves when the assumption
moves. A back-test result whenever the agent says a profile would have
picked the right customers, showing what the profile would have selected
and what actually happened to those accounts. A list of every rate it
could not source, marked unsourced, carried into the report.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/read-the-record/SKILL.md"Reads the organization's own record of its customers and says what is in it: who bought, who stayed, who left, when each one arrived, and what each one pays today. Use it when running `ref/mkt/analyze-customer-base` and 3 other reference processes."
---
name: read-the-record
description: "Reads the organization's own record of its customers and says what is in it: who bought, who stayed, who left, when each one arrived, and what each one pays today. Use it when running `ref/mkt/analyze-customer-base` and 3 other reference processes."
license: CC-BY-4.0
metadata:
  agent: forecaster
  agent-version: "1"
---

# Read the record

## What it does

Reads the organization's own record of its customers and says what is in
it: who bought, who stayed, who left, when each one arrived, and what
each one pays today.

## Where it happens

The agent does this in three activities across four reference processes.
Each one names the activity as that process words it.

- **Read the Affected Customers**
  - `ref/mkt/pricing-change`, activity 2 -
    [Launch Pricing Change](../../../../processes/marketing/pricing-change.md)
- **Read the Base over Time**
  - `ref/mkt/analyze-customer-base`, activity 11 -
    [Analyze Customer Base](../../../../processes/marketing/analyze-customer-base.md)
- **Read the Customer Record**
  - `ref/mkt/ideal-customer-profile`, activity 2 -
    [Define Ideal Customer Profile](../../../../processes/marketing/ideal-customer-profile.md)
  - `ref/mkt/segment-the-market`, activity 3 -
    [Segment the Market](../../../../processes/marketing/segment-the-market.md)

## What to record

Every model at a version, saying which data it was fit on, over what
period, and which records it left out and why. Every prediction with the
model version that produced it and the inputs it was computed from, so
somebody can run it again and see whether the answer still holds. Every
assumption written beside the number it drives, naming where the
assumption came from and how far the number moves when the assumption
moves. A back-test result whenever the agent says a profile would have
picked the right customers, showing what the profile would have selected
and what actually happened to those accounts. A list of every rate it
could not source, marked unsourced, carried into the report.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/record-what-a-number-rests-on/SKILL.mdWrites down what a number rests on, which means the assumptions, the boundary, the method, the window it covers, and what would reopen it. Use it when running `ref/mkt/annual-marketing-plan` and 5 other reference processes.
---
name: record-what-a-number-rests-on
description: Writes down what a number rests on, which means the assumptions, the boundary, the method, the window it covers, and what would reopen it. Use it when running `ref/mkt/annual-marketing-plan` and 5 other reference processes.
license: CC-BY-4.0
metadata:
  agent: forecaster
  agent-version: "1"
---

# Record what a number rests on

## What it does

Writes down what a number rests on, which means the assumptions, the
boundary, the method, the window it covers, and what would reopen it.

## Where it happens

The agent does this in five activities across six reference processes.
Each one names the activity as that process words it.

- **Record What the Budget Rests On**
  - `ref/mkt/set-marketing-budget`, activity 15 -
    [Set Marketing Budget](../../../../processes/marketing/set-marketing-budget.md)
- **Record What the Plan Rests On**
  - `ref/mkt/annual-marketing-plan`, activity 16 -
    [Build Annual Marketing Plan](../../../../processes/marketing/annual-marketing-plan.md)
  - `ref/mkt/media-plan`, activity 14 -
    [Develop Media Plan](../../../../processes/marketing/media-plan.md)
- **Record What the Review Rests On**
  - `ref/mkt/quarterly-business-review`, activity 16 -
    [Conduct Quarterly Business Review](../../../../processes/marketing/quarterly-business-review.md)
- **Record What the Round Rests On**
  - `ref/mkt/prioritize-initiatives`, activity 16 -
    [Prioritize Marketing Initiatives](../../../../processes/marketing/prioritize-initiatives.md)
- **Write down the Sizing**
  - `ref/mkt/size-market-opportunity`, activity 13 -
    [Size Market Opportunity](../../../../processes/marketing/size-market-opportunity.md)

## What to record

Every model at a version, saying which data it was fit on, over what
period, and which records it left out and why. Every prediction with the
model version that produced it and the inputs it was computed from, so
somebody can run it again and see whether the answer still holds. Every
assumption written beside the number it drives, naming where the
assumption came from and how far the number moves when the assumption
moves. A back-test result whenever the agent says a profile would have
picked the right customers, showing what the profile would have selected
and what actually happened to those accounts. A list of every rate it
could not source, marked unsourced, carried into the report.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/run-a-candidate-model-over-the-record/SKILL.mdRuns a candidate model or profile over what already happened and reports how well it would have called it, and runs it beside what is in force today to show what would come out differently. Use it when running `ref/mkt/attribution-model` and 3 other reference processes.
---
name: run-a-candidate-model-over-the-record
description: Runs a candidate model or profile over what already happened and reports how well it would have called it, and runs it beside what is in force today to show what would come out differently. Use it when running `ref/mkt/attribution-model` and 3 other reference processes.
license: CC-BY-4.0
metadata:
  agent: forecaster
  agent-version: "1"
---

# Run a candidate model over the record

## What it does

Runs a candidate model or profile over what already happened and reports
how well it would have called it, and runs it beside what is in force
today to show what would come out differently.

## Where it happens

The agent does this in seven activities across four reference processes.
Each one names the activity as that process words it.

- **Back-Test the Candidates**
  - `ref/mkt/lead-scoring-model`, activity 9 -
    [Maintain Lead Scoring Model](../../../../processes/marketing/lead-scoring-model.md)
- **Check What Each Does to Routing**
  - `ref/mkt/lead-scoring-model`, activity 10 -
    [Maintain Lead Scoring Model](../../../../processes/marketing/lead-scoring-model.md)
- **Read How the Model Has Scored**
  - `ref/mkt/lead-scoring-model`, activity 2 -
    [Maintain Lead Scoring Model](../../../../processes/marketing/lead-scoring-model.md)
- **Recompute the Closed Periods**
  - `ref/mkt/attribution-model`, activity 9 -
    [Maintain Attribution Model](../../../../processes/marketing/attribution-model.md)
- **Run It Beside the Live Model**
  - `ref/mkt/lead-scoring-model`, activity 12 -
    [Maintain Lead Scoring Model](../../../../processes/marketing/lead-scoring-model.md)
- **Test the Candidates against the Record**
  - `ref/mkt/attribution-model`, activity 8 -
    [Maintain Attribution Model](../../../../processes/marketing/attribution-model.md)
  - `ref/mkt/ideal-customer-profile`, activity 9 -
    [Define Ideal Customer Profile](../../../../processes/marketing/ideal-customer-profile.md)
- **Test the Persona against the Record**
  - `ref/mkt/buyer-persona`, activity 14 -
    [Develop Buyer Persona](../../../../processes/marketing/buyer-persona.md)

## What to record

Every model at a version, saying which data it was fit on, over what
period, and which records it left out and why. Every prediction with the
model version that produced it and the inputs it was computed from, so
somebody can run it again and see whether the answer still holds. Every
assumption written beside the number it drives, naming where the
assumption came from and how far the number moves when the assumption
moves. A back-test result whenever the agent says a profile would have
picked the right customers, showing what the profile would have selected
and what actually happened to those accounts. A list of every rate it
could not source, marked unsourced, carried into the report.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/set-the-money-to-hold-back/SKILL.mdSays how much money to set aside and for how long, whether that is what an engagement may cost over its term or what is held back for changes during the year. Use it when running `ref/mkt/engage-marketing-agency` and `ref/mkt/set-marketing-budget`.
---
name: set-the-money-to-hold-back
description: Says how much money to set aside and for how long, whether that is what an engagement may cost over its term or what is held back for changes during the year. Use it when running `ref/mkt/engage-marketing-agency` and `ref/mkt/set-marketing-budget`.
license: CC-BY-4.0
metadata:
  agent: forecaster
  agent-version: "1"
---

# Set the money to hold back

## What it does

Says how much money to set aside and for how long, whether that is what
an engagement may cost over its term or what is held back for changes
during the year.

## Where it happens

The agent does this in two activities across two reference processes.
Each one names the activity as that process words it.

- **Set the Budget and the Term**
  - `ref/mkt/engage-marketing-agency`, activity 5 -
    [Engage Marketing Agency](../../../../processes/marketing/engage-marketing-agency.md)
- **Size the Reserve**
  - `ref/mkt/set-marketing-budget`, activity 7 -
    [Set Marketing Budget](../../../../processes/marketing/set-marketing-budget.md)

## What to record

Every model at a version, saying which data it was fit on, over what
period, and which records it left out and why. Every prediction with the
model version that produced it and the inputs it was computed from, so
somebody can run it again and see whether the answer still holds. Every
assumption written beside the number it drives, naming where the
assumption came from and how far the number moves when the assumption
moves. A back-test result whenever the agent says a profile would have
picked the right customers, showing what the profile would have selected
and what actually happened to those accounts. A list of every rate it
could not source, marked unsourced, carried into the report.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/size-a-market/SKILL.mdSays how many buyers or accounts of a given shape exist and how much money sits with them. Use it when running `ref/mkt/ideal-customer-profile`, `ref/mkt/segment-the-market` and `ref/mkt/size-market-opportunity`.
---
name: size-a-market
description: Says how many buyers or accounts of a given shape exist and how much money sits with them. Use it when running `ref/mkt/ideal-customer-profile`, `ref/mkt/segment-the-market` and `ref/mkt/size-market-opportunity`.
license: CC-BY-4.0
metadata:
  agent: forecaster
  agent-version: "1"
---

# Size a market

## What it does

Says how many buyers or accounts of a given shape exist and how much
money sits with them. It picks the counting method and says why, sets
the price and frequency assumptions with the source of each one, runs
the count through each method, and explains where the methods disagree.

## Where it happens

The agent does this in seven activities across three reference
processes. Each one names the activity as that process words it.

- **Choose the Sizing Method**
  - `ref/mkt/size-market-opportunity`, activity 3 -
    [Size Market Opportunity](../../../../processes/marketing/size-market-opportunity.md)
- **Compute the Size Each Way**
  - `ref/mkt/size-market-opportunity`, activity 7 -
    [Size Market Opportunity](../../../../processes/marketing/size-market-opportunity.md)
- **Count the Buyers**
  - `ref/mkt/size-market-opportunity`, activity 5 -
    [Size Market Opportunity](../../../../processes/marketing/size-market-opportunity.md)
- **Reconcile the Methods**
  - `ref/mkt/size-market-opportunity`, activity 8 -
    [Size Market Opportunity](../../../../processes/marketing/size-market-opportunity.md)
- **Set the Rate Assumptions**
  - `ref/mkt/size-market-opportunity`, activity 6 -
    [Size Market Opportunity](../../../../processes/marketing/size-market-opportunity.md)
- **Size Each Candidate Market**
  - `ref/mkt/ideal-customer-profile`, activity 10 -
    [Define Ideal Customer Profile](../../../../processes/marketing/ideal-customer-profile.md)
- **Size Each Segment**
  - `ref/mkt/segment-the-market`, activity 9 -
    [Segment the Market](../../../../processes/marketing/segment-the-market.md)

## What to record

Every model at a version, saying which data it was fit on, over what
period, and which records it left out and why. Every prediction with the
model version that produced it and the inputs it was computed from, so
somebody can run it again and see whether the answer still holds. Every
assumption written beside the number it drives, naming where the
assumption came from and how far the number moves when the assumption
moves. A back-test result whenever the agent says a profile would have
picked the right customers, showing what the profile would have selected
and what actually happened to those accounts. A list of every rate it
could not source, marked unsourced, carried into the report.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/size-the-work-and-the-shortfall/SKILL.mdWorks out how much work something takes and whether there is enough to carry it, which covers the hours one run costs, the load a new tool would take on, and where the demand passes what the department can do. Use it when running `ref/mkt/plan-marketing-capacity` and `ref/mkt/select-marketing-technology`.
---
name: size-the-work-and-the-shortfall
description: Works out how much work something takes and whether there is enough to carry it, which covers the hours one run costs, the load a new tool would take on, and where the demand passes what the department can do. Use it when running `ref/mkt/plan-marketing-capacity` and `ref/mkt/select-marketing-technology`.
license: CC-BY-4.0
metadata:
  agent: forecaster
  agent-version: "1"
---

# Size the work and the shortfall

## What it does

Works out how much work something takes and whether there is enough to
carry it, which covers the hours one run costs, the load a new tool
would take on, and where the demand passes what the department can do.

## Where it happens

The agent does this in three activities across two reference processes.
Each one names the activity as that process words it.

- **Find the Shortfall**
  - `ref/mkt/plan-marketing-capacity`, activity 6 -
    [Plan Marketing Capacity](../../../../processes/marketing/plan-marketing-capacity.md)
- **Size What the Tool Has to Carry**
  - `ref/mkt/select-marketing-technology`, activity 6 -
    [Select Marketing Technology](../../../../processes/marketing/select-marketing-technology.md)
- **Size the Effort Each Run Takes**
  - `ref/mkt/plan-marketing-capacity`, activity 5 -
    [Plan Marketing Capacity](../../../../processes/marketing/plan-marketing-capacity.md)

## What to record

Every model at a version, saying which data it was fit on, over what
period, and which records it left out and why. Every prediction with the
model version that produced it and the inputs it was computed from, so
somebody can run it again and see whether the answer still holds. Every
assumption written beside the number it drives, naming where the
assumption came from and how far the number moves when the assumption
moves. A back-test result whenever the agent says a profile would have
picked the right customers, showing what the profile would have selected
and what actually happened to those accounts. A list of every rate it
could not source, marked unsourced, carried into the report.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/test-the-assumptions/SKILL.mdMoves each assumption one at a time and records how far the answer swings, so it is clear which assumptions the number actually depends on. Use it when running `ref/mkt/size-market-opportunity`.
---
name: test-the-assumptions
description: Moves each assumption one at a time and records how far the answer swings, so it is clear which assumptions the number actually depends on. Use it when running `ref/mkt/size-market-opportunity`.
license: CC-BY-4.0
metadata:
  agent: forecaster
  agent-version: "1"
---

# Test the assumptions

## What it does

Moves each assumption one at a time and records how far the answer
swings, so it is clear which assumptions the number actually depends on.

## Where it happens

The agent does this in one activity across one reference process. Each
one names the activity as that process words it.

- **Test the Assumptions**
  - `ref/mkt/size-market-opportunity`, activity 9 -
    [Size Market Opportunity](../../../../processes/marketing/size-market-opportunity.md)

## What to record

Every model at a version, saying which data it was fit on, over what
period, and which records it left out and why. Every prediction with the
model version that produced it and the inputs it was computed from, so
somebody can run it again and see whether the answer still holds. Every
assumption written beside the number it drives, naming where the
assumption came from and how far the number moves when the assumption
moves. A back-test result whenever the agent says a profile would have
picked the right customers, showing what the profile would have selected
and what actually happened to those accounts. A list of every rate it
could not source, marked unsourced, carried into the report.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/work-out-which-signals-are-usable/SKILL.mdAssembles the facts that might predict a fit or a win, records where each one comes from, and measures how often each is actually filled in and what it costs to get. Use it when running `ref/mkt/ideal-customer-profile` and `ref/mkt/lead-scoring-model`.
---
name: work-out-which-signals-are-usable
description: Assembles the facts that might predict a fit or a win, records where each one comes from, and measures how often each is actually filled in and what it costs to get. Use it when running `ref/mkt/ideal-customer-profile` and `ref/mkt/lead-scoring-model`.
license: CC-BY-4.0
metadata:
  agent: forecaster
  agent-version: "1"
---

# Work out which signals are usable

## What it does

Assembles the facts that might predict a fit or a win, records where
each one comes from, and measures how often each is actually filled in
and what it costs to get.

## Where it happens

The agent does this in three activities across two reference processes.
Each one names the activity as that process words it.

- **Gather the Candidate Signals**
  - `ref/mkt/lead-scoring-model`, activity 5 -
    [Maintain Lead Scoring Model](../../../../processes/marketing/lead-scoring-model.md)
- **Name the Qualifying Signals**
  - `ref/mkt/ideal-customer-profile`, activity 7 -
    [Define Ideal Customer Profile](../../../../processes/marketing/ideal-customer-profile.md)
- **Test the Signal Coverage**
  - `ref/mkt/ideal-customer-profile`, activity 8 -
    [Define Ideal Customer Profile](../../../../processes/marketing/ideal-customer-profile.md)
  - `ref/mkt/lead-scoring-model`, activity 7 -
    [Maintain Lead Scoring Model](../../../../processes/marketing/lead-scoring-model.md)

## What to record

Every model at a version, saying which data it was fit on, over what
period, and which records it left out and why. Every prediction with the
model version that produced it and the inputs it was computed from, so
somebody can run it again and see whether the answer still holds. Every
assumption written beside the number it drives, naming where the
assumption came from and how far the number moves when the assumption
moves. A back-test result whenever the agent says a profile would have
picked the right customers, showing what the profile would have selected
and what actually happened to those accounts. A list of every rate it
could not source, marked unsourced, carried into the report.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
mcp.jsonNot in the package.

Every server entry in an mcp.json needs either a command to run or a url to connect to, and the package cannot know either of those until somebody points it at their own systems. So the file is left out, the systems the agent needs are named by role in plugin.json, and you write the mcp.json when you set it up.

Setting it up

Point it at your systems

To run an agent built from this package, write an mcp.json that says which of your systems fills each role. The package names these 6 roles, and the access level beside each one is the most the work needs.

customer-and-revenue-record · readcrm · readanalytics-platforms · readad-platforms · readlicensed-market-data · readmodel-store · write
mcp.json You write this file. It is not part of the package.
{
  "$schema": "https://agent-plugins.org/schemas/1.1.0/mcp.schema.json",
  "mcpServers": {
    "customer-and-revenue-record": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/customer-and-revenue-record"
    },
    "crm": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/crm"
    },
    "analytics-platforms": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/analytics-platforms"
    },
    "ad-platforms": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/ad-platforms"
    },
    "licensed-market-data": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/licensed-market-data"
    },
    "model-store": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/model-store"
    }
  }
}

The hostnames here are a placeholder for your own. Whichever product holds each of these systems, the agent you build is yours and nobody else has to be involved in running it.

Where it works

25 processes, 82 activities

The highlighted activities are the ones this abstract agent does. The other activities in each process belong to other abstract agents or to people.

Analyze Customer Baseref/mkt/analyze-customer-base · 19 activities
12345678910111213141516171819

Group the Base · Find What the Groups Share · Read the Base over Time · Review the Findings

Build Annual Marketing Planref/mkt/annual-marketing-plan · 16 activities
12345678910111213141516

Put Numbers on Each Initiative · Record What the Plan Rests On

Maintain Attribution Modelref/mkt/attribution-model · 16 activities
12345678910111213141516

Draft the Candidate Models · Test the Candidates against the Record · Recompute the Closed Periods

Brief Executive Leadershipref/mkt/brief-executive-leadership · 20 activities
1234567891011121314151617181920

Put Numbers on the Choices

Develop Buyer Personaref/mkt/buyer-persona · 20 activities
1234567891011121314151617181920

Test the Persona against the Record

Launch Channel Programref/mkt/channel-program · 17 activities
1234567891011121314151617

Price the Incentives

Develop Marketing Strategyref/mkt/develop-marketing-strategy · 17 activities
1234567891011121314151617

Map the Market and Its Segments · Draft the Strategic Options · Put Numbers on Each Option

Engage Marketing Agencyref/mkt/engage-marketing-agency · 16 activities
12345678910111213141516

Choose the Route · Set the Budget and the Term · Score the Proposals

Define Ideal Customer Profileref/mkt/ideal-customer-profile · 17 activities
1234567891011121314151617

Read the Customer Record · Find the Traits that Predict a Win · Draft the Candidate Profiles · Name the Qualifying Signals · Test the Signal Coverage · Test the Candidates against the Record · Size Each Candidate Market

Maintain Lead Scoring Modelref/mkt/lead-scoring-model · 18 activities
123456789101112131415161718

Read How the Model Has Scored · Gather the Candidate Signals · Test the Signal Coverage · Fit the Candidate Models · Back-Test the Candidates · Check What Each Does to Routing · Run It Beside the Live Model

Develop Media Planref/mkt/media-plan · 14 activities
1234567891011121314

Draft the Candidate Mixes · Model Each Mix · Record What the Plan Rests On

Plan Marketing Capacityref/mkt/plan-marketing-capacity · 15 activities
123456789101112131415

Size the Effort Each Run Takes · Find the Shortfall · Cost Each Way of Closing the Gap · Put the Options to the People Who Decide

Launch Pricing Changeref/mkt/pricing-change · 16 activities
12345678910111213141516

Read the Affected Customers

Prioritize Marketing Initiativesref/mkt/prioritize-initiatives · 16 activities
12345678910111213141516

Put Numbers on Each Request · Record What the Round Rests On

Conduct Quarterly Business Reviewref/mkt/quarterly-business-review · 16 activities
12345678910111213141516

Re-Forecast the Rest of the Year · Put Numbers on the Proposed Changes · Record What the Review Rests On

Reallocate Media Spendref/mkt/reallocate-media-spend · 14 activities
1234567891011121314

Size What Each Move Returns

Segment the Marketref/mkt/segment-the-market · 18 activities
123456789101112131415161718

Read the Customer Record · Choose the Dividing Traits · Draw the Candidate Divisions · Test Whether the Segments Hold Apart · Size Each Segment · Rank the Segments

Select Marketing Technologyref/mkt/select-marketing-technology · 21 activities
123456789101112131415161718192021

Size What the Tool Has to Carry · Work out the Whole Cost

Set Marketing Budgetref/mkt/set-marketing-budget · 15 activities
123456789101112131415

Price the Requests · Test the Asks against the Goals · Size the Reserve · Record What the Budget Rests On

Size Market Opportunityref/mkt/size-market-opportunity · 16 activities
12345678910111213141516

Choose the Sizing Method · Count the Buyers · Set the Rate Assumptions · Compute the Size Each Way · Reconcile the Methods · Test the Assumptions · Write down the Sizing

Build the Roll-Upref/rev/build-the-roll-up · 17 activities
1234567891011121314151617

Apply the Category Definitions · Compute Coverage Against the Target · Hand It On for Publishing

Publish the Forecast Viewref/rev/publish-the-forecast-view · 16 activities
12345678910111213141516

Build the Headline Figures · Show the Arithmetic Behind Each Figure · Attach Coverage and the Gap · Mark the Figures the Data Cannot Carry

Commit the Numberref/sls/commit-the-number · 17 activities
1234567891011121314151617

Read How Past Commitments Landed · Model the Range · Name the Gap · Test What the Gap Rests On · Say What It Rests On · Record What the Number Rested On

Inspect a Dealref/sls/inspect-a-deal · 15 activities
123456789101112131415

Test the Close Date · Name What the Deal Rests On

Run the Forecast Callref/sls/run-the-forecast-call · 14 activities
1234567891011121314

Flag the Deals the Call Will Walk · Test the Coverage Against the Gap

The records it leaves

What it writes down

Every model at a version, saying which data it was fit on, over what period, and which records it left out and why. Every prediction with the model version that produced it and the inputs it was computed from, so somebody can run it again and see whether the answer still holds. Every assumption written beside the number it drives, naming where the assumption came from and how far the number moves when the assumption moves. A back-test result whenever the agent says a profile would have picked the right customers, showing what the profile would have selected and what actually happened to those accounts. A list of every rate it could not source, marked unsourced, carried into the report.

Where it stops

What it will not do

Does not decide anything and does not recommend a course of action. It says what the model predicts and what the prediction rests on, and the decision-coordinator agent puts that in front of the people who decide. Does not report what already happened, which is the analytics agent reading the organization's own numbers for a run and the reporting-manager agent accounting for a period against what was committed. Does not gather evidence from outside the organization, which is the researcher agent. Does not score an individual lead, which is the lead-scorer agent running the model in production. Does not put a model into production or change one that is already there, because a model in use changes through its own review as a versioned amendment. Does not hold the standards a plan has to fit inside, which is the standards-keeper agent. Does not set a budget, spend money, or commit the organization to a number.

These limits are written into the job on purpose, so that everyone adopting the process knows which decisions stay with a person.

Agents built from this plugin

Who has built one, and how far each one got

Nobody has built one yet. The catalog says so rather than leaving the section off, because an empty list is a fact about the document.

declare it implements: forecaster v1 One line in your agent's manifest. The catalog checks it against the records your runs actually leave.
A guess, not a claim

The closest things in the catalog, by description

Nobody above has claimed any of these. This is the nearest match by wording between the job written above and what publishers wrote about their own listings, closest first, and wording is not evidence: some of these will be wrong, and a job with nothing suitable still gets whatever was nearest. The publishers have never heard of this abstract agent and have promised nothing about it. What a claim looks like is in the table above, and it is signed.

Might do the job

Things that could be the worker: an agent, a packaged product, a plugin.

  • The Website Specification — A2A agent Agent · specification.website Read-only A2A agent that answers natural-language questions about The Website Specification and returns matching topics with status, canonical URL,…
Might be reached for

Not workers. These are capability that whatever does the job would use, which is a different relationship and kept in its own column for that reason.

  • models MCP server · worthune.com · hosted · mirrored from the MCP registry 55 Concordance-tested financial models with published specs; responses cite assumptions and sources.
  • Campaign Budget Forecaster MCP server · wxt-ai.github.io · hosted · mirrored from the MCP registry Forecast a scenario amount
  • Campaign Budget Forecaster MCP server · wxt-ai.github.io · hosted · mirrored from the MCP registry Forecast a scenario amount