Cost model

District SMS cost calculator: what your texting actually costs

Districts budget for a platform and forget the messages. Then a bilingual community and a bad winter turn a line item into a conversation with the business office. This page publishes the whole model — every rate, every default, and the arithmetic in the open — so you can run it on your own numbers rather than trust a number we generated for you.

Last reviewed 2026-08-04 ยท Kastr is pre-launch; we publish dated status rather than logos.

Annual SMS cost model — five district profiles at 1¢ per segment, 1.8 guardians per student, 92% mobile-reachable, 35% of sends in accented Spanish
ProfileReachable contactsSends per contact per yearBillable segmentsAnnual SMS costIf everything were plain EnglishPer student
1,200 students, rural, light traffic1,98740135,130$1,351$795$1.13
4,800 students, suburban7,94960810,778$8,108$4,769$1.69
12,000 students, mixed urban19,872752,533,680$25,337$14,904$2.11
28,000 students, high-traffic46,368907,094,304$70,943$41,731$2.53
60,000 students, very high traffic99,36011018,580,320$185,803$109,296$3.10

This is a model worked from the stated assumptions, not a measurement of any district. Substitute your own rate and your own mix. The number worth noticing is the last column: at high volume in a bilingual district, message cost alone approaches the per-student platform fee, and in most budgets it is invisible.

The model, so you can rebuild it in a spreadsheet

There is no widget on this page, and we would rather say that than pretend otherwise. What is here is the model itself, which is more useful anyway, because a black-box calculator that will not show you its rates is how you end up with a number you cannot defend to a business official.

Six inputs, one line of arithmetic each:

  1. Reachable contacts = enrolment × guardians per student × mobile-reachable share. The defaults above are 1.8 and 92 per cent. Both are conservative planning assumptions rather than measurements; your student information system knows your real figures and you should use them.
  2. Annual message volume = reachable contacts × sends per contact per year. Count routine sends, attendance sends and emergency sends separately if their lengths differ much, then add them.
  3. Segments per message, which is where the money actually is. See the encoding section below.
  4. Billable segments = volume × weighted average segments per message.
  5. SMS cost = billable segments × your per-segment rate. We model at one cent as a deliberate upper bound; a negotiated aggregate rate is usually lower and you should put yours in.
  6. Add voice failover and programme fees, both covered below, then divide by enrolment for the per-student figure your board will ask for.

Encoding: why accented Spanish costs two to three times more

This is the part almost nobody in K-12 has published correctly, and getting it wrong costs real money.

SMS is encoded in one of two ways. GSM-7 fits 160 characters in a single message and 153 per part once a message is split. UCS-2 fits 70 characters in a single message and 67 per part. One character outside the GSM-7 set flips the entire message to UCS-2, and the length limit collapses by more than half.

The nuance that matters for US districts: the GSM 03.38 basic set does include ñ, à, è, é, ì, ò, ù, ü, ö, ä, ç, ¡ and ¿. It does not include á, í, ó or ú. So "mañana" is free and "días" is not. A correctly written Spanish school notice contains á and í constantly — "días", "información", "autónomo", "aquí" — so in practice every accurate Spanish message is UCS-2, and a 150-character message that was one segment in English becomes three.

Two further traps. The characters ^ { } [ ] ~ \ | and the euro sign occupy two GSM-7 positions each. And a curly apostrophe or an em dash pasted in from a word processor is outside GSM-7 entirely, which means one invisible typographic character can triple the cost of a district-wide send.

Do not solve this by stripping the accents. It is the obvious lever and it is the wrong one. "Ano" and "año" are different words, and a district that sends unaccented Spanish to save money is publishing a message that reads as careless to the exact families it most needs to reach. Budget for UCS-2 instead, and spend the saving somewhere it does not show.

A real message corpus, already counted

So you can sanity-check the model against your own traffic, here are twelve message types districts actually send, at realistic lengths, with segment counts in both languages.

Twelve district message types — characters and segments, English versus accented US Spanish
Message typeEnglish charsEnglish segmentsSpanish charsSpanish segmentsCost multiple
Same-day absence notice118113933.0×
Two-hour delay96111222.0×
Full closure announcement147116833.0×
Early dismissal134115833.0×
Negative lunch balance152117633.0×
Attendance nudge141116333.0×
Immunisation deadline158118433.0×
Testing window reminder124114533.0×
Bus delay88110322.0×
Lockdown all-clear166219131.5×
Conference sign-up172219831.5×
Enrolment verification203223642.0×

Character counts are typical drafted lengths for each message type, not averages measured from any district's traffic. Segment counts follow directly from those lengths under GSM-7 and UCS-2 rules, so you can verify every row yourself with a character counter.

Voice failover, and the line item everyone forgets

When a text cannot be delivered — a landline in the contact record, a disconnected mobile, a carrier rejection — a serious platform escalates to a voice call rather than recording a silent failure. That escalation has its own economics and it is almost never in the budget.

Model it as: undeliverable share × message volume × per-attempt cost, then multiply by your retry policy. Voice is typically billed per minute with a minimum increment, so a 25-second closure announcement usually bills as a full minute, and a call that reaches an answering machine bills too. Districts with older contact data and a lot of landlines see this line grow considerably faster than the SMS line.

Kastr's dispatch worker fails SMS over to voice automatically on terminal failure and records the linkage between the two attempts, so the voice call is visible in the log as a failover from a specific message rather than as an unexplained call. Quiet hours default to 21:00–07:00 and are bypassed only for a send explicitly flagged as an emergency.

10DLC and programme fees, sized for a district

Sending application-to-person text messages to US mobile numbers on standard ten-digit numbers requires registration under the carriers' 10DLC framework: a brand registration, a campaign registration, and ongoing carrier pass-through fees per message on top of your aggregator rate. Toll-free messaging has an equivalent verification process with different economics.

The fee schedule is set by the carriers and changes, so we publish a dated rate card rather than embedding numbers in prose that will rot. Three things about it are stable enough to plan around:

  • Registration takes weeks, not days. Two to six is a realistic planning range. A district that switches platforms in August without starting registration in June will have a platform and no throughput.
  • Getting the campaign classification wrong is expensive twice — in filtered messages that never arrive, and in re-registration.
  • Carrier pass-through is per message segment, so everything the encoding section says about accented Spanish applies to these fees as well, not just to your aggregator rate.

Kastr's own position: our 10DLC brand and campaign registration is not complete, which is a real constraint on how quickly we can carry volume for a launch partner and one we would rather state here than discover with you in September.

Questions people actually ask

Why does a Spanish text message cost two to three times more than the same message in English?

Because of character encoding, not translation. A message containing only GSM-7 characters fits 160 characters per segment. A single character outside that set forces the whole message into UCS-2 at 70 characters per segment. The GSM-7 set includes ñ but not á, í, ó or ú, and correctly written Spanish uses those constantly, so an accurate Spanish notice of ordinary length routinely costs three segments where the English one cost one.

How many SMS segments is a typical attendance or school-closure message?

A well-written closure or attendance message in plain English runs 120 to 160 characters and fits in one segment. The same message in correctly accented Spanish typically runs 140 to 190 characters in UCS-2 and takes three. The message corpus table on this page has twelve worked examples so you can compare against your own drafts.

What does it cost to text every family in a 10,000-student district once a week for a year?

Work it through the model: roughly 16,600 reachable contacts at 1.8 guardians per student and 92 per cent mobile reachability, times 40 weekly sends, is about 663,000 messages. At a 35 per cent accented-Spanish mix that is roughly 1.13 million billable segments, or about $11,300 a year at one cent per segment. In plain English throughout it would be about $6,600. Substitute your own negotiated rate, which is probably lower.

What are 10DLC fees and do school districts have to pay them?

10DLC is the carrier framework governing application-to-person texting from standard ten-digit US numbers. It requires brand and campaign registration and adds carrier pass-through fees per message segment on top of whatever your platform or aggregator charges. Districts are not exempt. Registration also takes two to six weeks, which is the part that catches out a summer platform migration.

How much does voice failover add when a text cannot be delivered?

Model it as your undeliverable share times your message volume times your per-attempt voice cost, multiplied by your retry policy. Voice bills per minute with a minimum increment, so a 25-second announcement usually bills as a full minute and answering-machine pickups bill too. Districts with a lot of landline contact records and older data see this line grow much faster than the SMS line.

Do you store the numbers I enter into this model?

There is nothing to enter. This page publishes the model and the rate assumptions as static tables rather than a form, so there is no input to capture, no email gate and no lead form. Copy the arithmetic into a spreadsheet and it never leaves your machine.

One price. Every feature. Locked for three years.

$3.50 per student per year under 5,000 students. No tiers, no add-on modules, no per-message fees. Published on the site because you should not have to book a call to learn a price.