Merit AC™
Financert / Privacy

Privacy policy — Financert

Status: draft. This describes what the software actually does today, verified against the code. It has not been reviewed by a lawyer. Before publishing it at a public URL for a directory submission or an app store listing, get it reviewed — and re-check it against the code, because the claims below are only true while the code stays as described.

Last updated: 2026-09-15


The short version

Financert compares a portfolio against public Federal Reserve statistics. The benchmark data is public. Your holdings are yours.

  • The MCP server stores nothing at all. Holdings you pass to it are used to compute an answer and discarded when the response is returned.
  • The REST API stores holdings only on the server you run it on, in a local SQLite file. There is no hosted service and nothing is sent anywhere.
  • No analytics, no tracking, no third-party scripts, no advertising.
  • No accounts, so no email address, name, or password is ever collected.

What each component handles

MCP server (backend/mcp_server.py)

Exposes six read-only tools. Every one is a pure function of its arguments and a data file committed to the repository.

Collected Nothing persistent. Tool arguments exist in memory for the duration of one call.
Stored Nothing. No database, no files written, no logs of arguments.
Shared Nothing. The server makes no outbound requests while serving.
Retention None.

Holdings passed to compare_allocation are financial information about you. They are used to compute the comparison and then discarded. They are not written to disk, not logged, and not transmitted onward.

Note that if you use this server through an AI assistant, that assistant's own privacy policy governs the conversation, including anything you typed to it. Financert has no visibility into or control over that.

REST API (backend/app/)

Collected Portfolio holdings you explicitly save: an asset-class label and a dollar amount, plus a name and slug you choose.
Stored In a SQLite file on the machine running the server.
Shared Nothing. The API makes no outbound requests.
Retention Until you delete the portfolio (DELETE /api/portfolio) or delete the database file.

There are no user accounts. Access is controlled by a single shared bearer token, if one is configured. Anyone holding that token can read every portfolio on that install — it is not per-user isolation, and it should not be relied on as such.

The API writes one line per request to its own standard output: the method, the matched route (/api/portfolio, never the slug that was asked for), the status, how long it took, and a request id. Holdings are not logged — the logger never reads the request body — and neither is the query string or the client's address. Where that output goes is the decision of whoever runs the server.

Dashboard (frontend/)

Uses browser localStorage for your holdings, your theme choice, the cohort you pick for yourself (generation, age, education), and the API token if you enter one. That data stays in your browser: a benchmark request carries which cut of the population is being shown, never who asked for it. No cookies are set, no analytics or third-party scripts are loaded, and no requests go anywhere except the Financert API you point it at.

Clearing site data removes all of it.

The shareable link ("Copy a link to this comparison") is the one feature that takes holdings out of the browser, and only when you ask for it. The numbers ride in the URL fragment — the part after #, which a browser never sends in an HTTP request and which is stripped from the Referer header — so the link does not put them in any web server's log, including this app's own. That is a statement about servers, not about people: a link is a link, and whoever you send it to can read the numbers in it. The app says so beside the button, and a link arriving with a portfolio in it asks before replacing anything already saved in the browser it lands on.

The CSV and PNG exports are built in the page, not on a server. Nothing about the portfolio is sent anywhere to produce either file.

Data we fetch

fetch_dfa.py downloads the Federal Reserve's public Distributional Financial Accounts archive. That is an outbound request to federalreserve.gov, containing no information about you — it is a plain file download, run by whoever maintains the deployment, not triggered by users.

Children

Not directed at children and collects nothing that would identify anyone, including children.

Changes

Material changes will update the date above. The repository's git history is the authoritative record of what changed and when.

Contact

Via https://usemeritai.com/contact?reason=support.

(A directory or app-store submission will require a monitored contact address here. Add one before submitting.)

← Financert