Home

/

Claude Skills

/

Threshold Alerts

Threshold Alerts

by

  • MONITORING
  • ANOMALIES
  • SCHEDULED
  • E-COMMERCE
  • NATIVE TO POLAR
Works with the AI tools you already use
+19 agents

A morning check for ecommerce teams: revenue, CAC, ROAS, spend, conversion and connector health against your thresholds. Silent when all is well, one short alert with the likely cause when something breaks.

Dashboards only help when someone opens them, and the day something breaks is usually the day nobody does. This skill turns the morning check into a rule list that runs on its own. Every day it checks yesterday against a baseline that never includes the day itself: revenue against the same weekday, CAC and ROAS against the last 14 days, spend per platform against the last week, conversion rate, and the health of every connector. If nothing crosses a line, it answers in one line. If something does, you get only the rows that fired, the likely driver and the next step. And if yesterday's data isn't loaded yet, it says skipped instead of crying wolf.

What It Does

  • Checks yesterday against clean baselines: same weekday for revenue, trailing 14 days for CAC, ROAS and conversion.
  • Watches ad spend per platform for spikes and drops, the fastest way to catch a broken campaign or a runaway budget.
  • Treats connector health as a check of its own: a silent broken sync is the most expensive anomaly.
  • Skips a check when the data isn't fresh instead of firing on half a day.
  • Adds your own rules in plain language, like CAC above €100, for the run you ask for.
  • Answers in one line when all is clear, and only details the rows that fired.

Use Cases

  • Get a morning ping only on the days something needs you.
  • Catch a campaign that doubled its spend overnight before the week is gone.
  • Know the moment a connector breaks, before a report goes out with a hole in it.
  • Watch launch days with a tighter CAC cap than usual.

Example Session

/polar-threshold-alerts Run the morning check for yesterday.

ALERT · yesterday (Thursday) · 2 checks fired
Data fresh through yesterday on every connector · baselines end the day before · read-only

  • Check | Value | Baseline | Threshold | Likely driver
  • Connector health | Sheets broken | healthy | any broken | Expired token since Tuesday: targets stopped syncing
  • Paid Social spend | €1,020 | €510 / day | > 1.5x | New prospecting ad set live since Wednesday at €500/day

Next steps: reconnect Google Sheets so targets sync again · check the new Paid Social ad set before it runs another day at 2x.

Passed (5): revenue vs same weekday · new-customer CAC · ROAS · Paid Search spend · conversion rate

Skipped (1): stock cover, no inventory data connected.

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 for the morning check, or schedule it. The skill does the rest.

skills folder

Copy

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

Frequently asked questions

How is this different from Shopify or Klaviyo alerts?

Those watch one tool each. This skill checks revenue, CAC, ROAS, spend, conversion and connector health across all your sources in one run, against baselines that account for the weekday, and tells you the likely cause.

Can it run every morning on its own?

Yes. Schedule it as a recurring task in Claude or your agent, for example every weekday at 8:00. It stays silent on clear days and posts only when a rule fires.

Which thresholds does it use?

Sensible defaults: revenue under 75% of the same weekday, CAC above 1.3x its 14-day average, spend outside 0.5x to 1.5x of last week. Give it your own caps, like CAC above €100, and it uses them instead.

What if yesterday's data isn't loaded yet?

It checks freshness first. A check whose data isn't complete is marked skipped, never fired, so a slow sync never looks like a revenue drop.

Does it change anything or save my rules?

No. It only reads your data. A rule you add in the conversation applies to that run; nothing is written to your workspace.

Where do alerts go?

Wherever the run happens: your chat, or the destination of the scheduled task, like email or Slack through your own connector.

An alert is worth what your data freshness is worth.

Polar knows when each connector last synced and checks it against the source, so the skill never alerts on half-loaded data and tells you the moment a sync breaks.

Book a demo

<script type="application/ld+json">{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "How is this different from Shopify or Klaviyo alerts?", "acceptedAnswer": {"@type": "Answer", "text": "Those watch one tool each. This skill checks revenue, CAC, ROAS, spend, conversion and connector health across all your sources in one run, against baselines that account for the weekday, and tells you the likely cause."}}, {"@type": "Question", "name": "Can it run every morning on its own?", "acceptedAnswer": {"@type": "Answer", "text": "Yes. Schedule it as a recurring task in Claude or your agent, for example every weekday at 8:00. It stays silent on clear days and posts only when a rule fires."}}, {"@type": "Question", "name": "Which thresholds does it use?", "acceptedAnswer": {"@type": "Answer", "text": "Sensible defaults: revenue under 75% of the same weekday, CAC above 1.3x its 14-day average, spend outside 0.5x to 1.5x of last week. Give it your own caps, like CAC above €100, and it uses them instead."}}, {"@type": "Question", "name": "What if yesterday's data isn't loaded yet?", "acceptedAnswer": {"@type": "Answer", "text": "It checks freshness first. A check whose data isn't complete is marked skipped, never fired, so a slow sync never looks like a revenue drop."}}, {"@type": "Question", "name": "Does it change anything or save my rules?", "acceptedAnswer": {"@type": "Answer", "text": "No. It only reads your data. A rule you add in the conversation applies to that run; nothing is written to your workspace."}}, {"@type": "Question", "name": "Where do alerts go?", "acceptedAnswer": {"@type": "Answer", "text": "Wherever the run happens: your chat, or the destination of the scheduled task, like email or Slack through your own connector."}}]}</script>