Each send records a billable quantity, a rate-card key, a direction and a snapshotted per-unit price. That means SMS is counted by segment (including the drop to shorter segments when a message contains an emoji or curly quote), inbound texts are counted at all, and calls are counted by minute.
Also called: long text costs more · emoji in a text · sms segments · call minutes · under-billing
- 1units, unit_kind, direction, retail_usd and billed_at live on every send row.
- 2retail_usd snapshots the tenant's rate at the moment of sending.
- 3Existing email rows were backfilled to one unit against the email rate so they price identically to before.
- 4Rows that predate snapshotting keep a null price and continue to be priced from the rate card.
Every metering error ran in the same direction. A 300-character text costs two segments and was billed as one; a 200-character text with a single emoji in it costs three; inbound texts cost money and were never recorded at all; calls are billed by the minute and no duration was being stored. Usage now records what the carrier actually counts — segments, direction, call duration — and the rate is stamped onto each record as it is written, because re-pricing old usage at today's rates would rewrite an invoice that has already been paid and make an ordinary rate change look like fraud on the next statement.
- Long or emoji-containing texts counted as one unit.
- Inbound texts not metered at all.
- Historical usage re-priced by a later rate change.
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →