Projects and project groups as the costing unit
Every job's costs and revenue are tracked against a project or a project group, giving finance a single, consistent unit of account whether the work is one contract or a family of related jobs run under one client relationship.
Phase management with journalled close
Phases give a project internal structure. Closing one is not a status flip — it drafts and posts a balanced journal that reclassifies the phase's accumulated work in progress to its cost account, and the phase is stamped with the exact journal id that closed it, so every closed phase names its own audit trail.
Flexible cost allocation across phases
Shared costs split across phases on the basis that fits the job: headcount for labour-heavy work, an explicit percentage where the split is contractual, or actual cost to date where allocation should track real progress rather than a fixed rule.
Time entries with separate cost and billing rates
A time entry against a project task carries a cost rate and a billing rate held independently, so internal cost is always computed correctly whether or not the time turns out to be billable to the client — no separate reconciliation needed later.
One costing snapshot: labour, budget and profitability
Instead of assembling three separate reports, the project costing snapshot composes labour rollup, budget versus actual, and profitability into a single view, so a project manager can answer 'are we making money on this job' in one screen.
Budget versus actual that includes committed spend
Open, not-yet-invoiced purchase commitments tagged to the project sit alongside posted actuals in the budget-versus-actual view, with their own committed-variance and percent-used-with-committed figures — while actual-only figures keep their original, unblended meaning for anyone who needs them.
Milestone billing with retention
Milestones schedule the billing plan; invoicing an achieved milestone stamps it invoiced so it cannot silently be billed twice, posting writes the receivable debit and revenue credit where accounts are configured, and retention is held back from the amount due at that milestone's own retention percentage — standard practice on GCC contracting jobs.
Invoice straight from approved timesheets
For time-and-materials style work, an approved, billable timesheet batch raises its own invoice directly — no manual re-entry of hours into a separate billing document, and no gap between what was worked and what was billed.
Server-side project listing, sorted and filtered
The projects list applies sorting and filtering on the server so a portfolio of hundreds of jobs stays responsive, rather than pulling every record to the browser and filtering client-side.