Cost Code Structures For Construction Companies

Listen or watch now:

Many contractors come to Wade having used programs like QuickBooks Online, and without any cost code structure. This week on the podcast, we discuss why construction contractors need a cost code structure and how to set one up that strikes the balance between being too simple to provide helpful information and too complex to understand.

Topics we cover in this episode include:

  • What is a code structure, and how is it different from the Chart of Accounts
  • Cost code structure and using softwares like QuickBooks
  • How to get started when you have no cost code structure
  • Cost code structure, estimates, and invoices 

Download 6 Tips & Tricks, PLUS a checklist for Developing your Cost Code Structure

Join the conversation on our LinkedIn page:

Watch a video version of this episode on YouTube.

Subscribe and watch video versions of all of our episodes on YouTube:


Rob Williams, Profit Strategist |
Wade Carpenter, CPA, CGMA |
Stephen Brown, Bonding Expert |


[00:00:00] Rob Williams: Welcome to the Contractor Success Forum. Today we are discussing cost code structures for construction companies and what that means to you as a contractor. And we are the Contractor Success Forum, where we discuss how to run a more profitable, successful construction business. And part of that is looking at all these cost codes and your financials and what for many people is a big, confusing pile of spaghetti. It’s like just all this stuff everywhere. 

So who is here to help us figure this out today? Well, first we have Stephen Brown with McDaniel Whitley Bonding and Insurance Agency. And we have Wade Carpenter, Carpenter and company CPAs, our in-house right on here, experts of the construction industry accounting methods that is second generation in doing it. So we can’t stump Wade with any of this stuff. We try. So he’s got it down. And then I am Rob Williams authoring the Pumpkin Plan for Contractors. So, gosh, both of you guys, the cost code structures for construction companies, man, I’ve been fighting over this for 40 years.


[00:01:17] Stephen Brown: Let me ask you this, Wade. 

[00:01:18] Wade Carpenter: Yep.

What is a cost code structure?

[00:01:19] Stephen Brown: What is cost code structure? You’ve got cost, and then you’ve gotta code these costs for your accounting books. And then the structure is how to set that up? Or, what’s the difference between that and just having a chart of accounts and–

[00:01:34] Wade Carpenter: Exactly. Well, this episode was kind of born out of some major frustrations I’ve had with a lot of prospects coming to me lately from programs like QuickBooks Online that really don’t have any kind of cost code structure. I mean, a lot of people don’t get their chart of account set up right, but that’s only half the battle.

And if you’re really wanting to get some good job costs, you need a cost code structure that is not so complex you can’t figure out what’s going on, and not too simple where you don’t see the forest for the trees. So.

[00:02:06] Stephen Brown: Okay.

[00:02:07] Wade Carpenter: If that’s okay, I’d like to kind of kick that around a little bit today.

[00:02:10] Stephen Brown: Yeah, lay it on us.

Cost code structure vs. Chart of accounts

[00:02:12] Wade Carpenter: All right. Well, so let me start by talking about what a cost code structure is and how it differs from chart of accounts. So a chart of accounts, you may be coding your costs to things like labor, materials, subs, equipment, other job costs. And, there’s only so much you can see.

It’s basically a vertical view of what it is. And other programs like, even the QuickBooks desktop version allows a cost code structure where you can’t do it in QuickBooks Online. But a cost code or sometimes a phase code, cost code structure is gonna be different for different in. But essentially that’s gonna be mapping, like say for a general contractor, it might be demo, electrical, plumbing, drywall, whatever it is. So those may be the major phase codes or whatever. And then we have the cost codes underneath it, or it may be sub codes. You may think of it as subcodes.

But these codes, if they’re set up properly, should end up correlating to your chart of accounts instead of, and this is where a lot of people in QuickBooks online, only thing we can really do is code an expense to a, you know, chart of accounts. To materials, labor, whatever. With a cost code structure, we can also kind of get a, not only the vertical view, but a horizontal view like taking your estimated revenue, estimated cost by line item, estimated cost and actual cost by line item. So when we set these cost codes up, they do correlate to one of these on the chart of accounts. So we’re essentially gonna be looking at it in two different dimensions. Does that make any sense guys?

[00:03:56] Rob Williams: It really does, and I guess what we’re talking about, if I can say that again, maybe it’ll sink in guys’ heads, is we see our chart of accounts, it’s just one number for say cost a good sold for something and you can, when he is saying left to right, it’s because they’re different columns that are different breakdowns, and it’s a often a manual task that takes so much time to try to break all this stuff down.

And I just had a guy the other day that’s not broken down and we spent hours just going through just to take a few jobs and a few of the costs. Just to get an idea of what these were. And so it was a matter of writing this stuff down and all that time and effort that it takes, where if you had a cost coding structure like that, this could just be a normal quick process when you’re looking books.

How to create a streamlined structure

[00:04:43] Wade Carpenter: Well, like I said, it doesn’t have to be very time consuming. A lot of contractors hate paperwork. They hate working in the field all day and coming home and doing paperwork all night. So you need a streamlined structure. But you know, the first thing I would say is like if you’ve got a contractor that has zero job costing, it’s basically like that captain on the ocean that tried to sail from England to us without a compass. They’re gonna get lost.

And that’s exactly what happens. And there’s so many contractors running it out of their checkbook, and they’re not using the Profit First system. And so, getting the chart of accounts level right is a good first step. 

And a lot of times those are not even set up properly and people need help on these things, but programs like QuickBooks Online only have the one dimension and they try to get the second dimension with these third party softwares where the builder, I’m not knocking any of these. They’re built differently, for different industries that builder trends or, any, I don’t want to pick on anybody in particular, but they all tend to have their own cost code structure that’s already kind of built in so that people can get started and people get overwhelmed by that.

They have no idea where to start. And unfortunately what you’re trying to do is take it out of one program and push it to another and it seldom works right. It’s seldom has ever set up properly. So I guess I’m going into a personal rant here, but I hope I’m making some sense.

[00:06:13] Rob Williams: I have a meeting in a couple hours with a contractor and his CPA to figure out, he just bought a company and then trying to figure out what this process is. And it’s crazy when I hear somebody say, well, we don’t want to take the time to put all that in. Well, as we were going over this for many hours, it occurred to me that if this had just been put in upfront on a regular basis, this would’ve been so much less time to do that extra work upfront.

Because somehow in the end, everybody ends up wanting to know the answers. So they end up spending 10 times the amount of time if, or maybe a hundred times the amount of time or just never have that information for the business and then don’t make the profits that they should. Not having the time to do that is crazy.

Now there is an argument not having the expert to lead you through this is tough because a typical contractor can’t figure this out by himself. Yeah. It’s not–

[00:07:11] Wade Carpenter: Well, that, sometimes that’s true, but you know, if somebody’s never had any kind of structure whatsoever, and they can at least get the vertical structure, just like with the chart of accounts where we’re at least coding it by material, subs, equipment, that kind of stuff. That’s more of like, hey, we got a picture, a puzzle or something with several missing pieces. We don’t have the entire picture. We may be missing some big holes in it, but we at least we got some kind of fuzzy view of what’s going on, and that’s definitely better than nothing.

[00:07:45] Stephen Brown: Well, I like that analogy guys, because you put together jigsaw puzzle, you dump it out on a table and first thing you do is try to get the edges in place and the corners done, so then you can figure out what goes on in the middle. It is kind of like that, isn’t it, Wade? It’s a process for putting that jigsaw puzzle of costs together. 

Cost code structure and using softwares like QuickBooks

[00:08:06] Wade Carpenter: But programs, and again, I’m not trying to knock any particular program, QuickBooks or Xero or something like that. Without these third party softwares, you never get that stuff in the middle. But you know, there’s also a point where, you can set these things up and this is where a lot of contractors struggle.

They’ll go like, get to the CSI codes or the Construction Specifications Institute codes. And I’ve got some of them, they’re like, two columns. It’s like close to 30 pages worth of codes. There’s a point where it’s way too many to look through and when you have way too many to look through, well people are not consistent. One project manager may put plumbing in this particular code and one may put in another code. And if it’s estimated one way and then gets coded to another, it never lines up.

[00:08:56] Stephen Brown: Okay, so how do you find that happy balance, Wade?

[00:09:00] Wade Carpenter: Well, so that’s, again, there is that point where it’s, there’s the forest for the trees analogy, but there’s also like, think of yourself going to an art gallery, and you’ve got a painting in front of you. But you get like this close. You’re sitting there looking at it and you can see the brushstrokes and the little line items. You see too much detail, you can’t see the picture, you can’t see the big picture.

[00:09:26] Stephen Brown: Okay. I like that analogy. I got it.

[00:09:29] Wade Carpenter: So, what we’re talking about is we need to have some happy medium. Don’t go taking what is automatically plopped in there from your software that you inherit. Take the time to sit down and really think about what you use. I would say never put anything more than you would normally use in, if you don’t think you’re ever gonna use it, definitely don’t put it in.

And you can always add to it later, but you know, there is a point where you, if you assume you can always add it, then you just keep adding it and then eventually it grows to out of control too. So, what I tell people is, a lot of times we’ll sit down and go over, what do you do? What are you trying to accomplish? 

Stephen, one of the things that I tell them, thinking about workers’ comp codes and things like that, a lot of times we can sort of mirror this so that they follow like workers’ comp codes. And I’m sure you would tell them, if you’re putting them in the proper code and somebody’s really doing office work or something like that, versus somebody that has none of these codes, the auditor’s going to stick them in the highest class, right? I don’t mean to–

[00:10:40] Stephen Brown: 100% of the time.

[00:10:41] Wade Carpenter: Yeah. So, like I said, getting this kinda level of detail can protect you. As well as, I could go into some, several stories here, but you know, a lot of times people, I talk about it all the time, but here too is like analysis paralysis.

We don’t know what it’s supposed to look like when it’s finally done. We don’t do anything. It’s like we got this whole list, we don’t use any of them because we don’t know which ones to use. Versus, again, I, going back to the, if even if you had the chart of accounts level, that’s much better than nothing.

But, at the chart of accounts level, you can’t really say here, this is what your budget versus actual in most of these programs. This is something that I work with contractors a lot and I’ve had a lot of them lately, and so that’s why I kind of wanted to talk about it today.

[00:11:33] Rob Williams: Well, I hear it. It’s almost every, most of it’s, I hate to say it’s almost everyone, but it is almost everyone that calls me that we start, we have this kinda issue. Occasionally I’ll get one that’s just really set up in the beginning. But now do you have any kind of tips and tricks for us, Wade?

[00:11:49] Stephen Brown: Yeah. How, what kind of action plan do you need to put in place to get this thing started?

[00:11:54] Rob Williams: Might be two different things. Yeah.

[00:11:55] Wade Carpenter: Well, first of all, I would say, don’t necessarily get so wrapped up in these third party softwares where, they’ve got their own chart of account, their own cost coding. And that’s another personal rant, which we could probably spend another episode on. But, I have seen people spend tens of thousands of dollars on these other add-on programs to get that job costing.

And they just, they never, as much as they spend a lot of money on consultants and they never get going. So if you even get the basic level down, you’re much better off than having something fancy that you never use.

[00:12:34] Rob Williams: I’m so glad you said that. That was my number one question that I was gonna ask is, I’ve had it happen myself. I remember this poor guy, Danny, that worked for us. We put him in charge of this project and I don’t think he volunteered for it. And so after two years he–

[00:12:50] Stephen Brown: No he didn’t. I’ll just go ahead and answer that question.

[00:12:52] Rob Williams: Yeah. He still, he was still sitting at the desk and never got a single project out of it after two years, and it’s unbelievable.

We go and we see this vision as the owner and we’re like, okay, let’s delegate this over here. How big of a piece of the pie should we bite off? And how do we judge that? I’m going through that right now with somebody, Wade. How do you decide, can, when, how what increments can this be in and how do you not get too ambitious so you see some kind of benefit over it in a short time of month?

Is it a timeframe that you’re going for or how do you address that?

How to get started when you have no cost code structure

[00:13:32] Wade Carpenter: Well, sometimes you do have to start off at the basic level and build into it. But you know, as far as like, creating an action plan for implementing something like this, number one, I would say the first thing is get some samples from your industry. Go to places like the Construction Specifications Institute and get theirs, but again, that’s gonna be huge.

I don’t wanna generalize because there’s different industries and a structure for a general contractor, it’s gonna be different from a concrete contractor. A general contractor probably wants those, demo, electrical, plumbing, grading, those kind of major categories. But they don’t care about like the concrete and all the little things underneath it. Whereas a concrete contractor wants to have these specific line items so that they can track that better. So it is hard to generalize on this. If I had to say something, if you’re starting to get above say, a hundred codes, you’re probably getting too far. If you get over 200 or something like that, maybe you just need to stop.

[00:14:36] Stephen Brown: Take a breath.

[00:14:38] Wade Carpenter: Yeah. But, maybe you gather several samples and then just kind of break them down, but limit the number of things you got. Again, recognize there’s a point where there’s not enough detail and there’s a point where, we’re like right there looking at that painting right in our face.

[00:14:54] Stephen Brown: Well, Wade, what about taking this and setting it up according to your timeframe of the construction project? If you’re a general contractor, you got the site work first and the cost involved with that all the way to completion. At least as an owner, you could compare the two to see how it’s tracking on each project.

[00:15:14] Wade Carpenter: Right, and some people think of it more of a phase code type thing. And for exactly what you’re saying, like a developer, that type of structure is exactly what you’re probably looking for. Or a lot of general contractors would run it that way.

But you know, again, don’t take that canned template. And get some people in your team involved, I would say. And if you’re still struggling, reach out to somebody, that construction oriented CPA or, you know, that helps. Don’t rely on these software guys. That’s, sorry that, that’s the personal rant too. But these software guys just, you know, like, here you go. Take them all. And, sometimes–

[00:15:53] Stephen Brown: Not practical. It’s just not practical. It won’t work.

[00:15:56] Wade Carpenter: It’ll also kind of gum up your accounting software and, make it run slower when you have a thousand codes or something like that. But.

Cost code structure, estimates, and invoices 

[00:16:05] Rob Williams: One other point on that, Stephen, when you were talking about where do you do that for us it was always, how do you pay your invoices and how are they broken down? Cause God, it was such a pain in the butt when you get one invoice and then if you’re trying to break that down more specifically, that’s somebody in your shop has got to break that one invoice down into four different categories off of that one.

So if you could have everything, a whole invoice or the way you’re paying something all goes into one category, it sure makes things easier. But I guess my point on that is look at your field process and your office process, not just the computer, and figure out how you’re gonna get that data in there. And And make it simple, because you can create a whole lot of things. Sometimes it is changing the field process or it’s like, I think we had, for example, cornus the, you know, your trim on the outside of your house was broken into one invoice, and then the framing lumber was another one.

And so we actually made sure we changed, and so we had one purchase order for the cornus and then another one for the lumber order. So we had to break it down like that. No. So that was a way we actually had to change something in the field just to make sure they didn’t order the whole house in one ticket.

They may deliver it at the same time, but there’s, there, there’re processes and that’s just a simple example, but you get and I’d say the plumber and the heat and air, they usually turn their money in different draws. And we were sort of forced to do some of our coding, by the way, we did business in the field, not necessarily just the way that I wanted to see it based on the way we estimate, because–

[00:17:45] Wade Carpenter: Well, I mean, honestly, that’s a great point, Rob, that the way you estimate is how, when I’m working with somebody that’s one of the first questions I ask them, how do you estimate? And, inevitably, if they have two or three estimators, they all do it a little different way unless tell them.

But, a lot of times your schedule of values on your AIA billings, I mean they, you have those things that you gotta break down. And if they’re common things you use, that’s fine. But I had another situation recently where we had set the chart of account of the cost codes as well. And they got a new client that, they were wanting like every single detail.

[00:18:26] Rob Williams: Oh, all–

[00:18:27] Wade Carpenter: They wanted, they were like coming to me like, we need to add no 200 codes. And I’m like, no. That’s where you’re sitting there. You letting your customer– yes, you, if they’re like, a huge customer and you’re gonna stay with them a long time, maybe you should make some consideration there.

But don’t just throw the baby out with the bath water just because one customer wants to see so much detail that it’s stupid and they’re not gonna pay attention. And well, they may, you know, they may look at it every line item, but is that really the customer you want?

[00:19:00] Stephen Brown: Okay. Make it simple, but make it accurate.

[00:19:04] Wade Carpenter: Yep.

[00:19:06] Stephen Brown: Okay.

[00:19:07] Wade Carpenter: I know we’ve probably gone a little long on this one, but I did put together, if anybody wants like an action plan.

[00:19:12] Rob Williams: Yeah, talk. Talk to that for a minute. We got time. We got time.

[00:19:15] Wade Carpenter: Well, I kind of talked about the major steps, but you know, I put together a little handout for tips and tricks and a checklist for developing this. So if anybody wants that, they can go to my website at and we’re glad to give it to them for free.

[00:19:29] Rob Williams: And we can put a link in our show notes or YouTube notes or wherever you’re listening to that. So, which is another plug for us, let us know, subscribe or do those things so we’ll know where you guys are listening so we can put that down. That’s really the only way we know where you’re listening.

We don’t necessarily get all the data we would like to see. So if you guys, your regular listeners, can actually hit the subscribe button on wherever you’re hearing this or watching it, that’ll help us. So yeah. Well, anything else on that way? Do you want to go into any of those or–

[00:20:05] Wade Carpenter: No, like I said, I mean, if they’re interested I’d be glad to give them that for free or if they.

[00:20:11] Rob Williams: Yeah.

[00:20:12] Wade Carpenter: Again, I hear this all the time, every time I’m taking on a new client, and people struggle with it all the time and they don’t know how to move forward. So I just wanted to kind of bring it up today.

[00:20:21] Rob Williams: Well, that’s great and I think one of my big takeaways from today is bite off what you can chew on this thing and try to make these things match your systems and when you wanna do this, don’t just go with what you want to see because you saw that go, what you can actually do and think of the benefit you’re going to get from it and what cost and effort it’s gonna take to do it.

But I tell you, if you’re gonna need it on the end, it’s, I would say almost always easier to do it on the front end, and put your processes in place than trying to uncover this after the fact. Because it’s not impossible, but it’s a matter of like pulling all the invoices and looking at this stuff.

It’s just insane to try to get those answers on the tail end where you can get it on the front end. But standardize and get a process and a system for it. It’s my takeaway. Hey Stephen, how about you? Is the bonding gap because I feel like this is the information that we get and sometimes since you were my bonding agent, I sort of felt like I was turning in my exam, my final paper to the bonding company to kinda give me my grade and how’s this look to you guys?

[00:21:33] Stephen Brown: Yeah, well that’s not the case. Bonding companies wanna know your tracking cost so that they can know that your estimated profits are gonna hold true. And that’s the key to unlocking your bonding. So thanks Rob for asking. Wade, great topic. Thank you.

[00:21:51] Rob Williams: All right. Well, thanks for coming to the Contractor Success Forum! Wade Carpenter, Carpenter and Company CPAs and Stephen Brown, McDaniel Whitley Bonding and Insurance Agency. And you guys call us. I actually, I got five calls last week from people listening to this show. I don’t know what episode aired because when we record these, it’s not the same time that they come out. So I need to go figure out what we said in one of those episodes. So we had all kinds of people calling us, but call all of us. Don’t know what triggered that last week. But call us and talk to us and get your questions out so we can somehow maybe answer them on a next episode or talk to you then.

[00:22:28] Stephen Brown: That’s right. We’re here to help you.

[00:22:30] Rob Williams: We’re here to help you and you don’t even have to call us if you don’t want to do that. Leave a comment somewhere. I think most of the places you can see these. And if you are in some of the places you can’t leave a comment, you can find us at Or I know you can leave them in like the social media places we’ve got in the YouTube channels. So I know you can leave comments there. We’ll, I think we’ll always see those. I’m not real 

[00:22:55] Stephen Brown: I hope so.

[00:22:56] Rob Williams: Alright guys, well thanks a lot and come back and listen to us again on the Contractor’s Success Forum.

Thanks for listening. Bye.

Posted in


Leave a Comment

Listen or watch now:

GET notified of future episodes!