Esc
↑↓ to move↵ to openEsc to close

DocsConcepts

Rank bands

The three bands every pull request lands in, and how they are cut.

Every scored pull request lands in exactly one band. Bands are cut from the repository's own score distribution by default, so "the riskiest 5%" means the same thing in a quiet repository as in a busy one.

BandDefault shareMeaning for the reviewer
senior_recommendedTop 5%The highest-risk changes. Route to someone who knows the paths involved
review_firstTop 20%Read before the rest of the queue
standardEverything elseNormal review, in the usual order

A further 5% of pull requests are left unranked, in plain FIFO order, as a holdout. It is how Riffle measures its own lift against the queue you would have had without it, and it limits feedback-loop bias.

Percentile or absolute

yaml
# .github/riffle.yml
rank_bands:
  mode: percentile                     # default
  percentile:
    senior_recommended_top_fraction: 0.05
    review_first_top_fraction: 0.20    # matches the top-20% effort-aware recall metric
    window: repo                       # or component: rank each monorepo package against itself

absolute mode cuts on fixed scores instead: senior_recommended_min_score defaults to 0.8, review_first_min_score to 0.5.

KeyAllowedDefault
rank_bands.modepercentile, absolutepercentile
rank_bands.holdout_fraction0.02–0.10.05
rank_bands.tie_breakordered list of tie-break signalssimilar_pr_bad_rate, path_detection_lag_days

Tie-breaks apply only to identical rounded scores; pull request age is always the final key.

Floors

A floor raises the minimum band for a path, whatever the score says:

yaml
floors:
  paths:
    - { pattern: "src/auth/**", min_band: senior_recommended }

Every key is listed in the configuration reference.