The Cost in Excess of Billings column isn't cost minus billings. I pulled the report definition — it's calculated as:
(Actual Cost ÷ (Original Cost + CO Cost)) × Revised Contract Amount − Actual Revenue
That's earned revenue minus billed revenue.
Which is exactly why your $0 invoices create the variance. They post cost but no revenue, so they hit both halves of that formula:
- Cost rises, which raises % complete, which raises earned revenue
- Revenue doesn't move, so billed revenue stays flat
Both push the number up. The report isn't double-counting the labor — it's reading it as work performed but not yet billed.
Billings on this report come from AR revenue specifically. An invoice with $0 revenue isn't a billing to it, no matter what cost is attached. So the $4,816 is the report telling you the project has earned more than it has billed, which under percentage-of-completion is the correct answer even though it isn't the one you wanted.
One thing worth reconciling separately: PM651500 takes From Period, To Period, and a distinct Actuals to Period. If those don't line up, billings and actuals get measured over different windows — and your billings to period of $29,669 sitting below the $35,485 revenue invoice is worth checking before you attribute the whole gap to the $0 invoices.