Net Worth

$385KTop 42%

PeakWorth

$4.2M+$182K

FI Age

50y 1m-11mo

2 min

See your Work Optional Date

SneakPeak

Security at PeakWorth™

Last updated: April 30, 2026

Security at a glance

  • Bank connections through Plaid are read-only — PeakWorth cannot move your money.
  • We never receive or store your bank password.
  • Your data is encrypted in transit and at rest.
  • Passwords are securely hashed — never stored in plain text.
  • Optional two-factor authentication helps protect your account.
  • Sessions are protected with secure, server-side revocable cookies.
  • You can permanently delete your account and data at any time.
  • Questions? Email us anytime at support@peakworth.com.

Read the full security overview below for how each protection works.

A note from the founder

I built PeakWorth after years of relying on detailed financial models to make major decisions for my own family—from career moves to home purchases to retirement planning. Professionally, I've spent my career helping technology companies make complex financial decisions as a CFO, and I previously practiced as a licensed CPA. Those experiences shaped how I think about balancing today's choices against long-term financial outcomes.

Over time, I realized households deserved the same kind of decision engine that businesses rely on. That's why I built PeakWorth—to help people make better financial decisions with greater confidence and a clearer understanding of the long-term tradeoffs.

If you trust us with your financial information, I believe we owe you complete transparency about how we protect it. PeakWorth exists to help people make better financial decisions—not to monetize their financial data or push financial products.

Read the full storyAbout PeakWorth

How your data moves

Always encrypted in transit

Every connection between your browser and PeakWorth uses HTTPS with TLS 1.2 or higher. Strict-Transport-Security tells your browser to refuse any downgrade to plain HTTP for the next six months after your first visit.

Bank tokens encrypted at rest, separately

When you connect a bank through Plaid, the access token Plaid hands back is encrypted with AES-256-GCM before it touches our database. The encryption key lives in our secrets manager — not in the database — so a database-only leak can't decrypt those tokens.

Provider-managed encryption at rest

The PostgreSQL database itself is encrypted at rest by our hosting provider. Backups are encrypted and retained for up to 30 days for disaster recovery.

How your account is protected

Hashed passwords, never stored in plaintext

Passwords are hashed with bcrypt at cost factor 12. We never see, log, or echo back your raw password.

Two-factor: authenticator apps and passkeys

You can turn on two-factor sign-in from your Account page. We support standard authenticator apps (Google Authenticator, 1Password, Authy, etc.) with single-use backup codes, and passkeys / security keys (Touch ID, Face ID, Windows Hello, YubiKey). Passkeys also let you sign in without a password. If you ever lose access, there's a 24-hour-delay self-serve recovery flow that emails the account owner first.

HTTP-only sessions with server-side revocation

Sessions use signed, HTTP-only, Secure cookies. Logging out, resetting your password, or deleting your account immediately invalidates outstanding sessions on the server side — not just in your current browser.

Rate limiting on login and registration

Login and registration are rate-limited globally across our servers, so an attacker can't get more attempts by hitting different instances of the app.

Bank linking

When you link an account through Plaid, your bank credentials are entered directly into Plaid's interface — PeakWorth never sees, stores, or proxies them. We only ever see read-only balance and transaction data, and only for institutions you've explicitly chosen to connect. You can disconnect any institution from your Account page; we revoke our Plaid token within 24 hours and delete that institution's transaction history within 30 days.

AI Advisor — what we send and what we don't

Before sending financial context to our AI provider, PeakWorth removes direct identifiers such as your name, email address and account numbers. The provider receives only the financial context needed to generate the response, along with the message you submit. Messages are transmitted as entered, so do not include full account numbers, government identifiers or passwords in chat.

Session replay — how masking works

With your consent, we record masked session replays of the web app (never the mobile app) using PostHog. Replay is designed to mask sensitive content before it leaves your browser:

  • Account balances, transaction amounts, merchant names, account names, and Plaid institution data are replaced with grey boxes in the recording.
  • All form inputs (including everything you type into the AI advisor, CSV import preview rows, profile fields, and email/password fields) are masked at the source — PostHog never receives the underlying characters.
  • Network request headers and bodies are NOT recorded — only the rendered DOM.
  • Cross-origin iframes (Plaid Link, Stripe Checkout) are excluded from recording entirely.
  • Only a small allowlist of non-sensitive UI (navigation buttons, modal titles, generic CTAs, error messages) is opted back in via PostHog's `ph-capture` class so replays remain useful for debugging UX issues.

You can withdraw consent at any time from the cookie banner or the Account page. Replays are automatically deleted no later than 90 days after they are recorded.

Analytics — what our analytics vendors actually see

Our product analytics (PostHog) and traffic analytics (Google Analytics) only ever see an opaque, randomly-generated user identifier — never your email address, name, phone number, or postal address. The shared identifier shape is enforced in our codebase by a typed contract and a runtime block-list of personal-information field names (email, name, phone, postal address, and their common variants), so a future code change can't accidentally start sending personal information to either vendor. Server-side conversion events sent to ad platforms (e.g. Meta, Google Ads) do hash and send your email per their documented APIs so we can measure ad performance; that pathway is separate from product analytics and described in our Privacy Policy.

Who at PeakWorth can see your data

Internal access to user accounts is role-limited and logged. Every PeakWorth staff member who can open an admin surface holds an explicit role (support read, support write, on-call engineer, or admin) — a new staff account has no access until an admin grants one. Every time a staff member opens a page that surfaces another user's data, an append-only, hash-chained access-log row is written: who looked, at whose account, on what URL, with what reason. The log can't be silently edited or deleted, and an admin reviews it monthly.

Data deletion

You can delete your account at any time from the Account page. Personal and financial data is removed within 30 days. Anonymized aggregates may be retained for analytics. Disconnecting a single bank deletes that institution's data within 30 days without affecting your other connections.

If something ever goes wrong

We'll tell you, quickly

If we ever confirm unauthorized access to your financial data sourced from Plaid, or to your password hash or session, we'll email you within 72 hours. The notification will explain what happened, what data was involved, what you should do, and how to follow up with us. Lower-impact incidents are communicated within 7 days.

For real-time visibility — beyond the email we send when something affects your account — our public status page shows the current health of every PeakWorth subsystem (web app, API, database, Plaid, Stripe, Anthropic, Resend) and a 90-day incident history.

Subprocessors

These are the only third parties that receive any of your data, and only the slice they need to do their job:

  • Bank account linking. Receives bank credentials directly from you (via Plaid Link) and returns transaction and balance data.

  • Subscription billing. Receives your email and payment details (entered into Stripe's hosted checkout — we never see your card number).

  • AI advisor responses. Receives financial context with direct identifiers (name, email, account numbers) removed, plus the messages you type into the AI chat.

  • Transactional email delivery (welcome, billing, security notifications).

  • Application hosting and managed PostgreSQL database.

Reporting a vulnerability

If you believe you've found a security issue in PeakWorth, please email us. We'll acknowledge within three business days and credit you in the fix release notes if you'd like.

More detail

For the full picture, see our Privacy Policy and Terms of Service.