Skip to content

Use case · Month-end

Month-end cost reporting on a construction project

The close comes round whether the numbers are ready or not. The work is rarely the reporting itself — it is assembling a cost position from a diary, a set of registers and a Finance export, then defending the differences between them under time pressure.

Foras is built so the position exists before the close starts, and every difference between site and Finance carries a recorded decision.

Northgate Logistics Park — Phase 2

Position · Aug 2026 · Demo data

Captured

£11.85m

Finance

£10.47m

Adjusted CTD

£11.97m

Illustrative Finance position by cost code, comparing captured project cost with Finance actuals, the difference, reconciliation adjustments, adjusted cost to date and the current position decision.
Cost codeCapturedFinanceDifferenceAdjustmentsAdjusted CTDDecision
150Project Management£1.84m£1.78m£60k£1.84mTiming
210Labour£2.96m£2.70m£262k£2.96m
311Shoring£1.43m£1.54m−£115k+£115k£1.54mMatch Finance
707Subcontract£3.18m£3.02m£158k£3.18m

Difference = Captured − Finance. A negative difference means captured cost sits below Finance. Shoring shows a Match Finance adjustment of +£115,000, so adjusted CTD equals the Finance position to date. Values rounded for display.

4 of 26 cost-code positions shownActual Foras interface pattern · Illustrative demo data

Why the close is hard

It is not a reporting problem. It is a reconciliation problem with a deadline.

Most of the effort in a month-end pack goes into making two records of the same project agree, then explaining where they still do not.

01

Two clocks run at once

Site works to the day the work happened. Finance works to the period the invoice was posted. At the close those two views are compared as if they measured the same thing, and they never quite do.

02

The inputs arrive last

Subcontract applications, supplier invoices and plant hire charges land in the final days before the pack is due. The report is written while the numbers underneath it are still moving.

03

Differences get absorbed, not explained

When captured cost and posted actuals disagree, the pressure is to make the total look right rather than record why the two differ. A month later nobody can reconstruct the reasoning.

04

The forecast is rebuilt from scratch

Because the position is assembled by hand each month, the forecast that sits on it is also reassembled. Movement between periods becomes very hard to attribute.

How it usually goes

A workbook, a Finance export and a long evening

The common approach is a project cost workbook maintained by the QS or Commercial Manager. Site activity is typed in from diaries or timesheets, subcontract and supplier commitments are tracked on separate tabs, and a Finance export is pasted in once the ledger closes.

It works, until it does not. The coding on the Finance export drifts from the coding in the workbook. Cost that cannot be matched gets parked in a balancing line. Two people hold slightly different versions. And the reasoning that resolved last month — why a £40,000 difference was treated as timing rather than a real overspend — lives in someone’s memory rather than in the file.

None of that is carelessness. It is the predictable result of the record of the work and the record of the cost living in different systems, joined by hand once a month.

Northgate Logistics Park — Phase 2

Forecast · Aug 2026 · Demo data

Approved Budget

£18,420,000

Original Budget + Approved Variations

Adj CTD

£11,964,300

Raw CTD + Adjustments

Forecast CTC

£6,941,100

Qty × Rate × Util%

Forecast Final Cost

£18,905,400

Adj CTD + CTC

Forecast Variance

£485,400 over

2.6% over Approved Budget

Actual Foras interface pattern · Illustrative demo data

Actual Foras interface pattern. Figures are illustrative demo data from the Northgate Logistics Park demo project.

How Foras supports the close

Four things that are already done before the deadline

01

Captured cost is already there

Labour, plant, materials, subcontract and management cost have been recorded through the month against cost codes, dated to when the work occurred. There is no consolidation exercise to start the close with.

02

Finance actuals come in beside it

Posted actuals are imported and set alongside captured cost per cost code. Finance stays authoritative for what has been posted; Foras does not write anything back to the ledger.

03

Every difference gets a decision

Where captured cost and Finance disagree, the difference is resolved with a recorded decision — Timing, or Match Finance — and an adjustment where one applies. The reason and the author stay with the record.

04

The forecast is built on the reconciled position

Adjusted cost to date feeds cost to complete and forecast final cost, so the number reported is the number the reconciliation produced rather than a separate estimate.

Finance remains authoritative for posted actuals throughout. Foras imports and reconciles against the ledger; it does not post to it, and it does not replace your accounting process.

What changes in practice

Month to month

The pack starts from a position, not a blank sheet

Consolidation happens continuously through the month, so the close is a review and a set of decisions rather than a rebuild.

Differences are on the record

Each reconciliation decision carries a reason and an author, so a question in November about the September pack has an answer.

The reported forecast has a lineage

Forecast final cost traces back through adjusted cost to date to the captured records and the Finance actuals it was reconciled against.

Late postings do not invalidate the story

Cost posted after the fact is handled as a difference with a decision attached, instead of quietly changing a number nobody re-explains.

Bring last month’s pack. We’ll walk the same close through Foras.

Use your own cost codes and a real Finance export. We’ll show the position, the differences and the decisions that would have resolved them.