Realtime · LiveSub-hour latency

Alert Stream.

Rate-change events for the role-geographies that move your margin. A 6.2% week-over-week shift on Travel CRNA in Texas is a meeting, not a footnote.

< 1 hourLatency
UI · Email · WebhookChannels
Role × geographyGranularity
Per-subscriptionThresholds
Anatomy

Every row is a margin decision waiting to be made.

01Timestamp

Down to the minute. You'll know whether the move beat your morning rate card or arrived after.

02Role × geography

Canonical role ID joined with state or metro. Never aggregated above the level you subscribed to.

03Magnitude + direction

Percent move plus the percentile move. A jump from p50 to p65 means the floor reset, not the ceiling.

04Sample weight

n events behind the move. A 5% pop on n=12 is news. On n=312 it's a market.

By the numbers

How fast a market move becomes a meeting.

<1hrDetection latencyFrom rolling-window crossing to signed webhook fan-out.
5yrReplay windowReplay any event from the dashboard or the API.
0Duplicate pagesSustained moves emit one event with magnitude — not a stream as the window catches up.
4Delivery channelsUI · email · Slack · signed webhook with replay.
Capability matrix

What Alert Stream ships with.

CapabilityDesk · Agency · Agency PlusEnterprise
Subscribed role × geo pairs500Unlimited
Delivery channelsUI + email + SlackUI + email + Slack + webhook
Custom thresholds% and absolute% · absolute · percentile
Replay window90 days5 years
Webhook deliveryGA · signed · replayable
Webhook payload

What lands at your endpoint when a market moves.

Signed, idempotent, replayable. Every event carries the canonical role, the geography, the magnitude, and enough provenance to send it to a margin meeting.

# POST https://you.example.com/cr-webhook
# X-CR-Signature: sha256=… · X-CR-Idempotency-Key: 4f1c…
{
"event_id": "evt_2026-05-11T07:12:18Z_8a31",
"role_id": "CR-0207", "role": "Travel CRNA",
"geo": { "state": "TX", "metro": "Houston" },
"delta_pct": 6.2, "direction": "up",
"percentile_move": { "from": 50, "to": 63 },
"sample_size": 312, "as_of": "2026-05-11T07:12:18Z",
"source_class_mix": { "vms": 0.42, "agency": 0.31, "public": 0.27 }
}

HMAC-SHA-256 over body · idempotency-key on retry · POST → 2xx within 5 s or we back off and retry for 24 h.

Under the hood

How a placement event becomes an alert.

DetectionRolling-window deltas

Each role × geography runs a 7-day rolling median against the prior 7-day baseline. Crossings of your subscribed thresholds fire events.

De-dupingOne event per move

Sustained moves emit one event with a magnitude — not a stream of duplicates as the rolling window catches up. You won't get paged at 9, 10, and 11am for the same shift.

DeliveryAt-least-once · idempotent

Webhook payloads carry an idempotency key and HMAC signature. Replay any event in the last 5 years from the dashboard or the API.

ThrottlingQuiet hours · digest mode

Subscribe with per-channel quiet hours. Low-magnitude events can be batched into a daily digest while material moves still page through immediately.

Agency · Slack delivery
DT
David TangDirector, Pricing & Margin · National MSP
A 6.2% week-over-week shift on Travel CRNA in Houston used to be a footnote in next month's report. Now it's a Slack card before standup and a re-priced rate card by lunch.
What's included

Alert Stream by tier.

FAQ

Questions buyers ask about Alert Stream.

Thresholds are per-subscription. A new analyst can start at the default 3% / n≥50 setting and tune individual subscriptions tighter or looser as they learn which roles actually move.

Yes. Native Slack app on every plan. Each subscription can fan out to its own channel; rate-change events render as interactive cards with one-click drill-through to Rate Explorer.

When you add a new role × geography, you can backfill the last 30/90/365 days of events into your channel of choice, so your team can calibrate on history before the first live alert lands.

Webhook delivery retries with exponential backoff for 24 hours. After delivery succeeds (or fails permanently) you can replay any event from the dashboard or the API for the full retention window of your tier.

Threshold subscriptions carry a minimum-sample-size floor (default n ≥ 50). Moves on n < floor are visible in the dashboard but suppress the email/Slack/webhook fan-out, with a "thin market" flag instead of a percentage.

Get started

Get paged on margin events.

Book a 30-minute demo. We'll wire up your top 10 specialties and you'll see the first alerts inside the meeting.