Home

/

Claude Skills

/

Pacing vs Targets

Pacing vs Targets

by

  • FORECAST
  • TARGETS
  • MONTH-TO-DATE
  • E-COMMERCE
  • NATIVE TO POLAR
Works with the AI tools you already use
+19 agents

A month-to-date read for ecommerce teams: where the month will land against your targets, whether the gap is orders or basket, and the daily run-rate it takes to close it.

Every pacing sheet answers the same question badly: are we on track? It divides month-to-date by days elapsed, colours a cell red and stops there. This skill starts from your targets in Polar, a sheet or the chat, uses complete days only, and projects the month two ways: linear, and seasonality-adjusted from last year's shape, after checking that last year didn't have a promo spike that would inflate it. Then it explains the gap: orders or average basket, which channel, new or returning customers. And it tells you what closes it: the daily run-rate you need, set against what you've actually managed before.

What It Does

  • Finds your targets in Polar, a connected sheet or the chat, and never invents one.
  • Projects month-end two ways, linear and seasonality-adjusted, and says which one to trust.
  • Checks last year's month for promo spikes before using it as a seasonal curve.
  • Splits any revenue gap into orders and average basket, then by channel.
  • Gives the daily run-rate needed for the rest of the month against your real past pace.
  • Gives a provisional verdict against last year while the targets are missing.

Use Cases

  • Answer the CEO's mid-month question in one message: will we hit it?
  • Spot a basket problem hiding behind healthy order volume.
  • Decide whether the last week needs more budget or a better offer.
  • Check new-customer pace against the acquisition target, not just revenue.

Example Session

/polar-pacing Are we on pace for September?

AT RISK · September · data through the 24th
Targets: Net Sales €200k · Ad Spend €32k · New customers 380 · linear projection (last September had a promo spike)

  • KPI | MTD | Projected | Target | Gap | Needed / day
  • Net Sales | €152.4k | €190.5k | €200k | −€9.5k | €7.9k
  • Ad Spend | €24.8k | €31.0k | €32k | −€1.0k | €1.2k
  • New customers | 262 | 328 | 380 | −52 | 20

The gap isn't traffic: orders are up 5% on last year, the average basket is down 14%. The last six days need €7.9k a day, above this month's €6.4k average but below the €9.5k you did on the same days last year.

Adding €1k of spend at today's €95 CAC buys about 10 customers for a gap of 52: fix the offer, not the budget. A bundle or a free-shipping threshold works on the basket directly.

Assumptions: complete days only · one net sales definition for MTD, target and last year · linear projection, because last year's month had a promo spike · targets not saved.

Install It

  • Copy the command.
    One line in your terminal. Free, no account needed.
  • Run it.
    npx skills add pulls the skill from Polar's GitHub and installs it for the agents you pick: Claude Code, Cursor, Codex and more.
  • Connect Polar and ask.
    Connect the Polar connector, then ask if you're on pace. The skill does the rest.

skills folder

Copy

npx skills add \
  https://github.com/polar-analytics/claude-skills \
  --skill polar-pacing

Frequently asked questions

Where does it find my targets?

In Polar first (a target or budget metric, or a connected Google Sheet), then in its memory, and last by asking you. Targets given in the chat are used for that run only unless you ask to save them.

Linear or seasonal projection: which one is right?

Both are shown when they differ by more than 5%. The seasonal one follows last year's shape, but only after the skill checks that last year's month wasn't bent by a promo. If it was, it leans on the linear one and says why.

Why does it split revenue into orders and basket?

Because the fix is different. A revenue gap with stable orders is a basket problem (discounts, mix, bundles), not a traffic problem, and more budget won't close it.

Does it include today?

No. Month-to-date stops at yesterday, the last complete day, so a half-loaded morning never looks like a bad day.

What if I don't have targets yet?

It gives a provisional verdict against the same month last year, clearly labelled, and asks once for your targets.

Does it change anything in my workspace?

No. It reads your data and recommends. Nothing is saved unless you ask for it.

A pacing call is worth what your definitions are worth.

Polar holds one definition of net sales across Shopify, marketplaces and ads, so month-to-date, last year and your targets are compared on the same number.

Book a demo

<script type="application/ld+json">{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "Where does it find my targets?", "acceptedAnswer": {"@type": "Answer", "text": "In Polar first (a target or budget metric, or a connected Google Sheet), then in its memory, and last by asking you. Targets given in the chat are used for that run only unless you ask to save them."}}, {"@type": "Question", "name": "Linear or seasonal projection: which one is right?", "acceptedAnswer": {"@type": "Answer", "text": "Both are shown when they differ by more than 5%. The seasonal one follows last year's shape, but only after the skill checks that last year's month wasn't bent by a promo. If it was, it leans on the linear one and says why."}}, {"@type": "Question", "name": "Why does it split revenue into orders and basket?", "acceptedAnswer": {"@type": "Answer", "text": "Because the fix is different. A revenue gap with stable orders is a basket problem (discounts, mix, bundles), not a traffic problem, and more budget won't close it."}}, {"@type": "Question", "name": "Does it include today?", "acceptedAnswer": {"@type": "Answer", "text": "No. Month-to-date stops at yesterday, the last complete day, so a half-loaded morning never looks like a bad day."}}, {"@type": "Question", "name": "What if I don't have targets yet?", "acceptedAnswer": {"@type": "Answer", "text": "It gives a provisional verdict against the same month last year, clearly labelled, and asks once for your targets."}}, {"@type": "Question", "name": "Does it change anything in my workspace?", "acceptedAnswer": {"@type": "Answer", "text": "No. It reads your data and recommends. Nothing is saved unless you ask for it."}}]}</script>