Why 45/8 Is Not the Radio-Energy Ratio

Why 45/8 Is Not the Radio-Energy Ratio

Ada rebuilds the complete LoRaWAN frame before comparing transmit cost

foundations
math-foundations
calculation-audit
fundamentals
Ada ADA · CALCULATION AUDIT

Why 45/8 Is Not the Radio-Energy Ratio

A 45-byte JSON body is 5.625 times the size of an 8-byte binary body. But LoRa transmits a complete, symbol-rounded packet rather than application bytes in isolation. This audit rebuilds one declared LoRaWAN uplink and shows why byte ratio, transmit charge, energy, and battery life are four different claims.

Companion to the chapter Choosing an IoT Data Format — every number here comes from that chapter.

Try

A 45-byte JSON body is 5.625 times the size of an 8-byte binary body. Calculate this case.

Observe

But LoRa transmits a complete, symbol-rounded packet rather than application bytes in isolation. Check shows this.

Explain

Verdict: Smaller application bodies help, but calculate the complete frame. To turn charge into energy, multiply by supply voltage. To estimate battery life, also include receive windows, retries, sensing, MCU work, sleep current, conversion losses, and battery behaviour. Check confirms it.

See the relationship before changing it

The figure reads from left to right. The blue input is application body. The middle card names the page’s rule. The green output is full lorawan payload. The arrow matters: change the input, apply the rule once, then read the result with its unit.

Application Body changes full lorawan payload A three-part teaching diagram connects application body, the rule full payload = application body + 13 bytes of LoRaWAN fields, and full lorawan payload. INPUT Application body APPLY THE RULE predict calculate check units OUTPUT RESULT
Walk the arrow. Fixed protocol bytes stop body-size ratios becoming packet-size ratios.

Derive the baseline in four named moves

  1. 1

    Name the input. The chapter baseline is 8 bytes.

  2. 2

    Name the relationship. full payload = application body + 13 bytes of LoRaWAN fields

  3. 3

    Substitute with units. 8 + 13 = 21 bytes

  4. 4

    Read the result. Keep the unit beside the value, then use the result only inside the technical boundary below.

Predict, then change application body

Try Predict how full lorawan payload responds when application body moves. Calculate application body; compare full lorawan payload with that prediction.

8 bytes
Chapter baseline
Full LoRaWAN payload

Observe Return to 8 bytes. Recheck full lorawan payload with application body at its chapter value.

Explain Fixed protocol bytes stop body-size ratios becoming packet-size ratios.

Check yourself

What should you do before trusting a moved-slider result?
Answer: Predict its direction, apply the displayed relationship, keep the units, and compare the reset value with the chapter’s worked baseline.
What does this small model leave out?
Answer: Only application body moves here. The full lorawan payload calculation excludes field effects listed below.

Technical boundaries

The fixed inputs for “Why 45/8 Is Not the Radio-Energy Ratio” omit regional payload limits outside EU863-870 DR0, adaptive data rate, receive windows, retries, sensing and MCU work, regulator loss, sleep current, or battery ageing; “Why 45/8 Is Not the Radio-Energy Ratio” therefore reports only its named fixtures.

Ada: Start with a boundary. The application body carries only the layout version and four measurements. Stable device identity, session evidence, frame counter, port, and receive time arrive through the trusted ingestion path; they are not hidden inside these byte counts.

The three reproducible application bodies are 45 bytes of short-key JSON, 25 bytes of scaled-integer CBOR, and the 8-byte VineyardPayloadV1 contract. Now declare one radio profile instead of treating “LoRaWAN” as a single data rate.

RadioSF12, 125 kHz, coding rate 4/5
Packet settings8-symbol preamble, explicit header, CRC, low-data-rate optimisation
LoRaWAN caseEU863-870 DR0, unconfirmed uplink, no FOpts

Step 1: Count the complete packet

With no FOpts, this example has a minimum 13 bytes around the application body: MHDR 1 + FHDR 7 + FPort 1 + MIC 4. The application bytes are FRMPayload, not the complete radio payload.

Encoding Application body LoRaWAN overhead Full PHYPayload
Short-key JSON 45 B 13 B 58 B
Scaled-integer CBOR 25 B 13 B 38 B
VineyardPayloadV1 8 B 13 B 21 B

Step 2: Convert symbols to airtime

For this profile, one symbol lasts:

T_symbol = 2^12 / 125000 = 0.032768 s

The LoRa payload-symbol equation then applies headers, CRC, coding, low-data-rate optimisation, and ceiling-based symbol rounding to the full payload length. Here the coding-rate index is 1 for 4/5:

payload_symbols = 8 + ceil((8PL - 4SF + 28 + 16CRC - 20IH) / (4(SF - 2DE))) x (CR + 4)

Adding the programmed preamble plus 4.25 symbols gives these one-transmission times:

Encoding Payload symbols Total airtime
Short-key JSON 68 2.629632 s
Scaled-integer CBOR 48 1.974272 s
VineyardPayloadV1 33 1.482752 s

Step 3: Name the electrical quantity correctly

Assume this example device was measured at 44 mA while transmitting. Current multiplied by time gives charge, not energy:

TX charge (uAh) = 44 mA x airtime (s) x 1000 / 3600

Encoding Charge Rounded
Short-key JSON 32.139947 uAh 32.1 uAh
Scaled-integer CBOR 24.129991 uAh 24.1 uAh
VineyardPayloadV1 18.122524 uAh 18.1 uAh

The 8-byte contract therefore uses about 43.6% less transmit charge than the 45-byte JSON body and about 24.9% less than the 25-byte CBOR body. It does not use 5.625 times less charge. Fixed packet bytes and symbol rounding prevent the application-byte ratio from becoming the airtime ratio.

Verdict: Smaller application bodies help, but calculate the complete frame. To turn charge into energy, multiply by supply voltage. To estimate battery life, also include receive windows, retries, sensing, MCU work, sleep current, conversion losses, and battery behaviour.

Try the audit yourself: change one assumption – for example the data rate, FOpts length, or retry count – and recalculate all three rows. The byte counts stay fixed while the packet-cost ratios can change.

This is one bounded EU863-870 DR0 example, not a universal LoRaWAN payload limit or radio-current claim. Verify deployed settings with the selected regional parameters and radio calculator.