Home / 5G / Protocols / PHY / MCS Tables

5G NR MCS Tables

MCS in 5G NR is the modulation and coding scheme selected for a scheduled PDSCH or PUSCH transmission. The MCS index points to an active table entry that determines modulation order and coding efficiency for the transport block.

Read this topic as the efficiency layer of scheduling. The scheduler first chooses resources, then the MCS decides how aggressively those resources are used. That is why MCS belongs together with Transport Block Size and Resource Allocation, Link Adaptation, and HARQ.

Technology 5G NR
Scope MCS table families and MCS-index interpretation for PDSCH and PUSCH
Main specs 3GPP TS 38.214, 38.212, 38.213, 38.331
Release Release 18
Main concepts MCS index, modulation order, target coding rate, spectral efficiency, 256QAM, transform precoding
Main channels PDSCH and PUSCH
Why it matters MCS directly affects payload efficiency, BLER pressure, throughput, retransmission rate, and scheduler behavior
5G NR MCS selection map showing MCS index, active table family, modulation order, coding efficiency, and resulting transport efficiency
The same raw MCS index is meaningful only together with the active MCS table family.
5G NR MCS to TBS flow showing scheduling assignment, active MCS table, modulation and coding choice, and resulting transport-block size
MCS does not stand alone. It changes transport-block size only after allocation and overhead are already known.

Contents

  1. Overview
  2. How the MCS model works
  3. MCS table families
  4. Selection and signaling
  5. MCS and transport-block size
  6. Downlink and uplink reading
  7. Troubleshooting
  8. References
  9. FAQ

Overview

MCS is the scheduler’s main payload-efficiency setting for shared data transmission. It decides how many bits each scheduled resource can carry and how much coding protection is applied.

  • MCS combines modulation order and coding efficiency.
  • The same index does not have meaning without the active MCS table family.
  • MCS is used together with resource allocation and layer count to determine final transport size.
  • Higher MCS can increase payload efficiency, but it also increases BLER pressure if radio conditions are weak.

Quick interpretation

Role Choose transport efficiency for scheduled shared-channel transmission
Main channels PDSCH and PUSCH
Core fields MCS index, active MCS table family, modulation order, target coding rate, spectral-efficiency view
Main dependencies Channel type, RRC configuration, DCI scheduling, transform-precoding context, and higher-order modulation support
Main outcome Transport efficiency, TBS, BLER pressure, retransmission risk, and practical throughput

How the MCS model works

An MCS entry is a compact way to choose modulation order and coding efficiency together. The scheduler signals an MCS index in DCI, and the UE interprets that index using the active MCS table family for the current scheduled transmission.

active MCS table + I_MCS -> modulation order + coding efficiency -> spectral efficiency -> final TBS after allocation and overhead
Element Meaning Why it matters
MCS index The raw signaled index value for the scheduled transmission It is only meaningful after the correct table family is known
Modulation order The number of bits carried per modulation symbol Higher modulation can increase throughput but also raises radio-quality demands
Target coding rate The coding-efficiency point paired with the modulation order Higher coding efficiency increases payload share but leaves less protection margin
Spectral-efficiency view The combined efficiency implied by modulation and coding Useful when comparing payload efficiency across different MCS values
Active table family The table set selected by channel type and configuration The same index can map to a different efficiency point when the table family changes

This is why a high MCS is not automatically good. If the radio path cannot sustain it, the visible result may be more HARQ retransmissions and lower delivered goodput even though the signaled efficiency looks higher.

MCS table families

NR uses several MCS table families rather than one universal table. Which family applies depends on whether the scheduled channel is downlink or uplink, whether higher-order modulation is enabled, and in uplink also whether transform precoding is in use.

Table family Main use Reading notes
PDSCH standard table family Normal downlink shared-data scheduling Use as the default downlink reading path unless higher-order modulation or an alternate family is configured
PDSCH higher-order modulation family Downlink scheduling with 256QAM-capable operation Higher payload efficiency becomes possible, but only with the right capability and configuration context
PDSCH low-SE family Downlink cases that need lower spectral-efficiency points Useful when the scheduler needs more conservative transport efficiency than the default family provides
PUSCH standard table family Normal uplink shared-data scheduling Use as the default uplink reading path unless transform-precoding or alternate higher-order modulation conditions apply
PUSCH higher-order modulation family Uplink scheduling with 256QAM-capable operation Read together with uplink capability, Power Control, and radio quality
PUSCH low-SE family Uplink cases needing lower spectral-efficiency points Useful at weaker radio conditions or more conservative scheduling points
Transform-precoding family Specific uplink transmission contexts with Transform Precoding Do not read these cases using the same assumptions as ordinary CP-OFDM uplink scheduling

Downlink MCS families

For PDSCH, the main split is between the default table family, the higher-order modulation family when 256QAM operation is enabled, and a lower spectral-efficiency family for more conservative scheduling points. The important reading rule is to confirm which family is active before deciding what a raw MCS index means.

Uplink MCS families

For PUSCH, the same broad logic exists, but the uplink path also needs to be read with Power Control and Transform Precoding. A high uplink MCS can look plausible in signaling but still be unsustainable once power limitation and channel conditions are included.

Selection and signaling

The active MCS value is signaled per scheduled transmission, but the meaning of that value depends on the configured table family and current transmission context. Read MCS in two layers: which table family is active, and which raw index inside that family was signaled.

Input Where it comes from What to check
Table family selection RRC configuration and transmission context Check whether higher-order modulation or alternate family selection is enabled for the channel
MCS index DCI scheduling assignment Check the raw index only after the correct family is confirmed
Channel type Current scheduled transmission Do not read a PDSCH MCS using a PUSCH assumption or vice versa
Transform-precoding context Uplink waveform configuration Check whether the uplink case uses a transform-precoding-specific family
Radio and capability context Current link conditions and UE support A configured table family may exist, but practical use still depends on capability and radio conditions

A common mistake is to decode only the raw MCS field from DCI and skip the table-family selection step. That can make the same signaled index look higher or lower than it really is.

MCS and transport-block size

MCS affects transport-block size by setting modulation order and coding efficiency after the scheduler already knows the allocated PRBs, symbol count, and overhead. This is why MCS belongs together with Transport Block Size and Resource Allocation.

Change What usually happens
Higher MCS with same allocation TBS usually increases, but BLER pressure also increases
Lower MCS with same allocation TBS usually decreases, but the transmission becomes more robust
Higher MCS plus heavy retransmissions Nominal payload efficiency rises, but delivered goodput may fall
Same MCS with more overhead TBS can still drop because fewer usable resource elements remain
Same MCS with more layers TBS can increase if the channel supports the added layers

This is also why throughput should not be judged from MCS alone. A high MCS with few scheduled resources, low layer count, or frequent HARQ retransmissions can still produce lower delivered throughput than a more moderate MCS with better stability.

Downlink and uplink reading

The same MCS concept applies to both downlink and uplink shared channels, but the interpretation should still follow the active channel path.

Area Downlink view Uplink view
Main channel PDSCH PUSCH
Main path to MCS PDCCH downlink assignment PDCCH uplink grant or configured-grant context
Main practical limit Decode quality, layer support, retransmission pressure Decode quality, power limitation, transform-precoding context, retransmission pressure
Common reading mistake Assuming a high downlink MCS always means strong delivered throughput Assuming a high uplink MCS is sustainable without checking coverage and power headroom

Troubleshooting

Start with the active table family, then check whether the selected MCS was sustainable for the actual radio conditions and scheduling context. Many MCS-related misunderstandings come from reading the raw index correctly but the surrounding context incorrectly.

Symptom What to inspect first
High MCS but low goodput HARQ retransmissions, allocation size, layer count, and scheduling frequency
Raw MCS field seems inconsistent with modulation Active table family and whether the transmission is downlink or uplink
Uplink MCS swings sharply Power Control, transform-precoding context, and cell-edge radio conditions
Large allocation but low TBS TBS inputs, overhead, lower coding efficiency, and layer count
Frequent conservative MCS on an otherwise healthy cell Link Adaptation, measurement quality, and whether CSI or sounding is weak

Common mistakes

  • reading the MCS index without confirming the active table family
  • equating higher MCS with better throughput without checking retransmissions
  • ignoring uplink power limitation when reading PUSCH MCS
  • comparing downlink and uplink MCS as if they use identical practical constraints
  • treating MCS alone as the reason for payload size without checking allocation and overhead

References

FAQ

What is MCS in 5G NR?

It is the modulation and coding scheme used for a scheduled PDSCH or PUSCH transmission.

Does the same MCS table apply to all NR shared-channel transmissions?

No. The active table family depends on the channel type and configuration context, including higher-order modulation and in uplink also transform precoding.

Why can the same MCS index mean different things?

Because the same raw index is interpreted inside the active MCS table family, and different families map the index to different efficiency points.

Does a higher MCS always increase delivered throughput?

Not always. It can increase transport efficiency, but if the radio path cannot sustain it, retransmissions can reduce delivered goodput.

What should I check first when a high MCS does not produce high throughput?

Check allocation size, overhead, layers, retransmissions, and whether the chosen MCS was actually sustainable for current radio conditions.

Related PHY topics and tools