BOLA formalised buffer-based ABR with Lyapunov optimisation, proving that under certain assumptions the algorithm achieves near-optimal long-term utility (a weighted sum of bitrate and rebuffer avoidance). The decision rule at each segment boundary chooses the rendition that maximises (utility of rendition) − γ × (cost of buffer change), where γ is a parameter tuned to the player's target buffer.

The original BOLA paper (IEEE INFOCOM 2016) and its successor BOLA-FINITE (2020) addressed start-up behaviour and finite-buffer edge cases. dash.js adopted BOLA as its default ABR around 2017 and refined it over subsequent releases. Studies on real-network traces show BOLA outperforming pure throughput-based ABRs on most metrics — fewer rebuffers at similar bitrate, fewer unnecessary switches.

BOLA's weakness is that it ignores measured throughput, which means it can be slow to react to genuine bandwidth changes in the first few seconds after they happen. The buffer level integrates throughput over time, so a sudden bandwidth crash takes a moment to show in the buffer signal. Production ABRs in 2026 often run a BOLA-like buffer-based logic combined with a throughput-based safety floor — e.g. "use BOLA unless throughput drops below 50 % of current rendition bitrate for 3 segments, then immediately downshift".