First, lets deal with "margin" instead of mark-up. Margin is the percentage of the sale price that is profit. A 100 percent mark-up is a 50 percent margin. It sounds a lot better if you need to explain it to a customer. A shrewd general contractor, for example, might want to specify profits on a cost-plus job.
I can offer a suggestion based on what I'm seeing. Keep in mind that I'm in a small city. For bidding purposes, take your total bill, at cost, and base your bid price on that. It's too much work to deal with each item.
On a small job, margin will average 30 to 50 percent, depending on how bad you want the work.
On $100,000 job, the margin would average 10 to 20 percent, depending on how bad you want the job. This size job is almost always bid, but a customer who handed you a cost-plus job like this would probably think 15 percent was reasonable.
Labour can be marked-up in a similar fashion but you need an hourly rate that doesn't scare off customers.
Now, the reason that I work for someone else, is that I actually suck at this. I try too hard to get work and end up working for free, or I feel bad when I don't get the job. Here is the best advice that I can think of:
Stop worrying about being overpriced or underpriced. There will ALWAYS be those who are cheaper than you and those who are more expensive than you. Figure out your price, send off your proposal and move on to the next job.
If you are one of three contractors bidding on each job, plan on losing two out of every three.