Broadly speaking SWR is on point here, and many contractors may indeed share precisely how they reach their costing, but equally if they are doing the scouring, they could be using savings in one area to subsidise something else.
As a contractor who does a lot of small batch work, increased BOM line count has a huge effect on the time and hence cost of a job, 20 boards could easily only be twice the cost of 5. With batches @ this scale we wouldn't break down the cost for someone because we have to include a fudge factor (using intuition) to account for the fact in low volumes you can end up with parts you need to fit by hand, packaged badly, bent legs etc and if the client was trying to apply some kind of rigid formula to predict costs it wouldn't be sufficiently flexible.
However once you scale up past smaller batches of say 500 or so (its going to depend on how complex your board, how fast the line is, how busy the line is) that setup time, that plays such a big part with a small job becomes almost irrelevant. Every line on a BOM needs checking in, verifying (at some level even if its reading the label), loading onto a feeder, checking again. If its a new part or package to the manufacturer that part will need teaching to the machine, if its a short strip, they might need to add header, footer or cover tape. All that stuff on its own is the work of few minutes and required once but it can easily add up.