Type an owner email and we will send you a sign-in link that brings you straight back here.
There is no admin password. This page asks for a fresh sign-in every 12 hours, even while
the rest of the site still remembers you.
The site · what members are being told, and what is switched off
A message across the top of every page
One line, on every page, for everybody. Use Something new for an
announcement and Something wrong for a problem. A member can wave an
announcement away; a problem stays up until you take it down.
Only for a problem. Ticked, members get the same full box maintenance uses, in your
words, and nothing on the site works until you take it down. Leave it clear for a
problem worth mentioning but not worth stopping anybody, like prices running late.
Maintenance
A box in the middle of the page that stops people using it. Tick one part of the site, or
tick the whole site. The hours are what members are told to expect: they are a promise,
not a timer, so nothing comes back on by itself and the box stays until
you turn it off here. You are an owner, so you keep seeing the pages as normal.
hours
Right now
Needs a look
Problem reports · what members have told us is wrong
What members sent through the Report an issue button in the corner of
every page: their words and the page they were on. It is on this tab rather than under
Housekeeping because somebody typing "the desk will not load" is a live fault, and a list
read at the weekend is a fault that stood all week. You also get each one by email.
Just happened
The last few things members sent, newest first. Click a row to read the whole exchange
and see what it cost. The full feed, with search, is on the Activity tab.
Everything members have sent
Every report, follow-up and chat message, newest first. Search by a person's name or any
part of their address, narrow to one day, then click a row to read the exchange with its
bill underneath. Nothing here is live typing: a row appears once a message has been sent.
Money
What the site has cost, against its budget. Reports pause by themselves if the month crosses the line; chat never pauses.
Day by day
London days, newest first. Click a day to see exactly what ran on it.
Where this month's money went
Heaviest users this month
Who the spend is actually going on.
How the meter works
People
Add someone
Type their address and they can sign in straight away. Anyone added here is marked as a
comp, which means a Substack import can never remove them; they leave only when you press
Remove access on their row.
Starting from a Substack export? The one-off import is on the Housekeeping tab. After
that, add and remove people here.
Everyone
Look one person up
Everything about one member: usage, credits, history, and every sign-in attempt.
Terms of service
Who has accepted the current version of the terms, and who has not. The version is the
string set in config/access.json, not a fingerprint of the wording: a typo fix leaves
every acceptance standing, and a change to what a member is agreeing to is a new version.
One person's own history is on their record, under "Look one person up".
Is email actually working?
The one thing that is invisible everywhere else: if no mail provider is configured the site
writes sign-in links into its own log and reports success, so members get nothing while
everything looks fine.
Recent sign-in attempts
Who tried to get in and what happened. This is the answer to "my friend says he cannot sign in".
Addresses appear only for people who are already members: for anyone else we store a scrambled
fingerprint instead, so a stranger typing their address into the sign-in box never lands on file.
Documents company filings and results
Choose a company to inspect its documents. Adding a document reads its text locally and does not start a paid rebuild.
Rebuilds and permitted PDF transcription use the configured spending limits. Fetching documents and reading text locally are free.
Add a document for the ticker aboveInvestor page address
Use the company's own investor page. A new path on the same refused website does not restart its seven-day wait.
Leave blank to clear the owner override and use discovery again.
Company library status
The dashboards
When each stored dashboard copy was last rebuilt. A build that fails leaves the previous
copy serving quietly, with nothing but the page's own "last refreshed" line to say so.
This table is where a missed rebuild shows up.
Housekeeping
Flagged outputs
A report or chat a member marked as wrong. Review these in the weekly 30 minutes.
Earnings calendar · add a reporting date by hand
Type one line, like Tesco (TSCO, UK) 30 Sep confirmed, after the close.
Preview shows exactly what the calendar would store, and nothing is saved until you confirm.
A date you save here is yours: the overnight research can see it but can never overwrite
or remove it. Say confirmed only if the company has announced the date
itself; say expected if it has not.
Economic release forecasts
Enter a published analyst poll before its release. The source, reference period and measurement basis travel with the figure; it locks at release time. These feeds are seasonally adjusted. Do not enter an unadjusted annual CPI headline forecast.
For a monthly release, use the first day of the month it describes. For weekly claims, use the week-ending date. The release date is separate.
Import a Substack export
For the first big list, or a rare full refresh. Substack → Settings → Subscribers → Export,
then drop the CSV in below (or paste it), preview, then apply. Preview changes nothing.
Anyone in the file who is not yet a member is added; anyone who came from a previous
import and is missing from this one loses access. People added by hand on the People tab
are never touched by an import.
Member segments
Which message groups members belong to, for the notice cards on the site. One member per
line: email,tag tag (tags separated by spaces). Known tags today:
reader_offer, monthly_core, leaving,
payment_trouble. An email with no tags clears that member's groups. Nothing
shows to anyone until a list is applied here, and the cards themselves are edited in
config/notices.json.
People who asked to be erased
We keep a scrambled fingerprint of the address and never the address itself, so an
import cannot add them back. Only release one if that person has asked to come back. They
are added fresh on the next import, with today as the date we first saw them.