Full Job Costing with ESC Accounting


Job Costing can be addressed multiple ways in ESC. Job costs can be tracked when entering data virtually anywhere in ESC simply by entering the job number on the transaction. Since there are so many ways to address job costing in ESC here we will address just the three basic methods.

Some companies use only one method of job costing while others may use all three: work in progress for commercial construction, full job costing for residential construction and sales job costing for install and service. We will outline the different job costing options and their setups so you can decide which job costing method(s) best fit your needs.

  • Sales Job Costing – Records only entries entered through Sales to the Job Sales Report.  Jobs can be done in phases and multiple invoices can be created. This option is usually used for jobs lasting less than a month, but with multiple billings. If only one invoice will be created for a job it is not necessary to set up a job, the same profitability information can be seen on the Sales Report without setting up a job.
  • Full Job Costing – Records any entries made in ESC with a job number to any of the job reports. This option is usually used for jobs lasting more than a month, with income and expenses going directly to the Income Statement.
  • Work–In–Progress – WIP works just like Full Job Costing, but keeps the income and expenses on the Balance Sheet until the job is closed. This option is also used for long term jobs.

Things you need to know about Job Costing

Jobs are setup in Customer Info → Job List → Add Job and are attached to a customer, although the job can be used on any transaction for any customer (commonly used for third party billing).

The Department entered on the job will be the default department whenever the job number is used, but can be changed.

The Status on the job helps when running reports and no entries can be made to a job in a Closed status.

Costs are tracked as Types and Job Classes:

  • Types are hardcoded and cannot be changed. They consist of Material, Equipment, Labor, Subcontract, Permits and Other.
  • Job Classes are sub-categories of Types and determine where an item appears on the job reports. They are optional and are generally recommended for payroll or labor breakdowns. Examples of job labor classes are Startup Labor, Duct Labor, Finish Labor and Electric Labor. Job classes can be entered throughout ESC in screens, such as Purchase Orders, Time Entry, Enter Bills. Job Classes are setup in Company → Enter Job Classes.

Items received from a Purchase Order can automatically be costed to a Job by selecting the Automatically cost inventory items received to a job option in Company → System Setup → Inventory.

Multiple Quotes can be entered per job and multiple dispatches are allowed per quote, but only one invoice per dispatch.

Full Job Costing

How Full Job Costing Works
All transactions (Journal Entries, AP Bills, Checks, Inventory items, etc.) can be tracked by entering a Job Number on the transaction.

One Time Setup

  • Inventory – Make sure all parts that will be used on jobs are setup in inventory.
  • Job Classes – Setup any desired Job Classes in Company → Enter Job Classes.
  • Pay Rates – Labor costs go to the job reports from payroll. Make sure all employees that will be working on the job have the correct pay rates setup in the Payroll tab of Employees → Enter Employees.


The Process

The same process used for Sales Job Costing can be used for Full Job Costing, but reporting is not limited to just the entries on the Sales invoice. Labor hits the Job Reports from payroll, instead of the dispatch and non-inventory expenses come directly from Accounts Payable or Banking using the methods described below. When using this hybrid method, it is important not to cost the items twice.  For information on Job Costing through a Sales Invoice, you'll want to view the Job Costing with Sales method.  In this article, we will describe getting the costs to the job without going through an invoice.

Enter the Quote

Even though we are not listing all the parts required for the job on the quote, to do progressive billing, and/or compare the quoted amounts to the actual amounts, a quote is still required.

To enter a quote, go to Sales → Quote List → Add. If the quote has not yet been accepted, leave the Status as Pending. In the example below, the "Contract Amount" is the only line that will print on the quote. By entering the estimated costs for labor, material, permits and other, we can tell from the job reports how the job is progressing, how closely we estimated the job and how profitable it was in the end.

Quote is Accepted

When the quote is accepted, go to Sales → Quote List and find the quote by entering the quote number or the customer name in the Search field. Choose the correct quote and click OK.

Set up the Job

Create a new job for this quote by clicking on the word Job in the Quote screen.

The Setup Jobs screen will pop up with the customer field populated by the customer on the quote. To create the job, click the Assign next job number button or manually type in a unique Job Name and make sure the Active box is checked. The job can also be associated with a location, if desired. This can be helpful when identifying jobs if you do a lot of jobs for a customer that has several locations.

At this point, you can associate a Supervisor and Sales person to the job. The Supervisor field can be used to filter reports, but has no other functionality.  The Sales person field, however, will automatically fill in the Sales person field on all progressive invoices created for the job.  You can also assign a Default department to the job, doing this will ensure all transactions made for this job will use this department unless changed by a user.

If the job will start shortly set the Status to Open, otherwise use the Pending status. Set the Start Date and Projected End Date if you know them. Leave the Actual End Date blank.

If you would like to add any notes to the job you can do so on the Notes tab. This is a freeform text field that can be used for everything from phone numbers of job site inspectors to the status of permits needed for the job.

Click Save, then Exit when you are finished.

Back on the Quote screen, change the Status to Accepted. If you will be using dispatches on this job, a dispatch can be created now by clicking the Create Dispatch button at the top of the screen. In this example, we will not be using dispatches. Click Save.

Getting Costs to the Job

Described below are the ways to post costs to the job other than from a sales invoice.

  • Inventory Job Transfer – This is used to transfer parts out of inventory and to the job. Go to Inventory → Inventory Job Transfer and the following screen is displayed. From this screen you can transfer parts to or from a job by changing the Type of Transaction field.

Make sure the account number (it will default to the COGS set as the default in System Accounts) and the date (it will default to the current date) are both correct. Enter the parts you want to transfer to the job at this time, making sure to enter the Job, Job Category (Class) and Warehouse. When the Job Name/Number is entered the default department will populate the Department field, but can be changed. Once the first line item has been entered the Job, Job Class and Warehouse will repeat on the next and subsequent lines until changed, making entry faster and easier.

The one drawback to using this method for costing parts is they will not go to History and Equipment even if they are set to in Inventory Entry.  An Inventory Transaction report filtered by Job (Inventory → Reports) shows materials and equipment used on the job and removed from inventory using this screen.

  • Accounts Payable Bills – When entering an AP bill, entering the Job Name/Number and Job Class will tie that line item to the job. As shown in the example below, more than one job can be represented on a bill.

  • Banking – When entering a check, entering the Job Name/Number and Job Class will tie that line item to the job. As shown in the example below, more than one job can be represented on a check.


  • Payroll – When entering time for payroll, entering the Job Name/Number and Job Class will tie that line item to the job.

  • Journal Entries – Line items in Journal Entries can also be tied to a job by entering a Job Name/Number and Job Class.

  • Purchase Orders – When ordering parts specifically for a job, the parts can be received directly to the job. To do this enter a PO for the required item(s) with the Job Name/Number and Job Class for each line item.

    Next, receive the items.

    When a Job Name/Number is on a PO and items are received on that PO, you will be asked if you wish to cost items to a job.

    Answer Yes and you will be taken to the Inventory Job Transfer screen. At this point you can modify, add or remove any items you want posted to a job. Check the Cost Account (this should be a Cost of Goods account) and click Save.

Billing the Job

Bill the job by pulling up the quote, clicking Bill and choosing one of the following:

  • Convert Quote into Invoice – One invoice is generated for the quote.
  • Progressive Bill – Multiple invoices are generated from the quote.

Closing the Job

When the job is complete, all expenses have been entered and the quote is fully invoiced, go to Customer Info → Job List, pull up the Job and change the Status to Closed.

2 people found this helpful



Please sign in to leave a comment.