Skip to content
← Blog & Education · platform 18 min read

What makes a report evidence: readiness, integrity, commentary, approval, signatures

Generating a report is the easy half. What makes it citable is everything after: whether its inputs were measured at all, whether what you are reading is what was signed, who stands behind the sentences a model drafted, who approved it, who signed and in what order — and what the retention floor will not let you do with it afterwards.

By The Talarity team · August 17, 2026

Anyone can produce a PDF. The question an auditor actually asks is narrower and much harder: how do you know this document says what it said when your CFO signed it?

Most tools cannot answer. They render on demand, so the figures move; they attribute nothing, so the prose has no author; and they treat approval as a status field somebody set. Talarity’s report document is built around the opposite assumption — that a report is only useful if every claim on it can be traced to something that happened, and if the parts that could not be established say so plainly instead of rendering a confident blank.

This walkthrough opens generated reports and goes through them in the order the product does. Several of them, because the things worth showing cannot all be true of one document at one moment: a report out for signature, a report whose signers are still being chosen, a report waiting on somebody else’s approval, a report whose commentary is still an unread draft, and a report whose signing round somebody refused are different states of the same lifecycle. Each frame below is the state it describes rather than a staged approximation of it. Where three of them are the SAME document at different moments — the in-review, approved and published frames all are — the captions say so, because a reader comparing two frames deserves to know whether they are looking at one report or two.

Who’s involved

  • Report author — generates a version, clears whatever is blocking it, and routes it to somebody else.
  • Reviewer — a colleague who did not write it. The product enforces that, rather than trusting a convention.
  • Signers — named by the template’s signing order. Being on the order is what admits you; authoring the report is not.
  • Auditor — the reader all of this exists for, and the one who writes nothing.

These are roles in a workflow, not job titles, and two of them are enforced rather than assumed. A reviewer being somebody who did not write the report is a property of the transition itself: the product refuses to let an author approve their own work, whatever permissions they hold, and publishing is reachable only from approved. So two people are structurally required for every report — not by policy, by arithmetic. Publishing additionally carries its own permission string, checked by the server on that transition alone — so the act of publishing is separately named in the audit trail and separately refusable, rather than riding along with whatever let the report be written. It travels with report authoring in the standard page-based grants, so the separation an organisation actually gets is the structural one above: not a permission you withhold, but a second person the lifecycle requires.

Step 1 — Readiness: what had to be true before it ran

A report that renders is not the same as a report that means something. Before a figure exists, the data behind it has to exist, the reader has to be allowed to see it, and the template’s own preconditions have to hold.

The readiness panel states each gap as a sentence rather than a red dot, and — this is the part that matters — it distinguishes between there are no records of this kind and we could not measure whether there are. Those look identical on a dashboard and mean opposite things: the first is a finding, the second is a failure to look.

The top of a generated report, titled for the policy attestation record and the month it covers. The header carries a Draft badge, an "Integrity verified" badge, a "Data as of" date and "Cannot be deleted before" followed by a date seven years out and the words "(at least 7 years)", then a sentence reading "The content hash stored for this report matches what you are reading" above the hash itself. A control row follows — Download PDF, Print this page, Back to history — and then the Readiness card, which states in red "This report has nothing to show", scopes it to "The whole report", and explains "Every figure in this report resolved to no data, so there is nothing to show yet. The records it describes have not been created in this organisation." Beneath that, in plain text: "The report was produced anyway, so read the sections below knowing this. Once the missing inputs are in place, generate a new version to pick them up." The Status card reads "This report is a draft." and offers Move to in review, Move to archived, and Ask somebody to review it. A "Who can read this" card follows: "This report is not filed, so everyone in your organisation who can open reports can read it." The Signatures card opens by reconciling the two facts above it — "This report is out for signature even though the band above reports missing inputs. That is deliberate: signing runs separately from the data, a round is often what a draft is circulated for, and a signature stands behind the document as it is — including what it could not find." — then "Waiting on the first signature.", then "Policy owner (you)" marked "Your turn now" above a primary "Sign this report" and a secondary "Decline to sign", and the frame closes on those two buttons — the next signer in the order is below the crop, which is why the signing order is shown in the calling-off frame rather than claimed here.

The report in that frame is the uncomfortable case on purpose: every figure on it resolved to no data, and it says so at the top rather than presenting a page of confident zeros. That is the band doing the only job it has.

Twenty-nine of the eighty delivered templates treat certain gaps as blocking and refuse to generate at all — an unmet precondition raises rather than producing a thinner report. That is deliberate: a pack assembled from inputs nobody has established is worse than no pack, because it will be filed. The disclosure templates reach that same refusal by a different route, and it is the opposite of leniency: the SEC 8-K cyber disclosure declares no preconditions about its subject, and instead sets its readiness policy to block — one of only three templates in the library that do. A missing input stops the document being produced rather than annotating it, so on an 8-K there is no readiness band to read, because there is no document. The report in the frame above leaves that policy unset, which is why it rendered and carried a band naming what was thin. One regulatory template does declare one, and it is a different kind of condition: the submission cover sheet asks only that the submission it covers exists, which is a statement about its SUBJECT rather than about whether the data behind it is complete.

Step 2 — Integrity: is this what was published?

Every generated report stores a hash of its rendered content. Opening it re-renders from the stored snapshot and compares — on every read, not once at generation.

There are three honest answers, and the page gives whichever one is true — verified, never stamped (the report predates content hashing), and does not match. The badge and the hash in the header of the frame above are that check having just run, on that read. A mismatch is reported and never repaired. Reading a report never re-stamps it: silently re-hashing on the way past would erase the only evidence that something changed while the document went on looking authoritative. The stamp moves in exactly one circumstance — an authorised change that the product itself made to the rendered document, recorded in the same write as the change. Nothing else touches it.

The same discipline runs through the version comparison. When Talarity cannot produce a clean before-and-after — because the earlier version predates content hashing, or because the render context was not kept — it says which of those it is, and it says explicitly that this is not evidence of a change. A comparison tool that quietly shows “no differences” when it simply could not look is the most dangerous thing in a governance product.

Step 3 — Provenance: where each figure came from

Every bound figure carries its own provenance: the dataset it read, the filters that narrowed it, the moment it was taken, and — where the answer was capped — the fact that it was capped.

A provenance panel open over the rendered report. It is headed "Where this figure came from" above a rule, with a close control at the head's right, and beneath that lists "Data source: Risks", "Rows shown: 15", the seven columns the table draws — #, Risk, Category, Current, Residual, Treatment type, Owner — "Filters: Status is not closed", an amber line reading "Showing the first 15 rows; more exist and were not included.", an "As of" row carrying the same timestamp, spelled the same way, as the source note printed in the document beside it, and a link reading "Open these rows in Risks". The panel is anchored to the source note beneath its table, and the report's pagination has split that table across a page break: five of its rows sit above the break at the top of the frame, ending with "Privileged access is granted without a documented approval" and the footer "Confidential — prepared for the board", and the sixth — "Access reviews for the finance system are more than a year overdue" — carries over onto the next page under a repeated column header, where the note and the panel are.

That last line is the one people underestimate. A table that shows the first fifty of two hundred matching rows is correct and misleading at the same time unless it says so. The disclosure is part of the figure, not a footnote somebody might add.

One boundary worth stating plainly, because the frame shows it and it does not yet generalise: the “Open these rows in Risks” link — the step from a figure back to the live records behind it — exists today for six of the datasets a report can bind to, Risks among them. Every other figure still carries its full provenance, which is the part that matters for defending a number; what it does not yet carry is the one-click return to the register it came from. The panel is honest about what it knows either way, and it is the link, not the provenance, that is still being extended.

The page break in that frame is worth a second look for a different reason. When a table runs past the bottom of a page, the column header is drawn again at the top of the next one — so a row read on page four still has “Residual” and “Owner” above it rather than seven unlabelled columns. It is a small thing that only matters in the format this product is for: nobody scrolls a PDF back to page one to find out which column they are reading.

Step 4 — Commentary: who stands behind these sentences

Reports carry prose, and prose has an author. Talarity keeps three states apart, because they carry different obligations:

  • Drafted by a model, not yet accepted. A person has to read it and take responsibility for it. Until somebody does, the report cannot be published.
  • Carried forward from the previous period. The words are last quarter’s. They may still be true — but somebody has to say so. Confirming it still holds is a real act, and it is recorded as one.
  • A section a person must write. Some sections a model must not draft at all. Those arrive empty and say why.

All three block publication, and the publish control names which one is holding it. That is the whole point of separating them: “bring it up to date”, “accept it”, and “write it” are three different jobs, and a single “unreviewed” count would send everyone to the wrong one.

The frame below is the first of those three, on a report generated moments before it was taken. It shows both of the report’s drafted sections, each with its own three controls, and both sections behave identically. The section carries an AI draft — not reviewed badge, the drafted text sits under the badge where it can be read, and it offers the three things a person can do about it: accept the draft and take responsibility for it, re-draft it with the model again, or replace it with their own words. Nothing here is a preview of a feature — the prose behind those badges was written by a model against this organisation’s own figures, and the report cannot be published while it sits unread.

That the words are on the card at all is a recent correction, and it is the kind of gap worth naming. The card used to show each section’s title, its state and its two buttons — and not a line of the draft. The text was on the page, further down in the report body, but a reviewer at the top of a forty-page board pack had the section’s name and no way to reach it, while the Accept button’s own tooltip told them they were becoming accountable for it. Asking someone to stand behind prose you have not shown them is not a review step; it is a signature on a blank page. If you replace a section instead, the box opens with the existing words in it, so amending last period’s analysis is an edit rather than a retype from memory.

There are two further states the card handles, and they are easy to confuse because both render as “this report has no commentary”. One is a section for which nothing was produced at all, because the organisation has not enabled AI. The other is a report whose TEMPLATE asks for no commentary, which the card says in those words and answers with “Open this template on the canvas”, because commentary is authored into the template rather than into a report that already exists. Neither state is photographed here, because neither arises on the reports this walkthrough generates. They are worth knowing about because they are where most products render a blank — this one names the cause, names the remedy, and offers the way there. A section nobody wrote and a section nobody COULD write look identical on a page and mean opposite things, and only one of them blocks publication.

The Commentary card of a freshly generated report, opening on its first section and running to the foot of its second. The card's own heading is deliberately above the crop: it sat under the page's non-scrolling chrome, which clipped it, so the frame begins below it rather than showing a sliced title. The first section, "Executive briefing", carries a filled amber pill reading "AI draft — not reviewed" and a provenance line, "Written from: Risks". Its drafted analysis runs to several paragraphs, each opening with the question it answers — what is getting worse, what is holding, what needs a decision — and naming individual risks from the register rather than summarising them: untested database restores, a single administrator holding the production cloud root credential, lapsed security training for the engineering group, and — in the paragraph below it — unexercised incident response. The governing finding is stated first, in the model's own words, and it is that residual scores match inherent scores across the register, so no risk has an effective control reducing its exposure. Under the analysis a single line, "The text is unchanged. What changes is that you are accountable for it.", then three controls in a row: a filled blue "Accept", an outlined "Replace with my own words", and an outlined "Re-draft with AI". Below a rule, the second section, "Regulatory disclosure", carries the same amber pill, is "Written from: Framework posture", and reports honestly that there is nothing to report — the rows provided are empty, so no framework alignment can be disclosed. Its own accountability line and its own three controls close the frame.

And the refusal is not a policy the reader is asked to remember — it is printed on the control that would otherwise perform the step, naming the sections responsible.

"Executive GRC summary — August 2026 (181)" — the same document the in-review frame further down shows, carrying the same stored hash — one step further on, and seen from the account of the colleague reviewing it rather than the author's, which is why the sidebar differs. The header now reads "Approved" beside "Integrity verified", with "Data as of Aug 24, 2026" and "Cannot be deleted before Aug 26, 2029 (at least 3 years)", and beneath them the sentence "The content hash stored for this report matches what you are reading." above the stored hash itself. In the Status card, "Move to in review" and "Move to archived" are live, "Move to published" is greyed, and beneath it in full-strength text: "This report cannot be published yet: 2 AI-drafted sections (Executive briefing, Regulatory disclosure) have not been reviewed by anyone. Read and accept the commentary, or replace it with your own." Below it, "Who can read this" — "This report is not filed, so everyone in your organisation who can open reports can read it." — and a Signatures card reading "No signatures have been requested for this report." with a "Request signatures" control, where the frame ends.

Step 5 — Approval: not by the person who wrote it

The author of a report cannot approve their own report. The product does not ask you to observe that as a policy; it refuses the transition and names the reason.

Routing it to a colleague records who was asked, by whom, and when — and the page then says who it is waiting on, by name. If that person has left the organisation, it says that instead of printing an identifier.

A report in review. The header carries its title, an "In review" badge, "Integrity verified", and "Cannot be deleted before" followed by a date three years out and the words "(at least 3 years)". Beneath it the line "The content hash stored for this report matches what you are reading." and, on its own row, "Stored hash:" followed by a sixty-four character value beginning b3112cbe257a — the same value the approved frame earlier in this walkthrough carries, which is the comparison this walkthrough asks you to make. The Status card reads "This report is in review" and then, by name, "Waiting on Imogen Hart", with the date the review was asked for. "Move to approved" is greyed out and beneath it, in plain text: "You cannot approve a report you produced. It is already with the reviewer you asked." — with "Ask somebody else instead" offered as a live control beneath it. "Move to draft" and "Move to archived" sit together on the row above the greyed one. Below the Status card, "Who can read this" states "This report is not filed, so everyone in your organisation who can open reports can read it", and a Signatures card reads "No signatures have been requested for this report.", and the "Request signatures" button beneath it is fully in shot, all four borders drawn, where the frame ends. An independent sweep caught this line claiming the opposite — that the button was below the fold — and measured it as fully inside the frame with room to spare.

Step 6 — Signatures: an order, not a checkbox

Twenty-five of the delivered templates declare who should sign them, by role — Compliance lead, CISO, Board Risk Committee Chair. When signatures are requested, the product resolves each of those roles to whoever holds it in your organisation today, and stores the resulting order on the document.

The card then shows the reader the ROLES, and marks which one is theirs. That is deliberate and it is not an omission: publishing colleagues’ identities into a status line costs something and buys nothing a reader can act on. A row reading “Compliance lead” beside a pill reading “Their turn now” tells you where the report is; a list of names does not.

Two things make this a signing order rather than a set of tick boxes:

It has turns. A signer third in the chain is told it is not their turn yet, rather than being offered a control that would fail. Backups are admitted for the slot they back, because a deputy who cannot sign is not a deputy.

Being on the order is what admits you. Not a role, not a permission bundle — the stored order for this document. A report’s own author, if they are not named on it, is refused. That is stricter than any role could express, and it is why signing is not bundled with the ability to edit or delete reports.

The other fifty-four templates name nobody, and that is the ordinary case rather than the exception — an executive summary or a risk register is not a document with a fixed signing panel. For those, you choose the signers yourself: colleagues from your organisation’s own directory, placed in the order they should be asked, each with the role you are asking them to sign as. The role is an editable field on every row, and it is what the record keeps, deliberately, because who holds a title changes and the question an auditor asks two years later is which role attested, not which employee number. In the frame below both rows still read the default, Signer — that is what an untouched picker looks like, and it is worth saying plainly rather than staging. A role can never be missing: every person arrives carrying “Signer”, and the request control refuses to send while any role box is empty. What it can be is unconsidered, which is a softer failure and a real one — a round sent in a hurry records two people as Signer, and two years later that is precisely as informative as it sounds.

A dialog headed "Choose who signs this report" over a dimmed report page, the report behind it titled "Contract portfolio — August 2026 (48)". The dialog opens: "This report's template does not name its signers, so choose them here. Each person is asked in turn, once the one before them has signed." A second line reads "Asked in this order." Beneath that, two chosen rows. The first is numbered 1, "Imogen Hart", above a field labelled "Signs as" reading "Signer", and three buttons — "Move up" greyed out, "Move down", "Remove". The second is numbered 2, "Rowan Whitfield", with the same role field and "Move up" available while "Move down" is greyed out. Below the rows a search box reads "Search by name or email", then the picker's empty state — "Everybody who can sign has been chosen. People with an unaccepted invitation, guests, and members of a linked child organisation cannot be signers, so they are not listed here." — then an "Invite a colleague" button, and below it the primary "Request signatures" button.

Two things the picker will not do are worth naming, because both are refusals you would rather meet before the click than after it. It does not offer people who could never complete the request — a pending invitation with no account behind it, a disabled member, a guest, somebody in a linked child organisation — since routing a signature to any of them produces a report that waits for ever on a person who cannot move it. And it does not offer the same person twice, because each is asked once and a duplicate would collapse into one entry in the order without saying so. What it will not do, it says, and then it offers the way past it: when everyone eligible is already on the order, the picker names who was excluded and why, and puts an Invite a colleague control in the same box. That matters more than it sounds. A picker that reports an empty list and stops is indistinguishable from a broken one, and the person reading it has no way to know whether the answer is “nobody else exists” or “something went wrong” — so they leave the report where it is. Naming the exclusion turns it into an ordinary state, and the control turns it into one you can act on without abandoning the report you were part-way through.

When a round has to stop

Three things can go wrong with a signing round, and the product answers them differently on purpose.

It was sent by mistake, and nobody has signed. Call it off. The report goes back to needing no signatures, and everyone who was asked is told there is nothing to do — because they were told to sign, and a request that vanishes without a word leaves somebody chasing a document nobody is waiting on. Until this existed, every way out wrote something untrue: asking a signer to decline records a person refusing to attest, on a chain built to be permanent, for a round nobody meant to open; archiving retires a report whose only fault was being sent early.

The Signatures card of a report whose round is open and unsigned. It opens with the reconciliation — "This report is out for signature even though the band above reports missing inputs. That is deliberate: signing runs separately from the data, a round is often what a draft is circulated for, and a signature stands behind the document as it is — including what it could not find." — then "Waiting on the first signature." Beneath that, "Policy owner (you)" carries a "Your turn now" pill above a primary "Sign this report" and a secondary "Decline to sign"; "Compliance lead" carries "Later in the order". At the foot of the card, separated by a rule, sits a single outlined control: "Call off this signing round". The frame is composed to the card — it begins on the card's own heading and ends just under that control — with the sidebar alongside it, as in every frame of this set.

Somebody has signed, and the round cannot finish. Now it cannot be called off, and the refusal is a correctness rule rather than a caution: a captured signature is evidence about this exact document and this exact order, and clearing the order under it would leave that signature attesting to a round that no longer exists. The route is a new version, which starts a fresh round and leaves the first one intact on the record.

Somebody declined. The round stops there — publication is blocked, and the decline and its reason stay on that version’s record permanently. The way forward is the same new version, and the reason it is not a re-request is the point of recording a decline at all: you do not reopen a signing round on content people have already decided against.

A report whose signing round was stopped by a refusal. Two cards are in frame. "Who can read this" reads "This report is not filed, so everyone in your organisation who can open reports can read it."; below it the Signatures card, which is the subject. The Signatures card opens with the consequence, stated once — "A signer declined, which stops the signing round and blocks publication. Generate a new version to start a fresh round — the decline and its reason stay on this version's record." Beneath it, set off by a green rule, the chain notice: "Signature record verified: each entry is linked to the one before it and to this report's content, so an entry cannot be added, removed or reordered without the chain saying so." Then the two slots. "Policy owner (you)" carries an amber "Declined" pill above the record of the decision — "Declined Aug 24, 2026 — The control evidence for section 3 has not been provided." — the refuser's own words, not a generic code. "Compliance lead" carries "Round stopped": nobody is later in an order that has ended. A single "Generate a new version" control closes the card.

In all three cases the report keeps its own history, and the report register can be filtered by signing state — so “which reports did somebody refuse to sign?” is a question you can ask, rather than something you find out when a publication is blocked.

One thing to notice in the frame below, because it looks like a contradiction and is not: the report being signed is still a draft, and its readiness band says every figure resolved to no data. Signing runs on its own axis, independent of the approval lifecycle. That is deliberate — a signing round is often what a draft is circulated for, and requiring approval first would mean approving something nobody had yet put their name to. What the two axes share is the content hash: sign a report, regenerate it, and the chain reports that the signatures were taken against an earlier version rather than pretending they still describe the page. The order in which you approve and sign is your organisation’s to choose; what the product refuses to do is let either act quietly detach from the document it was performed on.

A signing round with its first slot signed. This frame carries no title and no content hash, so nothing in it identifies which report it is — and the two role names it shows, "Policy owner (you)" and "Compliance lead", are the slots this template names, so they recur on several frames in different states. The readiness band states that every figure resolved to no data; below it the Status card reads "This report is a draft."; below that a "Who can read this" card reads "This report is not filed, so everyone in your organisation who can open reports can read it." The Signatures card opens with the reconciliation — "This report is out for signature even though the band above reports missing inputs. That is deliberate: signing runs separately from the data, a round is often what a draft is circulated for, and a signature stands behind the document as it is — including what it could not find." — then "Partly signed — some signers have not responded yet", then the chain verdict: "Signature record verified: each entry is linked to the one before it and to this report's content, so an entry cannot be added, removed or reordered without the chain saying so". Beneath it "Policy owner (you)" carries a "Signed" pill and, beneath it, the date — "Signed Aug 24, 2026" — and nothing further, because the pill and the date have already said it; "Compliance lead" carries "Their turn now". The card closes with "Once somebody has signed, the order cannot be changed. If this round cannot finish, start a fresh one on a new version." above a "Generate a new version" button.

Each signature is written into a hash chain that binds the document’s content hash, the slot, the signer, the moment of the decision and the previous link. Declining is a first-class outcome, recorded with a reason and taking its place in the same chain — a signing process where the only recordable answer is “yes” is not a control.

And the chain is verified on every read, not on request. Opening the report re-links it end to end and reports one of three things, which are deliberately kept apart:

  • Verified — each signature links to the one before it and to this report’s content, so a signature cannot be added, removed or reordered without the chain saying so.
  • Taken against an earlier version — the signatures are genuine and no longer describe what the page says. That is what regenerating a report does, and it is not tampering; calling it tampering would cry wolf at an ordinary act.
  • Does not verify — and every break is listed, not just the first.

A verification that only runs when somebody remembers to ask it has not run. It is checked on the way in, for the same reason the content hash is.

Step 7 — Publication, and what it freezes

Publishing is what makes a report citable, and it is deliberately one-way in the ways that matter. A published report’s commentary cannot be edited, it cannot be renamed, and it cannot be deleted. Those refusals come from one rule the whole surface shares, so a route that reaches the document from somewhere unexpected gets the same answer.

The executive summary from the "Approved" frame above, now published, and still seen on the reviewing colleague's account rather than the author's. The header carries a "Published" badge beside "Integrity verified", and beneath it the sentence "The content hash stored for this report matches what you are reading" above a single monospace hash — one value, because the stored stamp and the rendered document agree. A bordered, tinted notice below the control row reads "This report is published and cannot be changed. Archive it and generate a new version instead." The Status card states "This report is published" and offers only Share and Move to archived — no route back to draft. Beneath it the Signatures card reads "No signatures have been requested for this report.", then "Signatures can only be requested while a report can still change, and this one is published. That is why there is no control here.", then "If this report needs signing, generate a new version and request them on that one." above a "Generate a new version" button, where the frame ends.

The Signatures card in that frame is doing something small and worth naming. There is no “Request signatures” button on a published report, because the request would be refused — and rather than leave a reader to work out whether the button is missing, disabled, or was never there, the card says which, and offers the one route that does exist. A control withheld without explanation and a feature that does not exist look identical from the outside, and only one of them is true here.

The integrity line above is the part worth pausing on. Accepting the commentary changes the rendered document — the product prints who stands behind each section — so the stamp is re-taken at the same moment, in the same write. You can watch that happen across the frames in this article rather than take it on trust: the in-review frame and the approved frame carry the same stored hash, character for character, because moving between those two states changes nothing a reader sees — and the published frame carries a different one, because accepting the two AI-drafted sections in between changed what the document says. A stamp that never moved would be the suspicious thing. A report that recorded its hash at generation and never moved it would accuse itself of tampering on the one screen an auditor is most likely to be shown, and a false alarm there is worse than no alarm, because it teaches the reader to disregard the real one.

Step 8 — Afterwards: evidence, filing data, and the retention floor

A published report is an artifact other parts of the product can cite. It can be added to an evidence package, and for the templates that carry a regulatory form — a GDPR Article 30 record, an SEC Item 1.05 or Item 106 pack — the underlying values can be downloaded as filing data rather than re-keyed off a PDF.

That export is careful in a way worth spelling out, because it is the difference between a convenience and something you can file. A field the report cannot supply is written as an explicit null and listed by name, rather than being left out. An omitted key reads to a filing agent as not applicable — which is a claim about your organisation — while a null is an absence, and the list tells you which absences you are about to file.

And it has a retention floor. The product will refuse to delete a report that is held under one, and it will tell you how long the report must be kept, the date that period runs to, and that the two together are the reason. Five of the frames above are of a document header — the first two, the approval, the approved and the published — and four of them carry that pair legibly for the report they show; on the second the header sits behind the signer dialog’s backdrop, which dims it to the point where the retention line is there but not readable; the other five are crops of a panel, a card or a dialog and do not reach the header at all. The five that do disagree with each other on purpose: the policy attestation record is held for at least 7 years, the executive summary for at least 3. Each header prints the date its own period runs to, counted from the day that report was generated — and counted deliberately long. A year is taken as 366 days rather than 365, so a three-year floor is 1,098 days and a seven-year floor is 2,562. The reports in the frames above were generated on 23 August 2026, which puts their dates at 25 August 2029 and 28 August 2033 rather than the 23rd, and the few days are the point: a retention floor that lands a day short because of a leap year is a floor that failed. This is why the label reads “at least” rather than naming an exact term. The floor arrives with the report rather than being chosen after the fact: it is stamped at generation from the template the report came from, so nobody has to remember to apply it and nobody can shorten it afterwards. Forty-nine of the eighty delivered templates name their tier outright — twenty-eight at seven years, fourteen at three, seven at six — and the remaining thirty-one inherit a three-year default, which is where the executive summary’s own floor comes from. On a template your organisation writes, the floor is yours to set: the builder’s settings pane carries a How long reports must be kept control, and it offers the same four periods in the same words the refusal will later use. It applies from the next report onwards — reports already generated keep the floor they were created with, because a retention period you can shorten retroactively is not a retention period. Note what the header does not print: the storage tier’s internal name. A reader needs the rule and the date, not a bucket identifier. And when the floor finally expires, nothing happens on its own — disposal is something an organisation turns on, not a thing the product does to your reports by default. What it does then is not a deletion: the report’s row survives, carrying the date its content was disposed of and a record of which parts went, and the stored hash is kept. That last part is the whole reason the sequence above was worth reading — somebody holding an exported copy years later can still check it against what we say was published, long after the content itself is gone. A legal hold outranks all of it, checked both on the report and on the organisation.

That refusal fails closed in four separate ways — no retention period recorded, an unreadable retention date, and two paths where the current time cannot be established — each with its own sentence. The reasoning is written into the code: “you cannot delete this” sends someone to support. A refusal a person cannot act on is a support ticket wearing a button.

What you walk away with

A report whose figures name their source, whose prose names its author, whose approval names somebody other than the author, whose signatures are an ordered chain rather than a set of flags, and whose deletion is governed by a floor that explains itself.

None of that is visible in a PDF. All of it is what an auditor is actually asking about when they ask whether the document can be relied on.

Loading…

Keep reading

See Talarity in action.

A 30-minute walkthrough or a 7-day trial — your call.