── SKILL
revenue-reporting✓ APPROVED

Make revenue reporting a weekly habit that drives action.

Pairs a where-we-stand-and-why write-up with a list of hot leads and deals to work now, so the report ends in moves, not a screenshot.

Inside: The accuracy contract, the five-step position analysis, and the action layer.

01 / HOW TO USE

Install it in one line, or paste it in.

1
In Claude Code (one command)
Copy the install line, paste it into your terminal, and restart Claude Code. The skill installs itself to ~/.claude/skills/ and runs automatically when it is relevant.
2
In Claude, ChatGPT, or a Project (no terminal)
Open the file, then upload it to your chat or paste its contents in. A skill is just a markdown file of instructions, so any capable AI can follow it.
New to skills? A skill is a plain-text file that teaches your AI a workflow. Point any capable assistant at it and it follows the steps, on your data.
02 / MAKE IT YOURS

Connect your context. Set it to your motion.

CONNECT YOUR CONTEXT · AND WHY IT HELPS
a spreadsheet or BI tool

it reads every summary tab automatically and reconciles row counts.

a CRM

it pulls the open pipeline and the deals behind the forecast so the action layer names real accounts.

a product-analytics tool

it adds usage momentum to the hot-leads list.

SET IT TO YOUR MOTION

This was built for a B2B SaaS org reporting ARR across a direct-sales and a self-serve channel. Set these to your stack:

Point it at your metrics and your channels, not anyone else's. The skill narrates position and variance, whatever your revenue model is.

Set thisWhat it isDefault / Example
SOURCEwhere your numbers livea summary sheeta BI exporta CSV
TOP_METRICyour headline numberTotal ARRMRRnet revenue
CHANNELShow you split the businessDirect Sales vs Self-ServeNew vs Expansion
TARGET / FORECAST / CURRENTthe three numbers you never blurcommitted goal / team commitment / what has closed
VARIANCE_FLAGthe gap that earns a red flag10% of target (yellow at 5-10%)
ACTION sourcewhere the hot leads and deals come fromyour CRMa pipeline export
CADENCEhow often the report runsweekly pacingmonthly retrospectivequarterly review
03 / THE FULL SKILL

Everything the skill does, in full.

── WHAT THIS DOES

Reports the number, then tells you what to do about it. It leads with total ARR against target, splits the gap into the channels and sub-channels driving it, compares what has closed to what is forecast to where you need to land, and closes with an action layer: the hot leads and the deals that need a push this week. It turns a backward-looking wrap-up into the rhythm the team actually runs on.

── THE METHOD
  1. 1
    The accuracy contract

    Revenue reporting is where a wrong number costs the most, so accuracy is not optional.

    • Every number traces to a specific cell. If you cannot point to a row, say "data unavailable" instead of guessing.
    • Verify the period first, always. Read the "as of" and "period covered" dates, echo them at the top, and stop if they do not match what was asked.
    • Read the forecast the sheet already computes. Never run your own pacing math on top of a number the source already calculated.
    • Never narrate an error cell. Skip it or note "data unavailable," never print the glyph.
    • Never mix a monthly and a quarterly period in the same section. Crossing streams produces wrong numbers that look right.
  2. 2
    Revenue-position analysis (five steps)
    1. Headline. Lead with the top metric against target: above, below, or on target, in both dollars and percent.
    2. Break down by channel. Which channel is driving the gap or the surplus.
    3. Drill into the driver. For the channel with the biggest variance, analyze the sub-channel breakdown (new business vs churn, upgrade vs reactivation).
    4. Forecast comparison. Current vs Forecast vs Target: are you tracking to close the gap by period end.
    5. Forward outlook. What the forecast says about where you land, quantified.
  3. 3
    The three definitions (never blur these)

    Target is the committed goal. Forecast is what the team commits to based on current visibility. Current is what has actually closed as of the date. "We are at X" is ambiguous, always say which.

  4. 4
    Variance flagging

    Flag any metric where variance exceeds VARIANCE_FLAG of target. Color it: green on or above target, yellow in the 5-10% watch zone, red past 10%.

  5. 5
    The action layer

    A report nobody acts on is a rear-view mirror. Close every wrap-up with what to do now: the hot leads worth a touch this week, and the open deals whose forecast the number depends on. This is what turns reporting into an operating rhythm rather than a recap.

── QUALITY GATES
  • Period verification runs before analysis, every time. No exceptions.
  • Every headline number is traceable to a source cell, or it is not reported.
  • Forecast is read from the source, never recalculated.
  • Variance is flagged by the same thresholds every time, so this week compares to last week.
── OUTPUT (EXAMPLE)
EXAMPLE OUTPUT
REVENUE WRAP-UP · as of Apr 30 · period: April · cadence: Monthly

Headline: April closed 4.9% under the Total ARR target, driven almost
entirely by Direct Sales. Self-Serve held the line.

Metric        Current   Target    Variance ($)   Variance (%)
Total ARR     $8.50M    $8.94M    -$440K         -4.9%   (yellow)
DS ARR        $4.54M    $5.00M    -$460K         -9.2%   (yellow)
SS ARR        $3.96M    $3.93M    +$30K          +0.6%   (green)

Driver: DS churn ran well above plan; new business landed light.
Offsetting: expansion came in near 2x target, reactivation added upside.

Forecast: on the current forecast, next period closes within 2% of target
if the two slip-risk deals below hold.

ACTION LAYER
  Hot leads: 3 accounts replied or engaged this week, no follow-up yet.
  Deals to work: 2 slip-risk deals the forecast depends on. Push both before period end.
── WHERE THE NUMBERS COME FROM

The 10% variance flag (yellow at 5-10%) and the monthly cadence are defaults, not laws. They suited a mid-market SaaS reporting rhythm. If your business runs tighter or looser, move them. The logic does not change. The thresholds are yours.

── EXAMPLE CHAT
EXAMPLE CHAT
You
Run the wrap-up. Here's the ARR summary sheet, as of April 30th.
CLAUDE
Verified the period first, then ran it. Direct Sales is where the gap is coming from, self-serve is fine. REVENUE WRAP-UP · as of Apr 30 · period: April · cadence: Monthly Metric Current Target Variance ($) Variance (%) Total ARR $8.50M $8.94M -$440K -4.9% (yellow) DS ARR $4.54M $5.00M -$460K -9.2% (yellow) SS ARR $3.96M $3.93M +$30K +0.6% (green) ACTION LAYER Hot leads: 3 accounts replied or engaged this week, no follow-up yet. Deals to work: 2 slip-risk deals the forecast depends on. Caught one thing before I ran the numbers: I checked the "as of" date on the sheet against what you asked for. They matched, so I didn't stop. If they hadn't, I'd have flagged it instead of reporting a number from the wrong period.
You
Is the forecast in here your math or the sheet's?
CLAUDE
The sheet's. This skill never runs its own pacing math on top of a number the source already calculated, it reads the forecast the sheet computes and reports it straight. Sharpener: connect your CRM and the action layer will name the two slip-risk deals by account instead of just counting them.
04 / GO FURTHER

Where an operator takes this next.

The wrap-up proves the rhythm is worth keeping. Here is the version that keeps the rhythm without you touching it.

The number shows up with its own explanation attached, every time, on the same schedule.

01
Run this every Monday without touching it

Schedule a Claude task against your BI export so the wrap-up is written and posted before the pipeline review starts.

02
Name the hot leads and slip-risk deals live

Connect Salesforce so the action layer lists real accounts and owners instead of a count.

03
Flag variance the moment it crosses the line

Wire the yellow and red thresholds to a Slack alert so a channel gap gets noticed the day it happens, not at the next report.

05 / PART OF A BIGGER PLAY

One skill is the on-ramp.

── GET NEW SKILLS IN YOUR INBOX

One operator-built skill a week. Free.