Manage project financials using budget codes

Prev Next

Overview

You can manage your project financials using budget codes to give you a more structured, detailed view of where money is going on a project. By organizing costs and revenues by phase, cost code, and cost type, budget codes help you track actuals more accurately, compare them against your budget, and make better financial decisions to protect project profitability.

Who use


Who uses this feature

  • Administrators, office employees, managers, accountants, and bookkeepers

  • Primarily for Residential Construction and Commercial Construction business types

  • Applies to all trades

Feature configuration

  • Account configuration is required to use this feature. Please contact Technical Support for details.

Things to know

  • You must have your budget code segments set up in Settings > Operations > Cost Codes before you can perform the tasks described here. For more, see Budget Codes overview.

  • We recommend you have your cost code and cost type assigned to your pricebook items to accurately track your expenses. For more, see Assign cost codes and cost types to your pricebook items.

  • If an item or cost doesn’t have a budget code, it appears as Uncategorized in the Budget vs Actual table.

Assign cost types to GL accounts

You can assign a cost type to a GL account to speed up pricebook setup. When you select that GL account on a pricebook item that doesn’t have a budget code yet, ServiceTitan fills in the item’s budget code with the GL account’s cost type. You can change or clear it. The GL account’s cost type isn’t applied to transactions directly.

To assign a cost type to a GL account:

  1. On the top toolbar, click Settings .

  2. In the side panel, click Accounting > General Ledger Accounts.

  3. In the General Ledger Accounts settings screen, find the GL account you want to assign a cost type to.

  4. Click the Action > Edit.

  5. On the Edit GL Account screen, select a Cost Type from the dropdown.

  6. When finished, click Save.

Editing GL account details including account number, type, and description fields.

Assign budget code to Application for Payment

You can assign budget codes to an Application for Payment (AFP) to associate billed amounts to specific parts of the project budget so you can track progress billing and forecast remaining revenue accurately.

When you assign a budget code while completing an Application for Payment:

  • The budget code for AFP invoice items is pulled from the estimate line item budget code. If an estimate item doesn’t have a budget code, its AFP invoice item doesn’t have one either.

  • The budget code for retainage is based on the budget code configured in the Application for Payment settings screen. See the section below for more information.

  • A project invoice not associated with an AFP does not automatically receive a budget code, unless it’s created from a job that has a budget code. In that case, the invoice uses the job’s budget code. You can manually assign budget code on the invoice record but it will not override the item level budget code.

Configure cost code and cost type for retainage

Before you can assign a budget code to an Application for Payment, you must configure a cost code and cost type to categorize retainage withholding accurately.

To do this, go to Settings > Accounting > Application for Payment, then in the Retainage Project Label and Budget Code section, select the cost code and cost type in the Budget Code field. When you’re finished, click Save.

The Budget Code field is required. If it’s empty, an Incomplete Setup message appears when you open an Application for Payment, and you can’t continue until you finish setup.

Application for payment setup with project label and budget code fields highlighted.

Assign budget code to Application for Payment

To assign a budget code to an Application for Payment:

  1. Go to the project you want to complete an Application for Payment for.

  2. Click Actions > Add Application for Payment.

  3. At the pop up, make sure Use budget code is selected. It’s selected by default.

  4. Select the budget code segments you want to use in the Segments field.

    Note: You must include at least one segment in this field to continue.

  5. Click Continue to complete the Application for Payment.

The budget codes are now included in the Schedule of Value line items in the Continuation Sheet.

Select budget code segment for generating work description in payment application.

Edit the budget code to an invoice and invoice line items

You can set a budget code at the invoice level. It works as the invoice’s default: when an item’s pricebook item has no budget code, the item uses the invoice’s budget code, and when the pricebook item’s budget code leaves a segment empty, the invoice’s budget code fills it in. Setting it doesn’t change items already on the invoice.

Note: The Budget Code field only appears on invoices associated with projects.

Assign a budget code to an invoice

  1. Search for and go to the invoice record.

  2. On the invoice record, click Update invoice details.

  3. On the Update Invoice Details screen, enter the budget code segments, such as Cost Code and Cost Type, in the Budget Code field.

  4. When you’re finished, click Save.

Invoice details including budget code and other relevant information for HVAC installation.

Assign a budget code to an invoice line item

  1. Search for and go to the invoice record.

  2. On the invoice record, find the invoice line item you want and click Edit (pencil icon) at the end of the row.

  3. On the edit screen, enter the budget code segments in the Budget Code field.

  4. When you’re finished, click Save.

Form fields for budget code, project label, and general ledger account details.

How budget codes apply to requisitions

The budget code on the header of a PO, receipt, bill, or credit is used only for charges that aren’t tied to an item, such as tax and shipping (and restocking fees on returns). On POs and receipts, this field is labeled Budget Code (for tax and shipping). Assigning it keeps those charges tracked in the project budget. Individual items, such as materials and equipment, use their own budget codes, usually set in the Pricebook, and aren’t affected by the general code applied during the requisition process.

The header budget code carries over from a PO to its receipts, and from a receipt to its bill when the bill is created from a single receipt. A return’s budget codes carry over to its vendor credit the same way. Requisitions don’t have a header budget code, so only their line-item budget codes carry over to the PO. If you change a budget code on an earlier document, documents already created from it don’t change.

If you create a PO or return for a project without a header budget code, ServiceTitan assigns the Miscellaneous Charges & Fees (MCF) budget code.

For example, if you create a receipt from a purchase order, the budget code from the PO will carry over to the receipt, but if you change the budget code on the PO afterward, it won’t update the receipt. 

You can assign budget codes to non-PO vendor bills and credits to associate costs not tied to a requisition to the project budget. This helps you track actual spend accurately and maintain visibility into committed costs.

For more on assigning budget codes through the purchasing or inventory process, see Track budget costs in inventory transactions.

Assign budget code to non-PO vendor bills and credits

  1. On the navigation bar, click Accounting.

  2. In the side menu, click Bills or Credits.

  3. If you’re editing a bill or credit: 

    1. Find the bill or credit you want to edit and click the Bill No. or Credit Number.

    2. In the bill or credit record, click Actions > Edit.

  4. If you’re creating a new bill or credit, click Create Bill or Create Credit.

  5. In the create or edit screen, select the cost code and cost type in the Budget Code field.

    Note: The Budget Code field only appears if there is a project associated with the bill or credit. If your account requires budget codes on project transactions, the Budget Code field is required on bills.

  6. When you’re finished, click Save.

Create bill form showing vendor information and highlighted budget code details.

Track Budget vs Actual with budget codes

You can use budget codes to track budgeted versus actual costs and revenue by segment, giving you a detailed view of project performance directly in the Budget vs Actual table.

For a high-level summary of your project’s overall financial performance, use the project financials dashboard. For more, see Understand project financials.

View Budget vs Actual by segment

  1. Go to the project you want to view.

  2. In the side panel, click Financials.

  3. In the Budget vs Actual section, click Segments.

View Budget vs Actual by cost code or cost type

In the Segments view, use the View By option to show all segments or one segment at a time, such as Cost Code or Cost Type.

Budget vs Actual report showing billed amounts and cost type selection options.

Want to learn more?