A composite book is a list of prices with sizes next to them, and it's easy to read the size column as what you can trade. It's closer to what the LPs are willing to show you right now, which is a different thing.
A made-up example to show the mechanics. Three LPs each show 5 million at the best offer and a client wants to buy 12 million. On paper you take all three and the client gets a blended price. In practice one LP rejects, another fills 3 million of its 5, and by the time you go back for the rest the market has moved. The price you quoted was built from depth that wasn't all there.
Price for the size, not the top
A quote built from the best bid and offer is only right for small orders. For a bigger one you walk the book, taking each level until the size is covered, and the average of what you took is the price. Plenty of bridges publish this as tiers: one price up to a certain size, a worse one up to the next, and so on. Each tier is just the volume weighted average for that size, computed from the same snapshot of the book.
That's more computation than a top-of-book price, since every tier has to be redone whenever the book changes. Recomputing only the side that moved helps, and so does capping how many tiers you publish.
Discount depth by how often it fills
The walk assumes every LP's size is real, and they aren't equally real. An LP that fills nearly everything it shows is worth more than one that rejects a third of its orders. So before walking the book, weight each LP's size by its recent fill rate, or cap how much of any one LP you're willing to count at a level.
Some LPs also only trade in fixed increments, so a displayed 1.3 million is really 1 million for your purposes. Round down what you count.
The effect is that your quoted price comes out slightly worse than the naive one, which is the point. It's nearer to what you'll actually get. Make the haircut too heavy and you quote wider than you need to and lose flow. Too light and you carry the difference yourself, one fill at a time.
Where it gets awkward
Markups and skew need a clear place in the pipeline too. Apply them to each tier's average, after the walk, so a tier's price is something you can explain from the book and the markup separately.
A large order that has to hit several LPs raises another choice. Send to all of them at once and it's fast, but you may be overfilled and holding the extra. Send one after another and you don't overfill, but the market can move between legs. Which is right depends on how much leftover risk the desk will carry.
The part that's hardest to pin down is how quickly the haircut should react when fill rates drop, because that tends to happen in exactly the moments when depth matters most. React slowly and you quote depth that's gone. React fast and the price flickers.