Skip to content

Security and data handling.

What is stored, where, by whom, for how long, and how you would check. One page. Last updated 22 September 2026.

Where your data lives

DataWhereWho can read it
Your book: holdings, cash, notes, thesis textCloudflare KV, under your account, so your devices share one book and a lost laptop loses nothing. The browser keeps a working copy and at most one unsent edit.You, signed in; NorthBridge does not read it.
Your passwordOur service: a salted PBKDF2 hash only, never the password itself.Nobody; it cannot be turned back into the password.
The record’s server copyCloudflare KV, under your account: calls, marks and chain heads. On by your choice.You, through your evidence pack.
AccountEmail, plan, status, account id, Stripe customer id.The operator. Stripe holds the card; we never see it.
Requests and applicationsWhat you wrote on the form, twelve months.The operator.

Encryption and credentials

ItemWhat is built
In transitTLS everywhere; HSTS with preload on the site; every URL in the code is https.
At restCloudflare encrypts KV at rest. Your browser’s storage is under your operating system’s protection.
Terminal passwordPBKDF2-SHA256, 16-byte random salt per profile, 150,000 iterations, constant-time compare. The server stores no passwords.
SessionHMAC-SHA256 signed cookie, HttpOnly, Secure, SameSite=Strict; re-checked against the grant every five minutes, so a paused code stops within five minutes on every device.
Sign-inEmail and password; ten wrong tries lock the account for an hour; reset only by a one-hour link sent to the account email.
SecretsOnly as Worker secrets; none in any shipped file; a secret-shape scan runs with every test run and gitleaks runs in CI.

The record

PropertyHow
Cannot be edited quietlyEvery mark carries the hash of the mark before it; a change breaks every later hash.
Cannot be backdatedThe chain head is posted once a day to our service and stamped with its clock; one entry per server day, never rewritten.
Can be checked by youExport the evidence pack (calls, marks, chain, server head log) and run it through the verify page, without an account.
Made under which rulesEvery call carries a version of the bars it was made under, so it can be read against them after the bars move.

Who else touches anything

ServiceWhat it receivesWhy
CloudflareEverything above; page-view counts without cookies.Hosts the site, runs the access service and the store, counts visits.
FinnhubThe ticker you ask about.Quotes, fundamentals, news, insider filings. Through our service for signed-in accounts, or through a key of your own.
Price feed vendor (EODHD or Tiingo, when set)The ticker and a date range.Daily closes for the record’s marks and the history. Until one is set, history comes from Yahoo’s public endpoint and is labelled as interim.
SEC EDGAR, FRED, UN Comtrade, OpenStreetMap, EsriA ticker, a series id, a country, a map tile. Nothing about you.Statements, macro, trade, plants, imagery. Public data.
Anthropic, or Cloudflare Workers AIHeadlines and public company facts. Never your holdings, notes or record.News summaries where every claim must cite a headline; the six investor lenses.
ResendYour email address and the message.Sends account emails and replies.
StripeCard and billing details, which we never see.Payment.

Headers, limits, and the code

ItemWhat is built
HeadersHSTS, nosniff, X-Frame-Options DENY, no-referrer, Permissions-Policy, COOP, CORP, and a Content-Security-Policy with no inline script on public pages.
Rate limitsPer address per minute on every public route; per code per day on model routes.
Least privilegeEvery route is public, code-scoped, or operator-only. A code reads and writes only its own keyspace.
TestsNearly a thousand static and behavioural checks run on every push; CI deploys only when they pass.
SourceThe site, the terminal and the worker are one public repository; the record’s chain and the daily head are in the code that ships.

Retention, deletion, incidents

ItemWhat happens
While you subscribeAccount details, sync data and the record’s server copy are kept.
When you leaveAccess runs to the end of the period paid for. Export stays available from the entry page. Payment records are kept for the period the law requires.
On requestAsk and we show you what we hold, correct it, or delete it: email, code, sync data and the server copy. Your export is yours.
If something goes wrongYou are told by email, at the address on the account, what was affected and what was done. Write to the address below at any time.

Questions, or a questionnaire to fill: northbridgeai1@gmail.com. The privacy policy and terms say the same things in their own words.