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
| Data | Where | Who can read it |
|---|
| Your book: holdings, cash, notes, thesis text | Cloudflare 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 password | Our service: a salted PBKDF2 hash only, never the password itself. | Nobody; it cannot be turned back into the password. |
| The record’s server copy | Cloudflare KV, under your account: calls, marks and chain heads. On by your choice. | You, through your evidence pack. |
| Account | Email, plan, status, account id, Stripe customer id. | The operator. Stripe holds the card; we never see it. |
| Requests and applications | What you wrote on the form, twelve months. | The operator. |
Encryption and credentials
| Item | What is built |
|---|
| In transit | TLS everywhere; HSTS with preload on the site; every URL in the code is https. |
| At rest | Cloudflare encrypts KV at rest. Your browser’s storage is under your operating system’s protection. |
| Terminal password | PBKDF2-SHA256, 16-byte random salt per profile, 150,000 iterations, constant-time compare. The server stores no passwords. |
| Session | HMAC-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-in | Email and password; ten wrong tries lock the account for an hour; reset only by a one-hour link sent to the account email. |
| Secrets | Only as Worker secrets; none in any shipped file; a secret-shape scan runs with every test run and gitleaks runs in CI. |
The record
| Property | How |
|---|
| Cannot be edited quietly | Every mark carries the hash of the mark before it; a change breaks every later hash. |
| Cannot be backdated | The 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 you | Export the evidence pack (calls, marks, chain, server head log) and run it through the verify page, without an account. |
| Made under which rules | Every 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
| Service | What it receives | Why |
|---|
| Cloudflare | Everything above; page-view counts without cookies. | Hosts the site, runs the access service and the store, counts visits. |
| Finnhub | The 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, Esri | A ticker, a series id, a country, a map tile. Nothing about you. | Statements, macro, trade, plants, imagery. Public data. |
| Anthropic, or Cloudflare Workers AI | Headlines and public company facts. Never your holdings, notes or record. | News summaries where every claim must cite a headline; the six investor lenses. |
| Resend | Your email address and the message. | Sends account emails and replies. |
| Stripe | Card and billing details, which we never see. | Payment. |
Headers, limits, and the code
| Item | What is built |
|---|
| Headers | HSTS, nosniff, X-Frame-Options DENY, no-referrer, Permissions-Policy, COOP, CORP, and a Content-Security-Policy with no inline script on public pages. |
| Rate limits | Per address per minute on every public route; per code per day on model routes. |
| Least privilege | Every route is public, code-scoped, or operator-only. A code reads and writes only its own keyspace. |
| Tests | Nearly a thousand static and behavioural checks run on every push; CI deploys only when they pass. |
| Source | The 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
| Item | What happens |
|---|
| While you subscribe | Account details, sync data and the record’s server copy are kept. |
| When you leave | Access 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 request | Ask 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 wrong | You 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.