5G NR Transport Block Size and Resource Allocation
Transport block size in 5G NR is the payload size assigned to a scheduled PDSCH or PUSCH transmission after the network decides the usable time-frequency resources and the coding efficiency for that transmission.
Read this topic as the bridge between scheduling and throughput. A resource allocation defines how many PRBs and OFDM symbols are available inside the active BWP, while TBS determines how much payload can actually fit after overhead from DMRS, optional PTRS, and other reserved resource elements is removed.
| Technology | 5G NR |
|---|---|
| Scope | Scheduled resource allocation and transport-block sizing for PDSCH and PUSCH |
| Main specs | 3GPP TS 38.214, 38.213, 38.212, 38.331 |
| Release | Release 18 |
| Main concepts | PRB allocation, time-domain allocation, MCS, layers, NRE, xOverhead, TB scaling, allocation type 0 and type 1 |
| Main channels | PDSCH and PUSCH |
| Why it matters | Transport size and allocated resources directly shape throughput, latency, BLER pressure, and practical scheduling efficiency |
Contents
Overview
Resource allocation answers where and when a scheduled shared-channel transmission will appear. Transport block size answers how much payload can be carried by that allocation.
Quick interpretation
| Role | Turn scheduled time-frequency resources into a payload size for shared-channel transmission |
|---|---|
| Main channels | PDSCH and PUSCH |
| Main inputs | PRB count, symbol count, MCS, number of layers, overhead assumptions, TB scaling, and active BWP context |
| Main location | Scheduling and data procedures centered on DCI, PDSCH, and PUSCH |
| Main outcome | Expected payload size and transport efficiency for each scheduled transmission |
How the TBS and allocation model works
The scheduler first decides a time-frequency allocation. That gives a candidate transmission area inside the active BWP. The usable part of that area is then reduced by overhead such as DMRS, optional PTRS, and reserved resources. After that, modulation order, target coding rate, and layer count determine the final transport-block size.
DCI scheduling -> PRB allocation + symbol allocation -> usable RE calculation -> MCS and layers -> final TBS -> coding and transmission | Step | Meaning | What to read |
|---|---|---|
| 1. Allocation | Select frequency and time resources | Read PRB allocation, symbol allocation, and the active BWP |
| 2. Usable RE count | Remove overhead from the scheduled area | Check DMRS, PTRS, reserved RE assumptions, and xOverhead |
| 3. Spectral efficiency input | Apply modulation order and coding rate from MCS | Read the selected MCS and the relevant MCS table |
| 4. Layer multiplication | Expand payload across one or more layers | Check the number of transmission layers and whether the channel can sustain them |
| 5. Final sizing | Map the result into a valid transport-block size | Check TB scaling, small-TB cases, and whether the resulting value matches the scheduler expectation |
This is why two transmissions with the same PRB count can still produce different transport-block sizes. If the symbol count changes, the DMRS pattern changes, the MCS changes, or the layer count changes, the final TBS changes too.
Allocation types and scheduling view
NR resource allocation must be read in both frequency and time domains. The control signaling gives a compact description, and the UE expands that into real resources on the grid.
Frequency-domain allocation
Frequency allocation determines which physical resource blocks are used inside the active BWP. For scheduled shared channels, the main allocation styles are the resource-allocation approaches commonly called type 0 and type 1. Open Resource Blocks and Resource Allocation Types for the deeper RB-focused page.
| Frequency allocation view | Meaning | Reading notes |
|---|---|---|
| Type 0 | Group-based allocation using resource block groups | Read the mapping through RBG structure rather than assuming a direct contiguous PRB range |
| Type 1 | Contiguous PRB-oriented allocation | Usually easier to read in traces because it maps more directly to a start and length view |
| Dynamic switch context | Scheduler can choose allocation interpretation depending on configuration and DCI context | Always check the active configuration before decoding the raw field |
Time-domain allocation
Time-domain allocation determines how many OFDM symbols carry the scheduled transmission and where the transmission starts in the slot. Read it together with Frame Structure, Numerology, and in downlink also with PDSCH mapping type.
| Time-domain element | Why it matters |
|---|---|
| Start symbol | Changes which part of the slot carries data and how much room remains for control or reference signals |
| Number of symbols | Directly changes the data-bearing area and therefore the TBS |
| Mapping type or uplink time-domain resource | Changes which overhead pattern applies and how to interpret the resource assignment |
| TDD timing context | Some symbol locations may be affected by DL/UL direction constraints in TDD |
What changes transport-block size
TBS is not a direct lookup from PRB count alone. Several inputs can change the final result even when the scheduled area looks similar at first glance.
| Input | Why it changes TBS | Common reading mistake |
|---|---|---|
| Allocated PRBs | More PRBs usually increase usable RE count | Assuming PRB count alone is enough |
| Allocated symbols | More symbols increase the scheduled area | Ignoring symbol count when comparing two transmissions |
| Usable RE per PRB | Overhead reduces the payload-carrying part of each PRB | Using raw 12-subcarrier by symbol counts without subtracting overhead |
| MCS | Changes modulation order and target coding rate | Comparing TBS values without checking MCS changes |
| Number of layers | More layers can increase the transport size | Ignoring layer count when comparing throughput across radio conditions |
xOverhead | Reserves extra resource elements in TBS calculation | Forgetting that the configured overhead assumption changes usable RE count |
| TB scaling | Adjusts the effective size in certain scheduling contexts | Treating every allocation as a full-scale payload case |
Usable resource elements
The number of usable resource elements is one of the most important TBS inputs. Start with the scheduled PRBs and symbols, then remove the parts consumed by DMRS, optional PTRS, and any reserved resource elements. That is the number that matters for payload.
MCS and spectral efficiency
Once the usable data area is known, the scheduler applies modulation order and target coding rate through the selected MCS. A lower MCS can shrink TBS even when the allocation stays unchanged. A higher MCS can enlarge it, but only if radio conditions support the more aggressive setting.
Layers and transmission mode
More layers can raise the transport size for both PDSCH and PUSCH. In practice, this means two transmissions with the same frequency and time allocation can still carry different payloads if the layer count differs.
Downlink and uplink reading
The same overall transport-block logic applies to downlink and uplink, but the procedure context is not the same. Downlink TBS is usually read from a PDCCH assignment that leads to PDSCH. Uplink TBS is read from an uplink grant or configured-grant context that leads to PUSCH.
| Area | Downlink view | Uplink view |
|---|---|---|
| Main physical channel | PDSCH | PUSCH |
| Scheduling path | PDCCH downlink assignment | PDCCH uplink grant or configured-grant behavior |
| Main overhead checks | DMRS, optional PTRS, mapping type, reserved REs | DMRS, optional PTRS, transform-precoding context, reserved REs |
| Common practical limit | Control overhead, retransmissions, and layer limitations | Power limitation, retransmissions, and layer or waveform limitations |
For downlink, read TBS together with PDSCH mapping type and retransmission behavior. For uplink, read it with PUSCH, Power Control, and Transform Precoding.
Where TBS and allocation appear in real procedures
| Procedure area | Why TBS and allocation matter |
|---|---|
| Downlink data transfer | Payload size and scheduled area directly shape achievable PDSCH throughput |
| Uplink data transfer | Grant size and usable RE count directly shape achievable PUSCH throughput |
| HARQ behavior | Repeated retransmissions can make an apparently large allocation deliver far less goodput than expected |
| Link adaptation | MCS changes can alter TBS even if scheduled PRBs stay similar |
| BWP changes | The same raw allocation fields can map differently after an active-BWP change |
Troubleshooting
Start with the actual scheduled area, then check how much of that area remained usable for payload. Many TBS misunderstandings come from reading the control allocation but ignoring overhead or active-BWP context.
| Symptom | What to inspect first |
|---|---|
| TBS lower than expected for a large allocation | Symbol count, DMRS and PTRS overhead, reserved REs, MCS, and layer count |
| Same PRB count but different payload sizes | Time-domain allocation, MCS, layers, xOverhead, and active BWP interpretation |
| Throughput lower than nominal TBS suggests | HARQ retransmissions, grant frequency, scheduling gaps, and control overhead |
| Uplink transport smaller than expected | Power Control, transform-precoding context, MCS pressure, and uplink grant size |
| Field decode does not match visible grid usage | Allocation type interpretation, BWP context, DCI format, and current numerology |
Common mistakes
- treating raw PRB count as the same thing as transport-block size
- ignoring time-domain allocation and counting only bandwidth
- forgetting that DMRS, PTRS, and reserved REs reduce payload space
- comparing two TBS values without checking layer count or MCS
- reading allocation fields without confirming the active BWP and allocation type
References
- 3GPP TS 38.214 Release 18 - physical-layer data procedures including resource allocation and transport-block sizing for scheduled shared channels
- 3GPP TS 38.213 Release 18 - physical-layer control procedures including scheduling context that shapes resource allocation interpretation
- 3GPP TS 38.331 Release 18 - RRC configuration for BWP, time-domain allocation lists, and other scheduling-related parameters
- 3GPP TS 38.212 Release 18 - shared-channel coding chain that follows the final transport-block sizing decision
FAQ
What is transport block size in 5G NR?
It is the payload size assigned to a scheduled PDSCH or PUSCH transmission after resource allocation and payload-efficiency assumptions are applied.
Is TBS determined only by the number of PRBs?
No. TBS also depends on symbol count, overhead, MCS, layer count, and the active BWP context.
Why can the same PRB count give different transport sizes?
Because the scheduled symbol count, overhead pattern, modulation and coding assumptions, or number of layers may be different.
Why does overhead matter so much in TBS reading?
Because payload is carried only on usable resource elements. Reference signals and reserved elements reduce the part of the allocation that can actually carry the transport block.
What should I check first when throughput looks too low?
Check allocation size, symbol duration, MCS, layers, overhead, retransmissions, and whether the scheduler is granting resources as often as expected.