Mintmark
Previous: F-01Next: F-03
Affects the priceF-02 · Architecture and scale · confidence high

The reporting database can't cope with the planned growth

Customer reports and live scheduling use the same database. Reports already take most of its capacity at month end. At about three times today's customers, scheduling will slow down for everyone whenever reports run.

Why it matters to this deal

You need the platform to handle ten times today's customers. The scheduling engine can. This database can't, so that's only true if this work is done. The business plan reaches three times in month 14.

Evidence

Three of the nine pieces of evidence. Each was checked again against the code before release.

1. The report query runs on the main database and reads the whole jobs tableCode · commit 9f3c41d
services/reporting/queries/utilisation.ts, lines 41 to 50
41export async function utilisationByDepot(range: DateRange) {
42 return primary.query(
43 "SELECT depot_id, date_trunc('day', starts_at) AS day,"
44 + " count(*) AS jobs, sum(duration_min) AS minutes"
45 + " FROM jobs"
46 + " WHERE starts_at BETWEEN $1 AND $2"
47 + " GROUP BY depot_id, day",
48 [range.from, range.to]
49 );
50}
Line 42 uses the main database. Lines 45 and 46 read every job in the period, with no customer filter and no index on starts_at.sha256 4be19a02…7c31
2. The live system has one database and no read-only copyCloud inventory · 3 Nov 2026 09:14 UTC
Resource
rds / kestrel-prod
Read-only copies
None
Standby in a second zone
Yes
Used by
scheduler, api, reporting
3. The database is already close to its limit at month endData room · document 14, page 3
86%
August month end, busiest point
91%
September month end, busiest point
88%
October month end, busiest point
34%
Typical weekday, busiest point
Share of the database's processor in use.
Show the other six

Management's reply

Chief technology officer, Kestrel7 Nov 2026

We accept the finding. A read replica is planned for the first quarter. We dispute the threshold: our own estimate is that this bites at five times, not three.

Analyst's decision: partly accepted8 Nov 2026

The planned replica is noted. If it's delivered before completion, the likely cost falls by £45k. The threshold stays at three times: month-end load is already 86 to 91%, and no evidence was given for five.

Ask a question

What would it cost to do only the read-only copy?

About £45k of the £180k. It fixes the month-end slowdown but not the limit on growth. That needs reporting moved to its own database.

F-02 fix, step 1services/reporting/db.ts:12
Could they move reporting to a managed data warehouse instead?

The evidence in this report doesn't answer that. Your question went to the analyst on 8 Nov at 16:40. The reply will appear here.

With the analyst