Billing & accounting
What this covers
Section titled “What this covers”Two flows of money run through a job in opposite directions: what the client is billed for work completed, and what we are billed by the trades and suppliers doing it. This area covers both, and how each one reaches the books.
Progress billing
Section titled “Progress billing”Billing follows the work rather than the calendar. The contract is broken into billable line items — Billing Items, what commercial contracting calls a schedule of values — and each billing period a Pay Application is raised against those lines by entering the percent complete on each.
Because a billing is measured line by line, it can be read against the scope it belongs to. The question a pay application answers is not “what is owed this month” but “which parts of this job progressed, and by how much.”
Payments are recorded against the pay application they settle. Each billing therefore carries its own history: what was claimed, what was agreed, what has been received, and what is still outstanding.
Lines carried forward between Billing Items
Section titled “Lines carried forward between Billing Items”Each new Billing Item on a contract opens from the one before it, carrying every line forward at the value it closed at, so the contract balance runs unbroken from one billing period to the next.
Ten projects were repaired on 15 September 2026, across twenty-one Billing Items, restoring $120,986.93 of understated contract value. Every repaired Billing Item now reconciles to its pay applications exactly, and no billing had been wrong. All ten were projects billed for design work.
Negative Billing Item adjustments associated with a change order can be posted; they are no longer rejected simply because the amount is below zero. Check the adjustment against the change order before posting.
Retention — a percentage withheld from each billing until the work is accepted — exists in KI but is not used in Story’s instance, so billings here are not withheld against it.
Vendor invoices
Section titled “Vendor invoices”Invoices from trades and suppliers are uploaded in Legacy KI, keyed in by accounting, then assigned to a project or routed to an approver. The approver codes and approves the invoice, and KI runs three checks at that point:
- that the cost does not exceed the commitment,
- that it does not exceed the budget, and
- that the amount entered by the approver ties to the amount accounting entered.
Approved invoices go back to accounting for a final approval and double-check, then push to QuickBooks.
In Legacy KI’s Accounts Payable list, someone who sees only their own projects’ invoices also sees the ones delegated to them. An invoice not yet assigned to a project is on nobody’s projects, so it shows only to the person it is delegated to.
Subcontractor compliance sits alongside those checks as a business rule: a subcontractor providing labour must have a signed Master Agreement and current insurance on file in the Companies module before its invoice is paid. What is on file, and when it expires, is held on the company record — see the company record.
Approving a vendor invoice
Section titled “Approving a vendor invoice”The approval step runs in the Admin Portal. Everything either side of it still runs in Legacy KI: accounting uploads and keys the invoice there, and the final accounting approval and the push to QuickBooks happen there too. Only the invoices sitting at Pending Approval have moved. An invoice in any other status is worked in Legacy KI as before: Unassigned, with accounting, or already exported.
Invoices is in the left navigation for anyone whose role can approve invoices. If it is not in your menu, your role does not include invoice approval — see Roles and access.
The page opens on Needs approval: the invoices you are the approver for, grouped by project, newest first within each project. Selecting one opens it alongside the scan of the invoice itself, so the coding can be checked against the document rather than from memory.
The cost-code selector shows the selected project’s codes. Check the project and coding against the invoice before approving it.
One invoice can be coded to several projects. Switch on Code to multiple projects and each line takes its own project, with that project’s cost codes, as it does in Legacy KI. A line with no project is overhead and takes a general ledger code only.
From there you can edit the payee, the invoice details and the cost code lines, and then:
- Approve it, which asks you to confirm and moves it to the Approved tab. Approve stays greyed out until every line with an amount is fully coded — a general ledger code, and a cost code on any line with a project. If the coded lines do not total the amount accounting entered, approving raises a warning that says so before it goes through — the third of the three checks above, which Legacy KI has always made. The warning appears on Approve, not on save, so editing the coding without approving it will not raise it.
- Reject it, which requires a reason.
- Delegate it to someone else. A project’s group header also delegates every invoice under that project at once, for when somebody is away.
- Invoice History, the audit trail of who did what to it.
- Delete it.
Approving hands the invoice to accounting; it does not send it to QuickBooks. It moves to accounting for the final check, and from there it moves on only when accounting exports it to QuickBooks, the same rule as Legacy KI. An invoice at that stage shows Approved — this invoice moves on only when Accounting exports it to QuickBooks in place of the Approve button.
The Approved tab is the record rather than a worklist. It shows the last seven days by default and loads further back as you scroll. Approved invoices cannot be edited, but their history is still there to read. Unapprove puts an invoice approved by mistake back into Needs approval so it can be corrected.
Whether you see anything here depends on your project role. A Design Manager approves the invoices on that project’s design contracts; a Planning Manager approves the invoices on its construction contracts. Which of the two an invoice belongs to follows the project’s Division. Hold neither role on any project and the page is empty, which is the rule working as intended.
Billable design hours
Section titled “Billable design hours”Some design contracts include a set number of hours rather than a fixed price. An executed design contract is marked billable or hourly, and a billable one records how many hours it includes.
Time coded to that project by anyone on the team, and ticked as billable, then collects on the contract’s Billable Report — reached from the project’s Project Reports tab, which shows the hours included, the hours billed so far and what remains.
Drawing a report for a date range gathers the entries not already billed. Before it goes out, the person running it can:
- Combine several people’s entries into one line, keeping each person’s hours visible underneath.
- Adjust the hours charged away from the hours recorded, and write the note the client will read, with the team’s own notes still visible alongside.
Those adjustments stay internal — the client’s copy shows the line as it was edited, not the editing. The report stays a draft until it is submitted, so it can be left and come back to, previewed, and regenerated. Past reports stay listed on the tab.
It is a Report while hours remain and an Invoice once they do not. A report carries no amount due. An invoice does, and takes a billable rate to work it out from.
That coding is what makes the cost side real. The actual-cost figures in budgets and cost control are built from coded invoices — documents someone actually received — rather than from an estimate of what has probably been spent by now. It is also what lets a single line on a cost summary be opened up into the specific invoices sitting behind it.
The tie to QuickBooks
Section titled “The tie to QuickBooks”QuickBooks is the general ledger. The division of responsibility is exact: KI owns job costs and project billing; QuickBooks owns the books; the integration keeps the two tied together.
That tie has a hard requirement behind it:
Cost per job in KI must equal cost per job in QuickBooks.
Revenue per job in KI must equal revenue per job in QuickBooks.
Where the two disagree, one of them is wrong and neither can be trusted until the difference is explained. There is no automated reconciliation in the system today, so the comparison is done by hand — this is the single biggest pain point in Accounting and the reconciliation the system needs to close.
It matters most before a WIP — a work-in-progress report — is run. WIPs are run by Division and contract grouping because that is how they tie to the P&L, and a WIP built on job costs or billings that disagree with the general ledger will accrue the wrong over/under-billing.
The Financial Report
Section titled “The Financial Report”A margin view across projects: what each job was budgeted at, what it has actually cost, and where the margin sits now against where it sat last month.
Choose the columns you want. The report shows a lot at once, so columns can be shown or hidden — margin in dollars and in percent, for last month and this month, the movement between them, current budget and current actual cost — and a narrower report aimed at one question is usually the readable one.
Projects that should adjust to zero now do so.
What the client sees
Section titled “What the client sees”A pay application for each billing period, itemised against the Billing Items, so they can see which parts of the work they are being billed for and how far along each one is — not a lump sum with a date on it. They pay outstanding invoices in the Client Portal, and their contracts and change orders sit alongside them.
Related
Section titled “Related”- Part 4 §19 — Accounting — all seven sections, including WIP and payroll
- Contracts and change orders — where Billing Items come from
- Budgets and cost control — what coded invoices feed
- Glossary — Billing Items, pay application, retention, WIP

