Import Cost Codes

Import existing Cost Codes or Cost Categories using the Cost Code Importer tool.

Updated over a week ago

We provide a pre-built import spreadsheet, or you can use your own spreadsheet for your import.

BuildBook's pre-built spreadsheet includes separate sheets for NAHB Cost Codes, CSI Cost Codes, or blank Cost Codes to use with your existing codes.

You'll also see sheets in our spreadsheet for your Price Book, but hold off on this step until you've imported your Cost Codes and are ready to import your Price Book, which we go over in this article.

Use the provided pre-built spreadsheet

Download BuildBook's template

We recommend using our pre-built import template, as it includes all of the required fields and formatting necessary for your import. To use our template, navigate to your Cost Codes, click the ellipses menu in the upper right, and choose Import Cost Codes. Click Download Template to download the Excel file to your computer.

We’ve included an important Instructions tab in the template. Please take a few minutes to review the Import Instructions. You will use one of these 3 sheets within the spreadsheet for importing Cost Codes:

2) Cost Codes - NAHB

3) Cost Codes - CSI

4) Cost Codes - blank

Pro Tip: Once you've imported your Cost Codes, use this same template to add your Cost Codes with the built-out Price Book or blank Price Book to import your full Price Book!

There are five columns that you'll see in the template that make up your Cost Code in BuildBook:

  1. Cost Category Number: All Cost Codes belong to a Cost Category, which is designated by a Cost Category Number that makes up the beginning numeric digits of a Cost Code. Think of the Cost Category as the "group" that a Cost Code belongs to. Cost Category Numbers can have up to 6 digits.

  2. Cost Category Name: The Cost Category Name is the larger "group" that an individual set of Cost Codes belong to, such as "Masonry" or "Finishes"

  3. Cost Code Number: The Cost Code Number makes up the last 6 digits of the full Cost Code and is usually based on what Cost Category Number it is grouped in. For example, if a Cost Code Number is the first Cose Code within the "2000 Excavation and Foundation" Cost Category, then it would make sense for the number to be a lower number such as "2100"

  4. Cost Code Name: The Cost Code Name is what makes up the entire Cost Code and also is based on what Cost Category the code is a part of. For example, if the Cost Category is Excavation and Foundation, then the Cost Code Name may be an item that falls within that category, such as Footings and Foundation.

  5. Cost Code Description: Details about the Cost Code

A final Cost Code associated with a Price Book Item will look something like 2000-2100 Footings and Foundation (2000 is the Cost Category Number, 2100 is the Cost Code Number, and Footings and Foundation is the Cost Code Name).

Two things will happen when you import this into BuildBook:

  1. If the Cost Category we used in the example (ie: "General Requirements") doesn't already exist in your Cost Codes, it will be automatically created.

  2. All of the Cost Codes within the Category will be created and added to the Category if they don't already exist.

Use your own spreadsheet

Use your own Excel or .CSV file

If your Cost Codes aren't separated by Code Number and Category (ie: you have one column called Cost Code with the full code, BuildBook's importer will automatically recognize and split up the Cost Category and Cost Code

For example:
You have the following Cost Codes in a "General Requirements" Cost Category

  1. 01-001 Design Time

  2. 01-002 Procurement

  3. 01-003 Travel

  4. 01-004 Permits

  5. 01-005 Inspections

When you import your spreadsheet, the new Cost Category Number column will be automatically created with the digits at the beginning of the Cost Code. The ending digits will be separated into a Cost Code Number column.

For best results, your file should include a minimal number of columns using the following data (they don't need to be named the same):

  • Cost Code (or Cost Code and Cost Category separated)

  • Cost Category Name

  • Cost Code Name

  • Cost Code Description (optional)

As long as your file has columns for the Cost Code, Cost Category Name, and Cost Code Name, you will be able to import your file, regardless of what the column headers are in your spreadsheet. You'll be able to select exactly which fields you want to use and map them to the correct BuildBook field when you process the import.

If you use your own file, you will need to make sure that the Cost Category name that each Cost Code belongs to is referenced in each line. If not, it should be added to your file, like this:

Three things will happen when you import this into BuildBook:

  1. If your Cost Code is in one column vs. split into two, BuildBook will automatically split your code into a Cost Code Number and Cost Category Number.

  2. If the Cost Category used in the example (ie: "Administration") doesn't already exist in your Cost Codes, it will be automatically created.

  3. All of the Cost Codes within the Category will be created and added to the Category if they don't already exist.

Required Fields

If you are importing full cost codes (ie: Cost Codes and Cost Categories), the following fields are required:

  1. Cost Category Number

  2. Cost Category Name

  3. Cost Code Number

  4. Cost Code Name

You can import a Cost Code Category by itself. In that case, the following fields are required:

  1. Cost Category Number

  2. Cost Category Name

You can import Cost Categories and Cost Codes in the same line.

Or you can import Cost Categories and Cost Codes separately.

However, in both cases, the Cost Category Name and Number associated with each Cost Code must be included. Every Cost Code in BuildBook must have a Cost Code Category.

Import your Cost Code file

Import your Cost Codes from your Price Book. Click More > Price Book > Cost Codes tab. Click the ellipses menu in the upper right and click Import Cost Codes.

Click the Import Cost Codes button to begin the import process by dragging and dropping, or uploading, your file.

Next, you'll be prompted to walk through the setup process:

  1. If your spreadsheet has multiple sheets, choose which one should be used.

  2. Select your header row. By default, the first row is selected for you.

  3. Click Continue

  4. Change or confirm column matches

    1. This step will attempt to automatically match the data in your file to the data fields in BuildBook.

    2. If you used the provided BuildBook upload template, the data here should match up perfectly and you should not have to make any changes.

    3. If needed, you can change the associated BuildBook field(s) by clicking the "X" and selecting a different field.

  5. Confirm your input

    1. If there are any errors, they will be highlighted in red text with a yellow background. You will get more information about the error if you hover over the cell. You can click inside the cell to fix the error, or correct your original file and start the import over again.

  6. If everything looks good, Click Import [x] records.

When the import is complete, you will see a confirmation page. Click Submit and you will be taken to your Cost Codes tab in BuildBook and you will see the newly imported cost codes and categories.


What happens to my existing Cost Codes when I do an import?

Any data already in your Cost Codes will still be there. The new data will be added to what is existing.

I want to start over, how do I delete what I just imported?

You can easily bulk delete all of your Cost Codes by clicking the checkbox to the left of the Code Name. Cost Codes are first archived to preserve any codes currently used in estimates or the project budget. To permanently delete them, switch from the Active items to the Archived, select the ones you want to be removed, and click Delete. Here's an overview of deleting items.

How can I start over with the import while I'm in the middle of the import?

You can simply exit out of the import window, go back to the beginning and click "Import Cost Codes." You'll be asked whether you want to pick up where you left off or start over.

Why does my import say some of my data was rejected?

When you import data, you may see the following message: "Some of your data was not accepted by Import Cost Codes. Preview rejected data in the table below and choose whether to review and correct this data or discard this data and finish your import."

Click the "Rejected" section to see what was rejected, which is highlighted in red. Hover over the field to see exactly why the data was rejected. For instance, if you tried to import Cost Codes that already exist, they would not be imported again.

Can existing Cost Codes be overwritten?

No. Instead, we recommend simply opening the Cost Code and editing it directly within BuildBook. Cost Codes that already exist in your account won't be imported.

Next up

Did this answer your question?