| KPI | Formula | Source |
|---|---|---|
| Cell MAC DL Effective Throughput (kbps) | (AirMacByteDl × 8) ÷ AirMacTtiDl × 1000 | workbook, verbatim — bytes over scheduled TTIs only (that's what "effective" means) |
| Cell MAC UL Effective Throughput (kbps) | (AirMacByteUl × 8) ÷ AirMacTtiUl × 1000 | workbook, verbatim |
| Peak throughput (Mbps) | RBs × 12 × 14 × bits/symbol × code-rate × MIMO-layers × 1000 ÷ 10⁶ | deck, verbatim — then × efficiency factor 0.7–0.9 |
| The RB table | 1.4 MHz = 6 · 3 MHz = 15 · 5 MHz = 25 · 20 MHz = 100 RBs; QPSK 2 · 16QAM 4 · 64QAM 6 · 256QAM 8 bits/symbol; code rate 0.076–0.948 | deck, verbatim |
AirMacDLThruAvg divides by wall-clock; AirMacDLEfctivThruAvg divides by TTIs actually scheduled. A cell with low average but high effective throughput isn't slow — it's idle. Always read the pair before diagnosing.One table per direction in the deck; condensed here. The rule: compare adjacent layers — a healthy stack loses almost nothing between rungs. The first big gap names the layer, the layer names the fix:
| Rung | Counters (verbatim) | A gap below this rung means… |
|---|---|---|
| 1 · GTP (S1-U in) | ThruGtpDLEnbS1Nor/Tot/Cnt · ByteGtpDLEnbS1Nor · CntGtpDLEnbS1Nor | Nothing below — this is what the core delivers. Low here = backhaul/core/S-GW, not radio |
| 2 · PDCP | PdcpIpThroughputDL · PdcpVolDlByte · PdcpTimeDl · PdcpSduBitrateDLAvg/Tot/Cnt | GTP→PDCP gap = traffic control / buffering (CellTcDLDrop*, Fam 322) or PDCP discard (discard-timer) |
| 3 · RLC | AirRlcDLByte · AirRlcDLThru · AirRlcDLByteRe (retransmitted!) | PDCP→RLC gap = RLC buffer; high ByteRe share = the air is eating retransmissions (go to CQI/BLER) |
| 4 · MAC (air) | AirMacDLByte · AirMacDLThruAvg · AirMacDLEfctivThruAvg · AirMacDLTti | RLC→MAC gap = scheduler starvation (PRB, PDCCH/CCE) — the capacity levers live here |
| 5 · IP per QCI | EnbQciDLByte · EnbQciDLThru/Max/Min · PacketDLCnt | The per-service truth — one QCI starving while the cell is fine = QoS weights, not capacity |
| Set | Counters (verbatim) | How to read it |
|---|---|---|
| PRB (54/55) | TotPrbDLAvg/Min/Max · TotGbrPrbDLAvg · TotNGbrPrbDLAvg · PrbDLAvg (per QCI) · UsedPrbDLNum · AvailablePrbDLNum + UL twins (UsedPrbPUSCHNum…) | The load axis: <20% idle · 20–70% RF-quality territory · >70% congestion · >90% severe (the NR deck's bands apply here too) |
| CQI (50, + 238/239 per P/SCell, 419 for 256QAM) | DLReceivedCQI0…CQI15 · DLReceivedCQIAvg/Min/Max | The quality histogram: mass below CQI-7 = RF work (interference/coverage), not parameters |
| MCS (62/63, 418 for 256QAM) | DL/UL MCS distribution counters | MCS ceiling vs CQI: good CQI + low MCS = link-adaptation or BLER-target too conservative |
| HARQ (deck tables) | DLTransmissionRetrans0…6 · DLResidualBlerRetrans0…6 · UL twins (…0…27) · DLVoLTEHARQFail/Succ/FailRate | The retransmission histogram: mass beyond Retrans1 = air quality; residual BLER at max = packet loss reaching RLC |
Enter the per-layer throughputs from the ladder counters plus the evidence; the localizer finds the biggest inter-layer gap, reads the evidence, and names the lever.
| Lever | Typical | Deck guidance |
|---|---|---|
| ca-available-type (ca-cell-info-func) | dl-and-ul / dl-only | "The fundamental enabling parameter" — verify licensing; ca-off = no CA, full stop |
| max-dl-ca-cc-num | 2…5 | Set to the highest supported — "a higher number of CCs directly translates to higher potential peak DL throughput"; ensure the backhaul can carry it |
| ca-operation-mode | mode-4 | "The most flexibility for SCell addition/activation based on need" — traffic + measurements |
| A4 SCell thresholds (a4-threshold-rsrp/rsrq, purpose=ca) | plan | "Make A4 less stringent if SCells are underutilized"; monitor Time-to-SCell-Add and SCell utilization % |
| Evidence families | — | 233 CA_UE_CAPABILITY (who can) · 235/270 ACT_DEACT/ADD_REL (what happened) · 335 CA_UE_PER_CC_NUM (how many CCs) · 237/239 SCell MAC bytes/CQI (what it yielded) · 492 CA_PDCP_PACKET · 936 PCC_FOR_CA |
| Parameter | Battery | Latency | Balanced (deck starting point) |
|---|---|---|---|
| on-duration-timer-normal | psf4 | psf10 | psf6–psf8 — "long enough to reliably decode PDCCH" |
| drx-inactivity-timer-normal | psf10 | psf100 | psf20–psf40 — "crucial for latency/throughput perception… improves page load times" |
| long-drx-cycle | sf1280 | sf320 | sf640/sf1280 — the compromise |
| short-drx-config-setup | enable both | enable — "better responsiveness… while still saving power" | |
IP_LATENCY (Fam 35) and PDCP_DELAY (36) — plus the DL/UL IP throughput distributions (Fams 345/346) for the user-experience histogram.| Group | Key levers | Direction |
|---|---|---|
| Link adaptation | dl-target-bler ~10% (VoLTE 1–5%) · cqi-filtering-coeff (responsiveness vs stability) · CQI correction (ME3205) · aperiodic CQI (ME3203) | MCS honesty — the CQI→MCS chain |
| HARQ | dl-max-harq-transmission 3→4 · max-harq-tx n4→n5 | Depth vs latency (shared with retainability — the drop view lives there) |
| UL power | p0-nominal-pusch +2–3 dB edge · alpha 0.8↔1.0 · tti-bundling for edge VoLTE | UL SINR at the edge — UL ladder rung 4 |
| Scheduler / PDCCH | Frequency-selective scheduling (ME3306) · PF weights · CCE/PDCCH capacity (deck PDCCH chapter) · SCHE_UE_NUMBER (438) as the evidence | RLC→MAC gap killers |
| Buffers / BSR | periodic-bsr-timer sf640→sf320 · retx-bsr-timer | UL grant latency at talk-spurt/burst start |
| Load balancing | The full MLB stack — on the mobility page (equal-threshold/delta, idle steering) — throughput's biggest lever is often moving the load | cross-page |
Walk the ladder
All five rungs, both directions, busy hour. Find the biggest adjacent-layer gap — that's the working layer. Read effective vs average MAC first (idle ≠ slow).
GTP → PDCP → RLC → MAC → IP Skip this and you tune radio for a backhaul problem.Read the four evidence sets in order
PRB (load) → CQI (air quality) → MCS (is the scheduler using it) → HARQ histogram (is it surviving). The combination names the branch.
PRB · CQI · MCS · HARQ If wrong: 256QAM on a CQI-5 cell.Branch by the PRB bands
<20%: is the requirement even unmet? · 20–70% + low thpt: RF quality work · >70%: scheduler/capacity · >90%: congestion pack + MLB (mobility page).
the PRB decision bands If wrong: capacity spend on an interference problem.Audit the multipliers
CA chain: capable→configured→activated→used (find the biggest loss). MIMO: rank usage vs capability (Fam 61/357). 256QAM: CQI table support (418/419).
CA/MIMO/QAM audit chains If wrong: peak features idle while the basics starve.Apply ONE lever
RF branch: interference/tilt + link adaptation. Scheduler branch: ME3306/PF/PDCCH. Congestion: MLB + CAC + congestion MCS. Perception: the DRX triangle.
one lever per soak If wrong: unattributable results.Verify on the ladder + guards
The gap must close where you worked; QCI-1 HARQ (VoLTE) held; drops (retainability page) and HO SR (mobility page) untouched; per-QCI IP view (rung 5) confirms users felt it.
same hour, ladder before/after If wrong: a MAC gain that PDCP discards is invisible to users.LTE throughput is a ladder walk, four evidence sets, one lever.
The gap names the layer, the evidence names the branch, the branch names the lever. Continue to the 5G twins — the split bearer and the PRB playbook.
Sources: Samsung eNB Counter Description via the operator KPI workbook (the MAC effective-throughput formulas verbatim; Families 30 CP_PACKET, 35/36 latency/delay, 50 DL_CQI, 54/55 PRB, 61 MIMO, 62/63 MCS, 233/235/237/239/270/335/352/357/386/418/419/440/492/936 CA set, 322 traffic control, 328/329 SPS, 345/346 IP-throughput distributions, 438 SCHE_UE_NUMBER — names verbatim) · Samsung LTE Throughput Optimization deck (the five-layer DL/UL counter tables, PRB/CQI/HARQ tables, CA tuning table, DRX settings table, the DL feature-trial tables LTE-ME2019/2023/2022/5801/5801-A/5870-A/4003/4005 and ME3306/3314/3312/3325/3205/3201/3203/3305 — all verbatim; peak-throughput formula and RB anatomy verbatim). Load-balancing parameters live on the LTE mobility page; the HARQ/BLER drop view on the LTE retainability page — cross-referenced, not duplicated.