Ownership Assurance
Who really owns this company — and how do you know?
The Canonical Ownership engine reconstructs a company’s share register from its public Companies House filings, states the filing behind every figure, grades how sure it is, and stops when the evidence contradicts itself. It is a number you can check, not a number you have to trust.

The problem
Companies House does not publish a share register.
It publishes filings. The register of members is the company’s own book, and when you take on a client you inherit whatever the last adviser kept — a spreadsheet, a PDF, a folder of incorporation papers, or a confident recollection.
So the ownership question gets answered by hand: open the filing history, read the last confirmation statement, check whether any SH01 came after it, work out whether the numbers still add up, and compare the result against the PSC register. Repeated at every onboarding, every annual review and every corporate action — and the working is thrown away each time.
When it goes wrong it goes wrong quietly. A PSC band that was right at incorporation and wrong after an allotment. A transfer that was minuted but never reflected. A register that allocates more shares than the company ever issued, carried forward for years because nobody added up the column.
How it works
Five deterministic steps, and a reason at every one.
The engine is a pure function. It performs no network calls, no database writes and does not read the clock — the same filings produce the same conclusion every time, which is what makes the output reproducible in front of a client.
Read what was actually filed
Incorporation documents (IN01), returns of allotment (SH01), confirmation statements (CS01), annual returns (AR01), purchases and cancellations of own shares (SH03/SH06), and the PSC register. Deterministic parsers, no language model in the path. A figure is only emitted when it was extracted — an unreadable field stays unknown and says so.
Stamp every figure with its source
Each extracted event carries its provenance in the form an accountant would write it — “SH01 dated 01/02/2024” — together with the evidence snippet the parser read it from and a link to the document. Where a filing is a scan and an OCR provider is configured, OCR runs only on an explicit instruction, and anything it produces is labelled OCR-derived so the reviewer knows to check the source document.
Fold the filings into a dated ledger
Events are ordered by effective date, then filing date, so the result never depends on the order the documents arrived in. A duplicate filing is dropped before folding, so a movement is never counted twice. A later authoritative statement of capital supersedes an earlier running total, and the supersession is written down rather than silently applied. A reduction larger than the shares in existence is refused and raised as an evidence conflict — the outstanding total is never driven negative.
Look through corporate shareholders
Where a shareholder is a company, the chain is walked recursively against Companies House until it reaches natural persons. It is cycle-safe, and where a chain stops the reason is stated: dissolved, overseas, no Companies House record, a name that matched more than one company, or Companies House unreachable. A chain that cannot be seen through is reported as unresolved, never guessed.
Grade the confidence, and show the arithmetic
The score starts at 100 and only ever deducts, for genuine doubt or contradiction: −40 for an over-allocated register, −25 where the share totals contradict the evidence, −18 where filings disagree with each other, −15 for issued shares attributed to nobody, −15 for a PSC the reconstruction cannot explain. 90 and above is high; 70 to 89 medium; below that low. It never deducts for pipeline state — a look-through still running, OCR not yet run, an older confirmation statement — because none of those is a reason to doubt the conclusion.
PSC reconciliation
The bands are prescribed. The boundaries are the point.
The reconstructed holding is converted into the control band the PSC regulations prescribe, and compared with the band the company has actually filed. Two of the three boundaries are inclusive, and getting one wrong is not cosmetic.
25–50%
More than 25% but not more than 50%
The lower bound is exclusive: exactly 25% is not registrable on shareholding alone.
50–75%
More than 50% but less than 75%
Both bounds exclusive — the band stops short of 75%.
75–100%
75% or more
Inclusive. Exactly 75% belongs in this band, not the one below it.
75% is the special-resolution threshold under section 283(2) of the Companies Act 2006, which makes it one of the most deliberately constructed shareholdings in a UK private company. Treating the boundary as exclusive would put a holding of exactly 75% into the middle band — and the product would then tell a firm its correct PSC filing was wrong, and invite them to change it.
The reconciliation runs in both directions. Someone who holds more than 25% in the reconstruction but is absent from the PSC register is flagged; a filed PSC the reconstruction cannot account for is flagged. Control is tested along the whole ownership chain rather than by the multiplied economic percentage, so an indirect controller of a majority chain is caught and a genuine minority is not falsely accused. A PSC whose only nature of control is a voting or appointment right is never treated as a gap, because such a person legitimately holds no shares at all.
A band that merely disagrees is reported as a data-quality note and deliberately does not move the confidence score: the share register is the authoritative record, and a stale PSC filing is a thing to correct, not a reason to doubt the register.
The safety gate
A contradiction stops the work. It is never resolved for you.
Any of these is a blocking error. The engine reports that it cannot safely approve, and says which one it is:
- A share class allocates more shares than were issued — the percentages are self-contradictory, so no percentage is shown.
- A capital movement conflicts with the recorded balance.
- There is no reconstructed register to conclude from.
- The live register no longer matches the reconstruction it was applied from.
An approved conclusion is not the default state. It requires high confidence, no PSC the reconstruction cannot explain, and no share movement recorded without a number — because a movement of unknown size means the total may be understated, and that must never sit underneath the word “confirmed”.
Everything short of that is returned as “review before approval”, with the specific reason attached. Where more evidence would settle the question, the engine names the next step — resolve this corporate shareholder, acquire this document — and waits for a person.
The guarantee is structural rather than a policy anyone can forget. The reconstruction function performs no input or output at all: no database, no network, no clock. It has no means of touching a statutory register. Writing to the register is a separate, explicit, add-only action behind a confirmation that states exactly what will be written, and it is recorded against the person who took it.
On the workbench
Six things on one screen, and the working behind each.
The point is not that the software has an opinion about ownership. It is that the opinion arrives with its evidence attached, so a reviewer can check it rather than take it on trust — and answer for it afterwards.
The register, per shareholder, with its derivation
Each holding traced back through the filings that produced it: what changed, on what date, from which document, and the running total after it. Aliases are merged so one person is counted once.
An explanation for the conclusion
Why the confidence is what it is, positive and negative, from the same facts that produced it. Nothing in the explanation is recomputed, so the reasoning and the number cannot drift apart.
A dated evidence timeline
Plain English, in filing order, so a genuine difference between two Companies House filings made on different dates is explained rather than shown as a bare warning.
Reconciliation by share class
Issued against allocated, the difference, the status and how it was derived — with recommended corrections where the arithmetic points to one.
An ownership tree with look-through
Direct holdings, indirect holdings and effective ownership, with the resolution state of every corporate node on the way down.
The same reconstruction, as at a past date
The engine folds only the events effective on or before the date you ask about, so ownership, capital and confidence are all reported as they stood then.
Honest limits
What it does not do.
A tool that claims to know everything about ownership is a tool you have to check anyway. These are the boundaries, stated plainly, because knowing where the engine stops is what makes the rest of it usable.
- It can only see what has been filed
- An unfiled share transfer, a declaration of trust, a nominee arrangement recorded nowhere public, an option or a bespoke provision in the articles are all invisible to it. Companies House does not publish a complete current register of members — it publishes filings. The reconstruction is a best-effort reading of those filings, and it is presented as a proposal to check, never as the answer.
- It does not file anything
- There is no code path in this product that transmits a confirmation statement to Companies House. It prepares; a person at your practice submits. That is a deliberate design decision, not a gap waiting to be closed.
- It does not move your register on its own
- Applying a proposal is a separate, explicit action that adds to the register and never overwrites it, behind a confirmation that states exactly what will be written. The decision, and who made it, is recorded.
- It does not give an opinion on the law
- Bands, thresholds and deadlines are computed from the statutory rules and shown with their source. Whether a particular arrangement amounts to significant control is a judgement for the qualified person reviewing it.
Bring the client whose register you have never trusted.
Half an hour, no slides. We will run the engine against a company you already know the answer to, and then against one you do not — and show you where it says it cannot be sure.