Starting…
Projects
| Project | Name | Client | Project manager | Contract value | Invoiced | Uninvoiced | Forward forecast | Labour cost to date | Data as at |
|---|
—
Figure 1 S-curve — cumulative invoice against cumulative cost the gap between the two lines is margin · blue is actual, green is forecast
The whole job on one axis, from the project's first actual to its last forecast. Both lines are cumulative, so they only ever rise; the vertical rule is the cutoff — everything left of it happened, everything right of it is the forecast in Table 2. The shaded gap is margin in dollars, green where invoice leads cost and red where cost leads. The dashed reference is the cost budget the cost line is trying not to cross. Hover a month for its figures.
Table 1 WBS control summary sell budget, invoiced, cost and margin on one row each
One row per WBS, with the accounting codes that feed it. Budget is a sell figure. Cost is a separate side: actual where an imported cost file costs the row, derived at the row's own rate everywhere else. The method and rate are each row's estimate basis. Red is a negative margin.
Table 2 Monthly Forecast
Two rows for every WBS — what you Invoice and what you Cost — because the two do not move together. Blue months are the historical actuals; green months are ProjectWorks' forecast, shown here and changed in ProjectWorks. Budget, Actuals to date and Remaining Budget stay locked on the left; Forecast at Completion stays locked on the right, and all three header rows stay locked on top. Fold a financial year to a single column with the chips, or open all twelve of its months. Compare to an earlier snapshot to see Accuracy on closed months and Deviation on open ones.
Table 3 Total invoice and cost by month the same columns · net position and cumulative
The project rolled up: invoice, cost and the margin between them by month, and the running totals.
Table 4 Margin reconciliation margin at budget, to margin at forecast completion
Where the margin goes between the budget and the forecast. Cost variance per WBS is the bridge. Assumes every dollar of the invoice forecast is billed and collected.
Table 5 Spend with no budget behind it the exception report · what the API can see
Time booked to budget lines with a nil budget, lines invoiced and forecast past a real budget, and negative budget lines. These are not forecast errors — they are work on scope that was never priced, or priced short. The table says what it cannot see.
Table 6 Deviation commentary
Every WBS whose forward book has moved since the chosen baseline by more than — needs a reason. Reasons are saved here once the site can write; until then they travel with the forecast in ProjectWorks.
Notes on the model read this before quoting a figure
About Project Forecast
What this is
Invoice against cost, per WBS, per project, read from ProjectWorks. Each project's budget is set out by WBS; what has been invoiced and what is forecast to be invoiced sits against what the work has cost, month by month.
It is not a cash view. It shows when invoices are raised and when cost is incurred, not when money moves in or out of the bank. Nothing produced from it should be described as cashflow.
Where the data comes from
The report is built from one snapshot per project, taken when the data is loaded. Inside it:
| From | What |
|---|---|
| The ProjectWorks API | Budgets, from each project's modules · invoices, with their lines and payments · forward invoicing, from ProjectWorks forecasts · hours, from the timesheets booked to each task · expense claims |
| A saved ProjectWorks cost report | Labour cost: each timesheet entry's own cost, as ProjectWorks computes it, downloaded from a report saved in ProjectWorks and imported. It is replacing the monthly timesheet export, which stays as a fallback, and each report's Cost sources table names the file its snapshot used. The ProjectWorks API cannot yet deliver this report, so a person still downloads it. |
| The accepted A.7 pack | Which GL codes roll up to which WBS, and each WBS's margin. These are held in the pack's committed data for now and are planned to move into the database. |
The snapshot you are looking at
| Project | — |
| Pulled from ProjectWorks | — |
| Loaded into the database | — |
Access check
| Check | Expected | Result |
|---|
The projects the API returned
| Code | Name | Owner | Active | Report |
|---|
The API token
| Claim | Value |
|---|
Release notes
Current version v1.6 · released 12 Oct 2026
| Version | Released | What changed | Change |
|---|---|---|---|
| v1.6 | 12 Oct 2026 | Every project with data now has a second version, its code with an A, from a second pill on Projects or the button in the report's header. Its first tab is the forecast pack's page: the S-curve with a hover for each month and a filter by accounting code, the WBS control summary, the monthly forecast with its historical actuals, the roll-up, margin reconciliation, spend with no budget and deviation commentary. Negative margin is red. Compare it with an earlier snapshot: closed months show accuracy, open months deviation. It is read-only; the forecast is changed in ProjectWorks. The report's other tabs follow it. | #78 |
| v1.5 | 12 Oct 2026 | Labour cost now comes from a report saved in ProjectWorks, which costs every time entry, instead of the monthly timesheet export, which missed some. The report names the file each project's cost came from, and whether it was the saved report or a timesheet export. | #74 |
| v1.3 | 8 Oct 2026 | The front page is now Projects: every project you can see, with its client, project manager and headline figures. Projects with data loaded sit at the top and open their report from the project pill; the rest are greyed out. Each project and each report tab has its own address, so a link opens straight to it. The project picker is gone. | #65 |
| v1.3 | 7 Oct 2026 | Sign-in comes first, then your project's report opens straight away, with its tabs on a second row under the top bar; a picker appears in the top bar when you can see more than one project. This About page holds what the tool is, where its data comes from, the access check that used to sit on the front page, and these notes. A keyboard focus ring on every control. | #64 |
| v1.1 | 5 Oct 2026 | Both pages restyled to Pirrpala's visual standard: the top bar, the centred sign-in card, cards, tables and status pills. | #57 |
| v1.0 | 2 Oct 2026 | The ProjectWorks report on the site — its ten tabs, from the newest snapshot of the project's data. | #54 |
| v1.0 | 1 Oct 2026 | The site signs in with a Pirrpala Microsoft account, lists the projects the account can see, and proves the sign-in barrier on every load. | #53 |