Project Expenses Missing From Invoices in QuickBooks Online
QuickBooks Online users track project costs that never reach the invoice; enabling billable expenses and flagging lines is the accepted fix.
A familiar pattern keeps surfacing in QuickBooks Online community threads. A team logs every cost against a project, hours go in week after week, and the client invoice still goes out bare. The work sits safely in the file; nobody is ever billed for it. The Projects feature belongs to the Plus and Advanced tiers, so that is where the question lands.
The symptom, and the assumption behind it
On the surface it looks like data loss. The expense exists inside the project view, the timesheet exists, yet nothing offers itself when the invoice is written.
The accepted answer, maintained by Intuit’s help team, frames it differently. Nothing is missing; nothing was ever marked as billable. The software refuses to move a cost onto an invoice unless two conditions hold. The account must have billable expenses switched on, and every cost must be flagged at the moment it is entered. Miss one condition and the invoice has nothing to draw from.
Decide the billing model first
Its first move is a fork that many users skip. If you charge for time and materials, project costs and timesheets are meant to reach the client, and the full setup below applies. If you charge a fixed price, the normal route is one quotation covering the whole job, converted to an invoice when work begins. Even fixed-price work has a common exception. When a client requests extra work outside the original plan, billing that specific cost on its own line makes sense, and the billable machinery earns its keep.
The switch that unlocks billable costs
First comes the account-level setting. Open Settings, choose Account and settings, then open the Expenses tab. Select Edit inside the Expenses area, find the bills and expenses options, and turn on the control that makes expenses and items billable. Confirm the prompt that appears the first time, then save and close the settings screen. One extra choice lives on the same panel: a markup percentage, which adds a margin to costs when they reach an invoice. It is optional, and leaving it alone changes nothing else.
Flagging costs inside the project
With the switch on, the work moves to each entry. In the Projects area, open the project in question, then use the Add to project menu and choose Expense. Fill in the form as usual, and tick the Billable box beside each line you intend to charge. The dropdown that decides everything is Customer/Project. It is not the payee. The payee says who you paid; this field says who will be billed. Confusing the two is the most common reason a flagged cost never reaches an invoice.
Hours take the same path through a different door. Create a single time activity, choose the person doing the work, the client, and the service, then tick the billable box and enter the rate. Saved that way, the hours join the same invoice flow as expenses.
How do flagged items finally reach the invoice?
This is the step most threads gloss over. A flag does not bill anything by itself; it only makes a cost eligible. Open a new invoice and set the bill-to field to the client or the project. QuickBooks then opens a panel beside the form listing unbilled time and costs. Tick the entries you want, and each one drops onto the invoice as its own line, with any markup applied. Time and costs sit separately in that panel, so one document can carry both, or hold either back for later. Anything left unticked stays eligible for a future invoice. From that point the project view records the cost as invoiced rather than merely spent.
Where does it still go wrong?
An empty panel has a short list of usual causes. Check that the switch was on before the cost was entered, because lines saved earlier keep their original non-billable state. Check that the line points at the right client or project, not merely at a payee. And check that the amount was saved as a genuine expense or time activity. Entries that never met those conditions have to be corrected at the source, then flagged again, before the invoice can see them.
The short version: the flag, not the invoice, is what makes a cost billable. Switch the setting on once, flag each line as you enter it, and the invoice panel does the rest. Miss one link and costs keep piling up inside the project, quietly unbilled.