Many businesses like to keep really good records regarding the true cost of each customer/job. While it is not easy to capture everything, QuickBooks does make it possible to track much of the expense.
For billable time:
Record the hours spent on the job, using either a weekly timesheet or a single activity entry. Assign the hours to the customer or job (if you're tracking by job).
Each entry will automatically be checked in the Billable column on the form.
For job-related purchases:
(Items purchased for a job, subcontracted services) Use a bill, check, or credit card charge to record the purchase. On the Items tab, enter each item or service you purchased.
In the Customer:Job column, be sure to assign each item or service to the customer or job (if you're tracking by job).
For overhead expenses:
Expenses not caused by any specific job (rent, office supplies, etc.) should not be assigned to a Customer:Job. However, you might still want to see these expenses on job costing reports.
To do that, create a dummy Customer:Job called "Overhead" and then assign all of your overhead costs to that fake job.
Record the mileage in the Enter Vehicle Mileage window. If you want to change the amount for this expense (to charge the customer more than the standard rate), you can change it on the invoice.
For other expenses:
(Freight charges, postage, etc.) Use a bill, check, or credit card charge to record the expenses. On the Expenses tab, enter each expense.
In the Customer:Job column, be sure to assign each expense to the customer or job (if you're tracking by job).