# Cost Codes

Cost codes are the categories you use to organize project expenses. They let you see exactly how much you are spending on materials versus labor versus subcontractors -- and whether you are over or under budget on each category.

## How It Works

Think of cost codes as budget buckets. When you enter payroll hours, import a vendor bill, or log an expense, you assign it to a cost code. This way, every dollar on a job is tracked by category. Common cost codes include things like Rough Framing, Electrical, Concrete, Equipment Rental, and Supervision.

You maintain a master list of cost codes that can be reused across all projects. When you set up a new project, you pick which cost codes apply to that job and set a budget for each one.

## Steps

### Creating a Cost Code

1. Go to **Cost Codes** and click **New Cost Code**.
2. Enter a **Code** (a short number or abbreviation, like `310` or `EL-01`).
3. Enter a **Description** (like "Electrical" or "Site Prep").
4. Select a **Category** if you want to group related codes together (Materials, Labor, Subcontractor, Equipment, Other).
5. Click **Save**.

### Assigning Cost Codes to a Project

1. Open the **Project** you want to update.
2. In the **Cost Codes** section, click **Add Row**.
3. Select the cost code from your master list.
4. Enter the **Budgeted Amount** for that code on this project.
5. Repeat for each cost code that applies.
6. Click **Save**.

### Viewing Cost Code Performance

1. Open a project and scroll to the **Cost Codes** section.
2. You will see columns for Budgeted Amount, Spent to Date, and Remaining.
3. For a deeper look, pull the [Job Cost Report](/project-management/proforge-core/reports/job-cost-report.md).

![cost code list](/files/7TWjDru07rsZLhV8t0Ar)

![create cost code (step 1)](/files/PpU3ArZeKfTb9c9e5tDG)

## Related Pages

* [Setting Up a Project](/project-management/proforge-core/setting-up-a-project.md) -- assign cost codes when you create a job
* [Job Cost Report](/project-management/proforge-core/reports/job-cost-report.md) -- see spending by cost code across a project
* [Weekly Payroll Entry](/project-management/proforge-core/payroll/weekly-payroll-entry.md) -- assign hours to cost codes


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.proforgeerp.com/project-management/proforge-core/setting-up-a-project/cost-codes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
