All skills

Budget season · Track

Budget Change Digest

Compares two versions of your budget and reports what moved: every material change tied to an owner and a reason, and the ones nobody explained.

Download .skill · 19 KB

Free, no email

Quick answer

01What it does

Aligns two budget versions line by line, bridges your key metric from one to the other, and ties each material change to an owner and a reason.

02What you give it

Two versions of the budget as files, tabs, or pasted extracts, and the metric you report on, plus any change log or owner names you have.

03What you get back

A headline, a ranked bridge that ties to the total, a department table, the list of changes nobody explained, and open items.

Say this to run it

  • “What changed between these two versions?”
  • “Diff these budgets”
  • “Run the change digest”
  • “Why did EBITDA move?”
  • “What moved since last week?”
  • “Prep me for the exec review”
  • “Which changes are unexplained?”

Add it to Claude

  1. 01

    Download the file

    budget-change-digest.skill, 19 KB

  2. 02

    Add it in Claude

    Customize › Skills › Add, then upload the file.

  3. 03

    Attach both versions and ask

    “What changed between these two versions?”

What you get back

This is the format every run returns, from the skill's own template.

Output · references/output-template.md

Output Format

Five blocks, this order, every run. Do not restyle between rounds — the value is that round four is directly comparable to round three.


1. The headline

{Metric} moved from ${A} to ${B} — {+/-}${delta} ({+/-}{pts} pts)
between {version A} and {version B}.

Three changes did {n}% of it:
  1. {Line} — {+/-}${amount} · {reason, or ⚠ unexplained}
  2. {Line} — {+/-}${amount} · {reason, or ⚠ unexplained}
  3. {Line} — {+/-}${amount} · {reason, or ⚠ unexplained}

Written to be read aloud in a meeting. No preamble.


2. The bridge

Per references/alignment-and-bridge.md. Every material driver, signed, ranked, tying exactly to net movement, with the residual shown rather than absorbed.

Lead with the alignment result:

Aligned {n} of {m} lines · {r} renamed · {a} added · {d} removed

3. Department table

Department{Ver A}{Ver B}ΔDirectionAttributedUnexplained
{dept}${x}${y}{+/-}${z}▲/▼/–{n}{n}

Sorted by absolute delta. Include unchanged departments with – — a department that did not move is information, and its absence reads as an omission.


4. The unexplained list

Per references/attribution-rules.md. Never omitted. If empty, say so.


5. Open items

OPEN ITEMS — carried from {previous digest date}

  Resolved (1)
    $80,000  Engineering · Contractors — reason attached {date}: {reason}

  Still open (2)
    $45,000  G&A · Legal & professional — unexplained for 3 rounds ⚠
    $15,000  Marketing · Events — unexplained for 2 rounds

If no prior digest was supplied, print First run — no prior items to carry forward. rather than omitting the block, so the shape stays constant.


Formatting rules

  • Every figure traces to a line in a supplied version. No derived estimates.
  • Round consistently to the source's precision. Never invent precision.
  • Signs stated from the metric's point of view, with the convention declared once.
  • Percentages of movement, not of budget, unless labelled otherwise.
  • Unknown is [unknown], never zero and never blank.

Inside the skill

Five plain-text files you can read before you install.

references/attribution-rules.md
# Attribution

A change is attributed when you can name **both**:

1. **An owner** — a person, not a department
2. **A reason** — a stated driver, traceable to a source you were given

One without the other is not an attribution. A department with no person is not
an owner. A number with no reason is not explained.

---

## Where a reason may come from

In descending order of trust:

1. **An explicit change log** — a row stating line, delta, owner and reason
2. **A comment attached to the cell or row** in the source file
3. **A message or email that names the line and the reason**
4. **A prior digest's open items**, if the item was subsequently resolved

## What is never a reason

- **Proximity.** A comment in the neighbouring cell, or a note at the top of the
  tab, does not explain a specific line.
- **A restatement.** "Increased headcount budget" is what the number already
  says. A reason answers *why*, not *what*.
- **Your own inference.** However obvious the explanation seems, if the source
  did not say it, it is unexplained. This is the rule that gives the output its
  value; break it once and every attribution becomes suspect.
- **A pattern from a previous round.** Last month's reason does not carry
  forward to this month's change of the same line.

## Partial attribution

Common and worth reporting precisely — the two halves fail differently:

| Owner | Reason | Report as |
|---|---|---|
| ✓ | ✓ | Attributed |
| ✓ | ✗ | **Unexplained** — "{Owner} changed this; no reason given" |
| ✗ | ✓ | **Unowned** — "Reason stated; no one attached to it" |
| ✗ | ✗ | **Unexplained** — the default |

The owner-without-reason case is the most actionable line in the whole digest,
because you know exactly who to ask.

---

## The unexplained list

The most distinctive output this skill produces. Format it so it can be pasted
straight into a message and acted on.

```
UNEXPLAINED — 2 changes, $60,000 (9% of net movement)

  $45,000   G&A · Legal & professional      no owner, no reason
  $15,000   Marketing · Events & sponsorships   no owner, no reason
```

Rules:

- **Ranked by dollar size**, largest first
- **State the share of net movement** the list represents — two small unexplained
  lines in a large movement is a healthy cycle; two large ones is not
- **Never soften it.** Do not write "possibly related to" or "likely reflects."
  The absence of a reason is the finding.
- **If the list is empty, say so and mean it:** "Every material change is
  attributed to an owner and a stated reason." That is a genuinely good result
  and worth calling out.
- **If no attribution source was supplied at all**, put that at the top of the
  list rather than presenting a hundred unexplained lines as a scandal.

## Open items across rounds

When a prior digest is supplied, carry its unexplained list forward and mark
each:

- **Resolved** — a reason has since been attached. Name it.
- **Still open** — unexplained across consecutive rounds. Note how many.
- **Stale** — the line has moved again, still with no reason. These compound and
  should be escalated by name.

An item that is still open after three rounds is not an attribution problem. It
is a process problem, and the digest should say so plainly.

Related skills