The problem
In a level-based plan, you are paid on a fixed number of levels. If level 3 below you is full of inactive accounts, your paid levels are wasted on people who generate nothing, and the active builders below them fall outside your paid depth.
Dynamic compression
At run time, inactive positions are skipped when counting levels. Your level 3 becomes the next active person down the line. The tree itself is not changed; only the calculation view is compressed. This rewards leaders for real activity and keeps payout ratio stable.
Roll-up
Roll-up is the structural version: when an account is terminated or stays inactive beyond a deadline, its downline is permanently moved up to the next active sponsor. Roll-up changes the genealogy, so it should be gated behind clear policy and logged.
Defining active
Compression depends on a definition of active. Common choices are a minimum PV in the period, an order in the last 60 days, or an active autoship. Pick one, publish it, and apply it consistently across bonuses.
On DIRSL
Enable dynamic compression per bonus (for example, on level commissions but not on fast-start), set the activity rule, and choose whether compression applies to rank qualification. Roll-up runs as a scheduled job with a review queue.