When we do T$M, which is only for commercial customers, we have them sign a contract, it states material will be billed at list price, and our labor rate and terms are clearly noted in the contract, this avoids any suprises, If they desire they may purchase the material, and arrange, to have it staged, at the work site when needed, any delay in them staging material, will incur a standing charge, for all delay time.

These terms must be signed, before any work begins, without this protection, they can try any bag of tricks, they desire.

Any business understands, you have costs in suppling material, and should expect a mark-up.