Recurring reports break in a way one-off deliverables don't: every send produces another address, and the old ones keep working with old numbers in them. Here's the version where the report has one address for the whole engagement.
One-off deliverables and recurring ones fail differently, and the difference isn't obvious until you're five weeks into an engagement.
A one-off is fine. You send a proposal, they read it, it's done. A weekly report is the same act repeated, and repetition turns a neutral property of link-sharing into a real problem: every send produces another address, and none of the old ones ever stop working.
By week five your client has five messages from you, each containing a link, each opening a page that looks correct. There's nothing on week two's page announcing that it's been superseded. It has real numbers on it. It renders perfectly.
So:
Nobody made a mistake. Publishing a new address each week made all five of them equally valid, and then asked the reader to keep track of which one was current — a job you gave them without meaning to.
The usual patches don't reach it. Dating the filename helps someone who is reading carefully and does nothing for a bookmark or a forward. Saying "latest version attached" in the email works right up until they're not in the email. The problem isn't labelling; it's that there are five live things where there should be one.
The alternative is small and mostly a change of habit. You publish the report once and get an address. Next week, you replace the file at that address rather than publishing a new one.
The URL doesn't change. Neither does the password, if you set one, or the expiry. The link that's already sitting in your client's inbox — and in the inboxes of the two colleagues they forwarded it to without telling you — shows this week's figures the next time anyone opens it.
Your Monday message stops being a delivery and becomes a notification: the report is updated, same link. Which is a smaller email to write, and a much smaller thing for the reader to keep track of.
The parts that make it work are unremarkable: a page rather than an attachment, so it opens on a phone without a download; a link that carries its own permission, so nobody signs into anything; and a no-index address that never surfaces in a search for your client's company name. Password and expiry sit on top when the numbers warrant it, free on a registered account.
The obvious objection is that overwriting loses the record. It doesn't have to, and the good version is better than what it replaces.
Put the history inside the report — a trend line, last week's number beside this week's, a change column, a short note on what moved. That's the comparison your client was attempting when they went digging for an old email, done properly, by the person who actually knows why the number moved.
If a particular period genuinely needs a permanent address of its own — a month-end pack, a report tied to an invoice — publish that one as its own document and let the rolling weekly report keep rolling. The two coexist fine. What you're avoiding is the accidental archive, where fifty-two live addresses exist because nobody decided they should.
Nothing above depends on how the report gets made, but the cadence question got sharper once generating one became cheap. If you're already handing a client a report an AI drafted, running that same prompt weekly is the easy part — the delivery is what decides whether it lands as a professional artefact or as the fifth near-identical link this quarter.
The rest is the same craft as any client-facing report: say what changed, say what you're doing about it, and make it open on a phone. And once it's at a stable address, the view count on that address starts telling you something coherent — whether the report is being read at all — instead of being scattered across five URLs, each with a handful of views and no way to add them up.
The writing got fast. The handover didn't. Here's why the last step of client work — getting the finished thing in front of the client — quietly became the slow part, and what a good version of it looks like.
Five channels agencies use for client previews — and what each accidentally reveals about the work in progress. Where private-link delivery sits, and when it's worth the swap.
A personal site updates twice a year. CMS subscriptions and full deploy pipelines are sized for sites that update twice a week. The middle ground: one HTML file at your own domain.
miinideck turns a single HTML file into an unguessable link with optional password and expiry. Default-private, never indexed.