Budgeting Telemetry Payloads When the Plan Is Sold in Kilobits
A device on a low-power wide-area network lives inside two ceilings at once. The radio side is quoted in kilobits: link budgets, air-time calculators and cellular IoT tariffs all count bits. The firmware side counts bytes, because that is what a payload buffer, a struct and a regional payload cap are measured in. Getting a fleet through a year on the data allowance you bought means moving fluently between the two, one message at a time.
KB = Kb ÷ 8. A full 222-byte uplink is 1.776 Kb, which comes back as 1.776 ÷ 8 = 0.222 KB.The Payload Ceiling Moves With the Spreading Factor
Duty Cycle Limits Time, Not Bytes
Encoding Is a Budget Decision
Cellular IoT Bills Small Numbers
Sizing One Device, One Message at a Time
Enter the Per-Message Figure in Kb
Take the kilobit value from your link budget, air-time calculator or tariff sheet and type it into the Kb field. Spaces are ignored and a comma works as a decimal point, which matters here because the values are small and fractional.
Read the Payload in KB
The KB field answers immediately, which is the number to compare against the regional payload cap your firmware has to respect — 0.051 KB at SF12, 0.222 KB at SF7.
Scale It to a Day and a Month
Multiply the per-message KB by the reporting frequency to get a daily figure, then by 30 for the monthly one. The copy button hands you the bare number for each step, so nothing gets retyped into the spreadsheet incorrectly.
Reverse It to Face the Tariff
Firmware gives you bytes; the contract is written in bits. One press of the swap button turns the page into a KB → Kb converter so a measured payload can be quoted back in the units the network operator uses.
Payload Budgets Across LPWAN and Cellular IoT
Each row is one realistic uplink, converted from bits to bytes and then multiplied out to a daily figure. The two middle rows are the same sensor reading serialised two ways — the only difference between them is the wire format, and it doubles the traffic.
| Uplink | Bytes | Kb / message | KB / message | Messages / day | KB / day |
|---|---|---|---|---|---|
| LoRaWAN SF12 status ping | 12 | 0.096 | 0.012 | 24 | 0.288 |
| CBOR sensor frame | 24 | 0.192 | 0.024 | 144 | 3.456 |
| Same reading as JSON | 58 | 0.464 | 0.058 | 144 | 8.352 |
| SF10 payload at the regional cap | 51 | 0.408 | 0.051 | 96 | 4.896 |
| NB-IoT CoAP report | 100 | 0.8 | 0.1 | 288 | 28.8 |
| LoRaWAN SF7 full payload | 222 | 1.776 | 0.222 | 48 | 10.656 |
Over thirty days the CBOR frame costs about 103.68 KB per device while the JSON version costs 250.56 KB — across a fleet of ten thousand nodes that difference is the whole argument for a binary encoding.
Useful on a Constrained Link
Small Payloads Keep Their Digits
Telemetry values live in the third and fourth decimal place. Output runs to eight decimals and only drops into scientific notation below a millionth, so a 12-byte ping does not round away to zero.
Bit Units and Byte Units in One Menu
Both searchable dropdowns list bit units alongside byte units, so a payload can be traced from bits to bytes and on to the megabyte-scale monthly total without changing pages.
Numbers That Paste Into a Budget Sheet
Copying a field returns the digits alone, with no unit and no grouping, ready for the cell where you are multiplying by messages per day and device count.
Fast Enough to Compare Options
Both fields recalculate as you type, which makes it quick to test a shorter reporting interval or a tighter payload against the same allowance before committing the firmware change.
Field Questions About Payload Budgets
Why is the LoRaWAN payload limit quoted in bytes while the data plan is sold in kilobits?
They come from different worlds. The payload cap is a firmware constraint — it describes a buffer the device has to fit a struct into, and buffers are counted in bytes. The tariff is a network constraint, and radio networks have always been metered in bits. Nothing is inconsistent; the two figures simply need the factor of eight applied before they can be compared.
Does the spreading factor change how much a device can send?
Substantially. In EU868 the maximum application payload is around 222 bytes at SF7 and SF8, about 115 bytes at SF9, and 51 bytes from SF10 down to SF12. A node that moves to a slower data rate to hold its link loses payload room at the same time, so any message format that only just fits at SF7 will start being truncated or split when conditions worsen.
Does the duty cycle limit cap how many kilobits a device can send per hour?
Indirectly, and often more tightly than the payload cap. The rule limits transmit time per sub-band per hour, not data volume, so what you can send depends on how long each message occupies the air. At a slow spreading factor a small payload can take well over a second, and a 1% allowance is used up after a handful of uplinks — which is why fleet planning starts from air time and only then converts to kilobits.
How much smaller does a CBOR frame get compared with the same JSON reading?
Commonly 40–60% for typical telemetry, and more when the schema has long, repetitive key names. JSON spends bytes on quotes, braces, commas and on rendering every number as text; CBOR stores the same values as typed binary with short keys. The 24-byte and 58-byte rows in the table above are a fair example of the gap for a small multi-field reading.
What monthly figure should I budget for one device?
Start from payload bytes per message, convert to KB, multiply by messages per day and by 30 — then add headroom. A device sending a 100-byte CoAP report every five minutes needs 28.8 KB a day, about 864 KB a month of application payload. Real consumption is higher because protocol headers, retransmissions, session setup and any keep-alives sit on top, so a two- or three-times margin over the payload figure is the safe assumption.
No comments yet. Be the first to comment!