Forget about the BBB, all that is is false advertising to the highest bidder, i.e., contractors willing to pay the membership fees. Beyond that, there is no regulation, screening, or oversight provided by the BBB that in any way protects consumers.
Your better bet is to talk with trusted friends and family who've used tradesmen that they've been pleased with. Once you do find someone, not only do you get a bid and personal sense of who they are, follow up with a check of their status with the local governing body to see if there are any violations or red flags that should be heeded.
Always, always, ALWAYS! Get three or more bids of identical work and materials. Compare the bids for thoroughness and who you feel will be the most competent and the one you can work with the best. Always trust your gut. NEVER choose bids based on price, the lowest is not necessarily the best, neither is the most expensive.
Ask questions, lots of questions. In the case of a reroof those would be:
1 - Will permits be pulled?
2 - Will the existing roof be stripped (recommended ) or overlayed (acceptable, but not preferred ).
3 - Work schedule, when can they start, when will it be finished.
4 - Job site cleanliness - protection of plantings around the house, cleanup of debris, etc.
5 - Payment schedule - In most places this is strictly regulated as to how much deposit can be demanded, your local governing body can tell you.
6 - Does the price include gutters and/or new roof metals?
7 - If damage is found under the existing roof or trim, who takes care of it and how will it affect the price. Change orders are very common, however, do not just give free rein to do the repair and then bill you later. A change order should be provided and signed by you before work continues so that you know what's going on and the additional costs.
There are probably other things that will come to mind as you're interviewing the potential contractor, if you have any questions ask.
As I said earlier, it's important that the bids be for the same scope of work, so ask that it be priced in whatever break-down that will make this easier for you. When I was doing roofing, I provided a bid that included materials, removal of the old, and installation of the new as the base the list was detailed down to the type and color of shingle, new roof metals, etc. An additional price would be listed for any visible dryrot damage found at the time of inspection. From there most other things were options, such as shingle types and grades, new gutters, gutter guards, decorative edging and ridge, and anything else that wasn't covered under my "basic" price.
Once you have the bids and assess them, if you have any questions about the content, call the contractors for verification. The winning bidder should provide a contract with exact details of what you're getting for the price you're paying, again, if you've got questions ask. If you see something that is NOT in writing that you feel should be, make sure that it gets included and signed by both parties before work begins.
All this may sound scary, and it's not meant to be. A reputable contractor isn't going to have a problem giving you extreme details about what is covered or not covered by their bids. If they are unwilling to be straight forward, then choose a different contractor. Notice that I've never once mentioned requesting pricing structure or break-down of labor/materials. IMHO, it's not relevant what the expenses are, only that you know that you're getting top quality materials and craftsmanship for the price you're agreeing to.