Home / 5G / Protocols / PHY / Transport Block Size and Resource Allocation

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
5G NR transport block size input chain showing allocation, usable resource elements, MCS, layers, and final TBS
A useful reading path is: allocation defines usable resource elements, then MCS and layers turn that usable area into a transport block.
5G NR resource allocation view showing BWP, PRB allocation, symbol allocation, and overhead regions
Resource allocation is always interpreted inside the active BWP, not across the full carrier by default.

Contents

  1. Overview
  2. How the TBS and allocation model works
  3. Allocation types and scheduling view
  4. What changes transport-block size
  5. Downlink and uplink reading
  6. Where TBS and allocation appear in real procedures
  7. Troubleshooting
  8. References
  9. FAQ

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.

  • Frequency-domain allocation decides which PRBs are used.
  • Time-domain allocation decides which OFDM symbols are used.
  • TBS depends on usable resource elements after overhead, not on raw scheduled area alone.
  • The main scheduled channels are PDSCH and PUSCH.

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.

Related PHY topics and tools