Estimates vs. Actuals in QuickBooks Online Advanced: The Setup Users Miss
QuickBooks Online Advanced users comparing project estimates to actual costs must first enable the items table and map products to expense accounts.
QuickBooks Online Advanced subscribers who try to weigh a project’s estimated costs against real spending keep hitting the same wall. The comparison is not a report you can simply open. It depends on two account settings that sit far from anything labelled projects, and the symptoms of skipping them are easy to misread as a fault.
The question came through the Singapore English edition of the help pages, where a recently updated accepted answer sets out the full sequence. We traced it end to end. The pattern is consistent: the feature is sold as forecasting, but the groundwork lives in expense settings and item records that many accounts never touch.
The symptom: an estimate with no cost side
The telltale sign is an estimate that only half works. You forecast income on a project, invoice against that forecast, and pay the supplier bills. When you then go looking for the variance, the actuals come back thin or empty. The reason is simple once you see it. Your expenses were never recorded against the products and services the estimate used, so there is nothing for the software to line up.
A second symptom appears earlier in the flow. Starting an estimate from inside a project can drop you on the project estimate form rather than the familiar Estimates page. It reads like a redirect glitch. It is a setting, and we come back to it below.
Turn on the items table for expense forms
The first fix decides whether bills and expenses can carry product and service lines at all. Open Settings, then Account and settings, then Expenses. Under Bills and expenses, select Edit and switch on the option to show the items table on expense and purchase forms. Save, then select Done.
Nothing in that path mentions projects, which is why people miss it. Without this toggle, a cost cannot be attached to an item at all. The actuals side of any later comparison stays blank regardless of what the estimate promised.
Map each product and service to a cost account
The second fix tells each item where its cost belongs. Go to Settings, then Products and services, and open an item from the Action column. Tick the box indicating you buy this service from a supplier, choose an Expense or Cost of Sales account from the dropdown, and save. Then repeat for every item you plan to estimate.
The software will not guess this for you. An item with no mapped cost account cannot carry a cost rate on a project estimate. The mapping has to exist before the estimate is built, not after the numbers look wrong.
Build the estimate inside the project
With the groundwork done, open the Projects app and select the project. From the Add to project dropdown, choose Project estimate. Each line takes a product or service, a quantity, and two optional rates. Your rate holds the cost rate; leave it blank if you are forecasting income only. Customer rate holds the sales rate; leave that blank if costs are all you care about.
The markup column fills itself from the gap between the two rates, and editing the markup recalculates the customer rate. Totals for estimated cost, income, and profit margin update as you work. Save the estimate, or review and email it. The copy your customer sees hides your costs, your markup, and your margin.
The redirect that is not a bug
If selecting an estimate inside a project sends you to the project estimate page instead of the Estimates page, the conversion setting is responsible. The control lives on the Estimates page itself. Open Manage, choose Customisation, and adjust the project estimate conversion option there. It is intended behaviour with a non-obvious home, which is exactly why it gets reported as a fault.
The estimates vs. actuals report needs itemized actuals
This is the part users ask about first and set up last. The comparison draws on two streams. Actual income comes from invoices, including invoices converted from the estimate. Actual costs come from bills and expenses that use the items table you switched on earlier. The Projects app keeps its reporting in one place, and the estimates vs. actuals report sits among it. Run it against a single project and it sets estimated quantities and rates beside what you actually billed and spent.
The variance is the point. A line with estimated cost but no actuals usually means an expense was booked without an item, or against a different one. The report cannot repair that after the fact. It can only compare what was itemized, so the discipline has to happen at entry: every project cost goes on a bill or expense carrying the same product or service the estimate used.
The short version
None of this is difficult, but the order matters. Enable the items table, map a cost account to every item you will estimate, build the estimate inside the project, and keep actuals itemized as they land. Done in that order, the report gives you a genuine plan-versus-spend picture. Skip the mapping step and you get half a comparison, and no setting will backfill the missing half later.