Emergency Mass Notification for School Districts

Every vendor in this category will tell you their emergency send is fast. Almost none will tell you what happens between the button and the handset, or what their targeting silently cannot do. This page does both, including the parts where we come off badly, starting with the biggest: Kastr is not an emergency notification system, and safety-critical alerts belong in your established emergency system.

Last reviewed 2026-08-04

Between pressing send and a message arriving, the mechanics, and the honest column
StageWhat happensWhat it protects againstWhat it does not do
Audience resolutionRecipients are resolved at send time from current records, not from a saved listMessaging people who were withdrawn in OctoberIt does not send to suppressed or retired people: they are filtered out at send time, including anyone a roster sync has withdrawn, and SMS consent and opt-outs apply to every text
Queue claimWorkers claim rows with SELECT FOR UPDATE SKIP LOCKED under a five-minute claim TTLA crashed worker stranding its share of the districtNothing about it is instantaneous; we publish no send-time figure
IdempotencyUnique key per broadcast, person and channelA retry after partial failure double-sending at 6amIt cannot deduplicate two separate broadcasts a human sent twice
Network I/OCarrier calls happen outside the database transactionA slow carrier holding locks across the whole send,
SMS attemptPer-segment send to each validated mobile contact point, Carrier filtering of unregistered 10DLC traffic, which is silent
RetriesA failed delivery is retried, and delivery receipts record the outcomeA transient carrier or provider error ending the attemptNo voice channel, so there is no failover from a failed text to a call
Quiet hoursDefault 21:00–07:00, bypassed only for urgent-flagged sendsRoutine traffic training families to mute you,
Urgent flagOverrides per-family channel preferences and quiet hours (SMS consent and opt-outs still apply), gated on a separate capabilityAnyone who can send a newsletter triggering an alertThere is no two-person authorisation and no separate emergency console

The targeting problem, stated plainly

This is the part of the page that costs us deals, and it belongs above the pricing rather than below it.

Kastr cannot target a grade, a bus route or a site. Its audiences are the district, a school, a class, specific people and saved groups, and language is not an audience type. If your emergency plan depends on messaging one campus while the other eleven carry on, that is a school audience. If it depends on messaging one wing, one grade or one bus route, Kastr cannot do that as a filter today and you should not buy it on the promise that it will: those families have to be selected as specific people or kept as a saved group.

We are writing that down because the alternative is that you discover it during an incident. When you evaluate any vendor in this category, the test is not whether the dropdown exists. It is whether you watched a message go to one school's families and not another's, in a demo tenant with your own roster loaded.

The related question, which almost nobody asks: what happens at send time to a student who withdrew last month? In our case audience resolution filters out suppressed and retired people at send time, and anyone a roster sync has withdrawn is treated as retired, so they are left out of later sends. SMS consent and opt-outs apply to every text, including urgent ones. Ask every vendor the same question.

Cost, and what the composer shows

SMS and voice are metered. Email is effectively free. That means the cost of an emergency send is decided by two choices made in the composer, which channels, and how long the message is, and in most platforms neither choice shows you a number until the invoice.

Kastr's composer shows no cost estimate. It shows the recipient count and the channels you have chosen before you send, and normal family messaging by SMS and email is included in the per-student price under a published pooled annual fair-use allowance, with transparent cost recovery only above it. Kastr has no voice channel.

The segment boundary is the part people miss. An SMS runs 160 characters in GSM-7. A message that spills three characters past the boundary becomes two segments across every recipient, which is why the holding statements on the holding statements page are written to fit inside one.

What it costs, without a sales call

Every named competitor in this category makes you ask. ParentSquare's pricing page, fetched 4 August 2026, contains three tiers, four add-ons, 510 words and no dollar figure of any kind; all three columns share the button "Contact sales". Bloomz does publish $3/$5/$7/$9, but voice and auto-notices start at the $5 tier, and their pricing page canonicalises to their own homepage, so it cannot rank. ClassDojo is free to districts and monetises families directly instead.

Ours: $3.50 per student per year under 5,000 students, $3.25 from 5,000 to 14,999, $3.00 at 15,000 and above. One tier. Urgent sending, translation and the API are included at every size, with no add-on modules, and normal family messaging by SMS and email is included under a published pooled annual fair-use allowance, with transparent cost recovery only above it. There is no voice channel. The per-student rate is fixed for 36 months under clause 3.2, and year four onward is capped at the lesser of CPI-U or 5%. Clause 9.4 says we will never market or sell to your families, and clause 11.2 gives you a 90-day exit with a prorated refund if we are acquired or materially change our data terms.

Two questions worth asking every vendor on your shortlist, including us. "Will you write your maximum annual increase into the agreement as a number?" and "Does your delivery report count carrier acceptance as delivery?" Both have one-word answers. Both change the figure you are comparing.

What we do not have

For an emergency evaluation specifically, these are the gaps that matter, and they are all things a competitor will happily raise:

  • Not an emergency notification system. No voice calling, no two-person approval and no emergency console. Lockdowns, evacuations and other safety-critical alerts belong in your district's established emergency system; Kastr is for the follow-up.
  • No SSO of any kind. No SAML, no OIDC, no MFA. Magic link is our only authentication. For a district standardised on Entra ID that is a genuine operational objection.
  • No mobile push notifications. The family app is a web app.
  • No attachments. You cannot attach a reunification site map to a message. You link to it.
  • No SOC 2. Not audited, we are independently operated and we publish no uptime figure, because we do not have one worth publishing.
  • Limited reference history. None. We are welcoming school customers.
  • No load-test numbers. Other vendors publish "40,000 families in 90 seconds" style figures. We have not run that test, so we do not have that number, so we are not going to print one.

What we do have that is unusual in this category: 28 documented REST endpoints, signed outbound webhooks with an HMAC over timestamp and body plus a DNS-resolving SSRF guard, an MIT-licensed CLI and MCP server, a tamper-evident hash-chained audit log, and a published price. Weigh that against the list above honestly. For some districts the list above wins, and that is a legitimate outcome.

Questions people actually ask

What happens between pressing send and a message reaching a parent's phone?

The audience resolves against current records, delivery rows are written, workers claim them with SKIP LOCKED under a five-minute claim TTL, and each row is attempted per channel with network calls made outside the database transaction. Failed deliveries are retried and delivery receipts record the outcome; there is no voice fallback. Row-level idempotency keyed on broadcast, person and channel means a retry cannot double-send.

Do urgent messages override quiet hours?

Yes. An urgent-flagged send bypasses both quiet hours, which default to 21:00 to 07:00, and per-family channel preferences, though SMS consent and opt-outs still apply. That override is gated on a separate capability so that routine senders cannot trigger it. Routine messages should never use it, districts that route ordinary traffic through the urgent path train families to ignore the urgent path.

Can we target a single school for an urgent message?

Yes. A school is one of Kastr's audiences, alongside the district, a class, specific people and saved groups. What Kastr cannot target is a grade, a bus route or a site: those families have to be selected as specific people or kept as a saved group. That is a real limitation and we would rather you knew before signing than during an incident. For a life-safety alert, remember that Kastr is not an emergency notification system; the alert itself belongs in your established emergency system.

What does Kastr cost per student?

$3.50 per student per year under 5,000 students, $3.25 for 5,000 to 14,999, and $3.00 at 15,000 and above, with urgent sending and translation included at every size. There are no add-on modules, and normal family messaging by SMS and email is included under a published pooled annual fair-use allowance, with transparent cost recovery only above it. Kastr has no voice channel and is not an emergency notification system. The rate is fixed for 36 months and capped afterwards at the lesser of CPI-U or 5%.

What happens when a parent's number is invalid or has not consented?

Contact points carry a validation state and a consent state separately, so a deliverable number that has not consented is distinguishable from a number that is simply dead. Be aware that unregistered A2P 10DLC traffic is filtered by carriers silently rather than rejected with an error, which is the most common invisible failure in school messaging.

One price. Every feature. Locked for three years.

$3.50 per student per year under 5,000 students. No tiers or add-on modules. Normal messaging is included under a published fair-use allowance, with transparent cost recovery only above it.