KTS
Staff Portal
The internal operations suite that runs KTS Pro Solutions itself — projects and time, a client pipeline from first quote to signed contract, milestone invoicing, and a full accounting back office with bank reconciliation, in one secure system.
The system we
run ourselves.
The best proof of what KTS can build is the system KTS runs its own business on. The Staff Portal replaces a stack of spreadsheets and disconnected apps with one secure, engineered platform — tracking every project, logging every hour, taking a client from first quote to signed contract, raising the invoices and keeping the books. (The screenshots are from a demonstration copy: every client, person and figure in them is invented.)
Operations Dashboard
Active projects, hours, revenue, outstanding invoices and recent activity on one screen.
Projects & Time
A project register across every client, with hours logged against each and value tracked as the work happens.
Client Pipeline
From prospect to priced quote, to a contract the client signs online, countersigned in the portal.
Milestone Invoicing
Each contract carries a milestone schedule that drafts its invoices as they fall due.
Accounting Suite
Ledger, P&L, balance sheet, a VAT view and self-assessment, all from the same live data.
Bank Reconciliation
Monzo CSV import with suggested categories, rules and auto-match.
Planning
A “Today” agenda and a calendar, both scheduled against the capacity set for the week.
Every project and hour,
tracked properly.
Projects are organised across every client, each with tasks, logged hours, an estimate, a value and a status — so nothing is forgotten and everything is billable.
Time is logged straight against projects, feeding both the dashboard and the invoicing. The raw material for accurate billing is captured as the work happens.
Each day has a plan measured against the hours available, with what is overdue, what is due today and what is coming this week, and a calendar shows the same work across the month.
The project register, across every client
Today’s plan, measured against capacity
The month: what is due and what is planned
From first quote
to signed contract.
A new client is taken from prospect to a priced quote using the same pricing engine as the published price list, so a quote can never disagree with the website. The client reviews and signs it online in the KTS client portal; it comes back to the Staff Portal to be countersigned, and becomes a contract with a milestone schedule.
The rules a business owner might forget are enforced in code, not left to memory: a quote can’t be issued until the VAT position and the terms of business are confirmed, and a consumer’s cooling-off period is respected before work or billing starts. The terms are pinned to the exact version the client signed, and a daily job drafts each milestone’s invoice as it falls due.
The quote builder: the written proposal
Lines priced from the published price list
A countersigned contract and its payment schedule
One client record: quote, contract and projects
Unbilled work,
invoiced in a click.
Billing is built in. The invoices screen lists every project with work ready to bill and its unbilled total, and turns it into a numbered invoice in one click, with a PDF kept of each one issued — and no third-party invoicing subscription.
Because hours are logged against projects as the work happens, the invoice is right the first time.
Work ready to bill, and every invoice raised
An issued invoice, as the client sees it
A full set of books,
built in.
The portal goes where most business systems stop: an accounting workspace covering the ledger, profit and loss, the balance sheet, a VAT view laid out as boxes 1 to 7 of a VAT return, and a self-assessment estimate — all generated from the same live data that drives projects and invoices.
It turns the dread of year-end into a dashboard. This is the depth of system KTS builds for clients, proven on its own operation.
Import the bank,
match in minutes.
The accounts import a Monzo bank statement and reconcile it: each transaction is presented for review with a suggested category and account, rules learn the regular ones, and an auto-match button clears the routine entries in bulk.
It keeps the books current with minimal manual effort — the kind of quietly powerful automation that separates a real system from a spreadsheet.
Bank lines to review, each with a suggested category
Rules that match the regular ones
Tech Stack
A dense, dark “operator” system built on a modern, type-safe stack — engineered for daily use, not a demo.
Frontend
Next.js 14 · React 18 · Radix UI
Database
Prisma ORM · Supabase Postgres
Auth
NextAuth v5 — email and password
Documents
react-pdf — contracts, quotes and invoices
Import
papaparse — Monzo CSV bank import
Scheduling
Vercel Cron — daily milestone run
Quality
Zod-validated config · Vitest test suite
Hosting
Vercel
Want a system like this?
If your business runs on spreadsheets and half a dozen apps, a single bespoke system can replace them — built around how you actually work. Get in touch and let’s scope yours.
Management system packages and prices