If you make stuff and you sell it to people, you've done this wrong. Don't be ashamed. Sometimes we have to know what we're doing wrong to fix it, so let's do the hard part: discussing the problem.
Whenever a client wants work from us, we're often asked to quote them. Quoting a number is probably the hardest thing we do, mainly because you have to know your stuff really well for your quote to be worth the paper it's printed on. If your quotes routinely come in way under the final cost, unless you're working for the government, you'll never get hired by anyone, so there's a lot of pressure to get it right. You sit in front of your special spreadsheet that you've refined over the years and you calculate everything: labor time, extra materials, you name it it's in there. You hand over the quote, the client is happy, and you get to work. You sit in front of your computer and you start designing and refining. You spend a few hours doing that. Then you send it to the client who wants a change, so you make the change and send it back. Then they send it back with another change request. Eventually you arrive at a design the client is happy with and it only took 12-14 hours of design time, which, you, in your fabulous calculations and meticulous planning, never even considered. You thought the design portion of the job would be quick and easy so you didn't think to charge for it and now you're literally paying for it.
And don't look away or grin like this hasn't happened to you. It's happened to all of us, and it's our own fault. Why? Because we just don't treat design time like labor and that's a huge mistake. Here are a couple of ideas you can apply to your own work so you don't keep doing it, blissfully unaware of the costs.
Build Design Time Into Your Quotes and Estimates
You can do this a bunch of ways: as a premium over your estimate/quote, or as a percentage of the total. If you're going to quote $200 for a job, allow that to include 15% for design. This isn't an exact science, but it will at least make the design costs and time tangible. You could also charge a flat rate for design services and include that in your estimate. It's better than nothing, but not ideal since a prolonged design session could become a loser for you.
Limit Design Revisions
Sometimes the actual design time isn't the money vacuum; the revisions are. Clients think (and to a degree they are right) that they're entitled to as much of your time as needed to get what they want exactly as they want it. There is obviously truth to that, but the flip side is that they aren't entitled to an unlimited amount of your time for free. In your initial estimate, include a clause that limits your design time to 1 design and 1 or 2 revisions. Any more than that and the client agrees to an hourly fee for your design time. Doing this will almost certainly control your design costs.
Include X Number of Hours of Design Work, Then Bill at $Y Per Hour
I don't know that I'd use this on every project, but for bigger jobs this makes the most sense. This requires you to understand your projects and make accurate estimates on design time, but it also allows you the flexibility to make changes and not be out of pocket for them. If you're billing per hour for anything over your initial time and for revisions, then your design time is no longer a money sink and might actually help you increase your margins.
These are some simple things you can do, and obviously there are loads of ways you can improve your margins so that design time isn't a loss-leader for you, but the bottom line is this: make sure you're accounting for the time it takes you to come up with that beautiful thing your client wanted. Your time has value and every minute you're in front of your computer working on a design is a minute you're not making a thing and unless you're accurately and realistically accounting for that, you're losing money.
Don't give your time away, even if it isn't for the actual "making" part of making something.