Privacy Policy
Last updated October 20, 2026
Money Actually is a personal financial dashboard. It is read-only: it shows you your money and never moves it. This policy explains exactly what we collect, why, who touches it, and how to get rid of it.
1. Who we are
Money Actually is operated from McKinney, Texas, at moneyactually.app. Privacy questions: support@moneyactually.app.
2. What we collect
Information you give us. Your email address and, if you create one, a password (stored only as a salted scrypt hash — we never see or store the password itself). Optionally a display name.
Sign in with Google or Apple. If you choose to sign in with Google or Apple, that company authenticates you and tells us your email address, whether it is verified, your name if you allow it, and an account identifier that lets us recognise you next time. If you use Apple’s Hide My Email, we receive only the relay address. We never receive your Google or Apple password.
Financial data, via Plaid. When you connect a bank, Plaid Inc. authenticates you directly with your institution and returns data to us. We receive:
- Account names, types, masked account numbers (last four digits only), and balances
- Transaction history: dates, amounts, descriptions, merchant names, and categories
- Institution names and connection status
We never receive your bank username or password. Those go directly to Plaid and your bank. We never receive full account numbers.
Payments, via Stripe. If you subscribe on our website, Stripe, Inc. collects your payment details directly on its own checkout page. We give Stripe your email address and an internal account identifier so the subscription is linked to you, and Stripe tells us identifiers for your customer record and subscription, and whether the subscription is active. We never receive or store your card number.
Payments, via Apple. If you subscribe in the iOS app, Apple sells and bills the subscription through In-App Purchase. The iOS app also gives Apple an internal account identifier with the purchase, so the subscription is tied to your account and no one else’s. Apple tells us a transaction identifier and whether the subscription is active, and we store those against your account so the subscription unlocks it. We never receive your payment details.
Payments, via Google Play. If you subscribe in the Android app, Google sells and bills the subscription through Google Play. The newer Android app also gives Google an internal account identifier with the purchase, so the subscription is tied to your account and no one else’s. Google tells us a purchase token, which plan you bought, and whether the subscription is active, and we store those against your account so the subscription unlocks it. We never receive your payment details.
Technical data. IP address and request metadata, used for rate limiting and abuse prevention, and error diagnostics when something breaks.
Your phone, in the newer Android and iPhone apps. When you sign in, the Android app tells us your phone’s model, such as “Pixel 8”, so Settings can list where you are signed in as “Money Actually on Pixel 8”. An iPhone does not give the app its model, so the iPhone app sends none, and Settings lists it as “Money Actually”. A home-screen widget, if you add one, is labelled the same way: with the model on Android, and as “iPhone” on an iPhone.
A random identifier for the app on your phone, in the newer Android and iPhone apps. The first time the app offers Google or Apple sign-in, it makes a random identifier for this installation and keeps it on the phone (ma.install.deviceId.v1, section 7). It goes to us when you sign in with Google or Apple, and we seal it into that sign-in’s one-time code, so the code can only be redeemed by the app that asked for it. It says nothing about you or the phone, and it is not used for anything else.
Your phone, when you sign in with Google in the newer iPhone app. The sign-in runs in Google’s own software inside the app. While it is open, Google may collect information from your phone, as Google’s Privacy Policy describes. Google’s software declares to Apple that this can include identifiers for you and for the phone, a phone number, a rough location, and how you use Google’s sign-in screens, which Google uses for its own analytics and to prevent fraud. In the newer Android app, sign-in goes through the phone’s own Google account screen instead. We receive only what the paragraph on signing in with Google says above, and the app keeps none of the rest.
Your phone, when you connect a bank in the newer Android and iPhone apps. The connection runs in Plaid’s own software inside the app. While it is open, Plaid may collect information from your phone, as Plaid’s End User Privacy Policy describes: your IP address and time zone setting, and a rough location from them; the phone’s model and operating system; which of Plaid’s screens you use; and network and other technical data about the phone, which Plaid uses to run the connection and to prevent fraud. Plaid may also ask for your phone number so it can recognise you next time; we never ask for it. On Android, Plaid’s software holds two permissions for this, neither of which shows a prompt: reading basic phone state (READ_BASIC_PHONE_STATE), which does not give it your phone number or the phone’s IMEI, and changing network state (CHANGE_NETWORK_STATE). On an iPhone it asks for no permission at all. We do not receive any of this, and the app keeps none of it.
Error reports, from the newer Android and iPhone apps. If the app crashes or hits an error, it may send a report to our own servers, not to an outside crash-reporting service: the kind of error, its message with numbers, quoted text, email and web addresses taken out, where in the app’s code it happened and on which screen, the app’s version and build, your phone’s operating system version and model (on an iPhone or iPad, just “iPhone” or “iPad”), and when it happened. Never your balances, your transactions, or anything you typed. A report is stored against your account, because only a signed-in app sends one, and kept for 30 days.
Error reports, from our website. If a page fails while it is showing in your browser, or something on a page you are signed in to stops working because of an error in our code, the website sends the same kind of report to our own servers: the kind of error, its message with numbers, quoted text, email and web addresses taken out, where in the website’s code it happened, which page it was (as “/accounts/[id]”, never the address with your account in it), your browser’s name and major version and your computer’s or phone’s operating system, such as “Chrome 141” and “macOS”, and when it happened. Never your balances, your transactions, or anything you typed. If you are signed in, it is stored against your account and kept for 30 days; if you are not, our server discards it without keeping anything. Our apps do not send these from the website pages they show.
Notifications, in the newer Android and iPhone apps. If you allow notifications, your phone gets a push token: an identifier that lets a notification reach this app on this phone, issued on Android by Google’s Firebase Cloud Messaging and on an iPhone by Apple’s Push Notification service. The app sends it to us, and we store it against your account and the sign-in it came from, with the kind of phone (Android or iPhone) and when we last saw it. We use it only to send the notifications you have on in Settings: that a bank connection needs you to sign in again, and, if you turn it on, a Sunday reminder that your week is ready. Each notification is a fixed sentence and the screen it opens. A notification never contains an amount, a merchant, a bank’s name or anything else of yours, because it can appear on your lock screen.
How you get through setup, on our website. To find out where setup loses people, we record a few steps against your account in our own database: which setup screens you reached, completed or skipped, and when you open the bank-connection window, which bank it was (Plaid’s identifier for it), whether it ended with a connection, how many accounts you chose, and if it did not connect, Plaid’s code for why. That is all. Never your balances, transactions, account names or anything you type. No cookie or third-party tool is involved, nothing is shared, and none of it is recorded inside our iOS or Android app.
Messages you send support. If you write to us through the support form, we keep what you write, the address to reply to, and your name if you give it. If you leave the box on the form ticked, we also attach the details it lists: whether you used the website or one of our apps, your browser and device type, when your account was created, whether your email is verified and two-factor is on, your plan, and how many bank connections you have and whether any need attention. Never your balances, your transactions, or the names of your banks or accounts.
3. What we do with it
- Calculate your net worth and its history
- Show and categorize your transactions
- Track budgets and detect recurring charges
- Keep your accounts in sync in the background
- Authenticate you and secure your account
- Manage your subscription, if you have one
- Answer questions you type to Slip about your own figures — see section 5
- Answer you when you write to support
- See where setup loses people, so we can fix it — counted in our own database, never shared
- Find and fix errors in our app, from the reports described in section 2
- Send the notifications you turn on in the newer Android and iPhone apps — see section 2
We do not sell your data. We do not share it for advertising. We do not build profiles for anyone else. Your financial data is used to show you your finances, and for nothing else.
4. Background syncing
Once you connect an account, we keep it up to date in the background — including when you are not using the app — so your balances and transactions are current when you open it. This continues until you disconnect the account or delete your account.
5. Who we share it with
These are service providers acting on our instructions, not independent recipients:
- Plaid Inc. — connects to your financial institutions and supplies the data. In the newer Android and iPhone apps, Plaid’s own software runs the connection on your phone and receives the device and diagnostic data described in section 2. Governed by Plaid’s End User Privacy Policy.
- Stripe, Inc. — processes subscription payments made on our website. It receives your email address, an internal account identifier, and the payment details you enter on its checkout page. Governed by Stripe’s Privacy Policy.
- Google LLC — if you sign in with Google, for subscriptions bought in the Android app, which Google sells and bills through Google Play (the newer Android app gives it an internal account identifier with the purchase, as section 2 says), as the host of our support mailbox, which receives the messages you send us, and, if you allow notifications in the newer Android app, through Firebase Cloud Messaging, which delivers them to your phone. For that, Google issues the phone’s push token (section 2), and we send it each notification: the token, the notification’s fixed text and the screen it opens, never your email address or your financial data. Governed by Google’s Privacy Policy.
- Apple Inc. — if you sign in with Apple, for subscriptions bought in the iOS app, which Apple sells and bills, and, if you allow notifications in the newer iPhone app, through the Apple Push Notification service, which delivers them to your iPhone. For that, Apple issues the phone’s push token (section 2), and we send it each notification: the token, the notification’s fixed text and the screen it opens, never your email address or your financial data. Governed by Apple’s Privacy Policy.
- Expo (650 Industries, Inc.) — builds the newer Android and iPhone apps and delivers their updates. Each time the app checks for an update, Expo receives a random identifier the app made for this installation, which is not linked to your account, whether the phone runs Android or iOS, the app’s version and the update it is running, and your IP address. If the app failed to start the time before, the check also carries up to the first 1,024 characters of that error. Expo has no part in notifications: it neither issues the push token nor carries them. It never receives your email address or your financial data. Governed by Expo’s Privacy Policy.
- Neon — our database host (United States).
- Vercel — our application host (United States).
- Resend — delivers our account emails (confirmation, password reset, security alerts), the weekly summary email if you turn it on, and what you send through the support form to our support mailbox. It receives your email address and the message (United States). The weekly summary is off unless you turn it on. When it is on, each one contains your spending budget this month and what is left of it, your lowest balance ahead and its date, how many transactions need review, the names, amounts and dates of bills due in the next seven days, the names you gave your best and worst car, rental or client and what each made or lost this month, the merchant names and amounts of new or higher subscriptions, and your net worth and how it changed over the week. It never contains an account or card number.
- Anthropic PBC — answers the questions you type to Slip, and only then. When you ask Slip something, we send it your question, the name of the screen you asked from, and a summary of your figures: your net worth and what you owe by kind, each account’s name and balance, this month’s spending by category and against the same days last month, your budgets, what went out and came in for each of the five months before this one, and your most recent 40 transactions with their dates, merchants, categories, accounts and amounts. It never receives your name, email address, or any account or card number. The first time, Slip asks for your OK before it sends anything, and we record when you gave it. Your data is not used to train its models, and we do not keep a record of what you asked or what it answered. Anthropic deletes each request and its answer within 30 days. The exceptions are a request its systems flag as a possible breach of its usage policy, which it may keep for up to two years, and anything the law requires it to keep. Governed by Anthropic’s Privacy Policy.
We require each of these to protect your data to the standard described here. We will also disclose information where legally compelled, and will tell you unless prohibited from doing so.
Stripe, Google, Apple, and Expo never receive your financial data. Your accounts, balances, and transactions are shared with Plaid, which supplies them, our hosts, which store and serve them, Resend, which delivers the weekly summary if you turn it on, and — only when you ask Slip a question — Anthropic, as described above.
AI only when you ask. Nothing is sent unless you type a question to Slip, and you can turn Slip off. Nothing is sent in the background, on a schedule, or while you are simply using the app. Categorization and recurring detection run on our own servers using your data alone, and always have. If you never type a question to Slip, your figures never reach an AI service. You can turn Slip off completely in Settings.
If Money Actually is sold. If the business, or the part of it that runs this service, is sold, merged or otherwise transferred, your data may pass to the new owner as part of it. The new owner must keep to this policy, including that your data is never sold or used for advertising, or ask for your agreement before using it any other way. We will email you before the transfer happens.
6. How we protect it
- Encrypted in transit (TLS 1.2+) and at rest
- Plaid access tokens encrypted with AES-256-GCM and never sent to any browser or app
- Passwords stored as salted scrypt hashes
- Card details handled entirely by Stripe and never sent to our servers
- Every request scoped to your account by a signed session: on the website, an HttpOnly cookie no script can read; in the newer Android and iPhone apps, a token kept in the phone’s secure storage (the Android Keystore, or the iPhone’s Keychain)
- Rate limiting on authentication to resist guessing
No system is perfectly secure. If a breach affects your data we will notify you promptly.
7. Cookies and local storage
We use only what the app needs to work. There are no advertising, analytics, tracking or third-party cookies, no session recording, and nothing that follows you to other sites. That is why we do not show a cookie banner: there is nothing optional to agree to. The setup steps described in section 2 are recorded on our own server against your signed-in account, not with a cookie or anything stored in your browser.
- Session cookie (
__Host-wos_session) — keeps you signed in. HttpOnly, so no script can read it. - Sign-in cookies (
__Host-wos_mfa_pending,__Host-wos_oauth,__Host-wos_reauth) — short-lived, set only while you finish two-factor authentication, a Google or Apple sign-in, or a security check. - Browser storage — your theme choice (
ma-theme), a temporary handle that lets a bank connection resume after your bank’s own sign-in page (ma-link-token,ma-link-handle), whether the page is running inside our Android app (ma.twa), whether you hid Slip (ma-slip), which of Slip’s messages this visit has already shown (ma.slip.spoke), and whether this device has already answered or seen the offer of the weekly summary email (ma-digest-offer-reveal,ma-digest-offer-caught-up). - Offline copy — a service worker keeps a copy of the app’s own files so it can show an offline page. It stores no financial data.
Plaid’s connection window may set its own cookies while it is open, under Plaid’s policy linked above.
On your phone, in the newer Android and iPhone apps. The apps are built natively rather than showing the website, and keep these on the phone. “Secure storage” is the phone’s own: on Android, encrypted with a key held by the Android Keystore; on an iPhone, the Keychain.
- Sign-in token (
ma.session.v1) — keeps you signed in. Kept in secure storage (on an iPhone, readable only while the phone is unlocked), and deleted when you sign out. - Installation identifier (
ma.install.deviceId.v1) — the random identifier described in section 2, kept in secure storage. Nothing about you. - Offline copy (
ma-query-cache) — the figures you have already opened, so the app can show them without a connection. Encrypted with AES-256 under a key made on the phone and kept in secure storage (ma.cache-key.v1). Wiped when you sign out, and never sent anywhere. - Settings — your theme choice (
ma.theme) and whether app lock is on (ma.app-lock), both in secure storage. App lock uses the phone’s own fingerprint or face prompt, or Face ID or Touch ID on an iPhone; your fingerprint and face never reach the app. App lock stays on when you sign out, and is turned off when you delete your account in the app. - Switched-off features (
ma-flags) — which parts of the app we have switched off for everyone, as last read from our server, so a part switched off stays off when the phone is offline. Nothing about you. - Home-screen widget, if you add one — its own token and the last summary it showed. On Android (
ma_widget) the token is encrypted with a key held by the Android Keystore. On an iPhone the token is in the Keychain, shared only with the widget, readable once the phone has been unlocked since it started, and never moved to another phone; the widget’s connection and the last summary are in storage only the app and its widget can open, and the summary is kept out of backups. The summary has no amounts unless you turn on “Show amounts on widget”. Signing out removes the token from the phone and asks us to cancel it. - A crash waiting to be reported (
ma-crash-report) — if the app closes because of an error, the error report described in section 2 is kept on the phone with your account’s identifier, until the app next opens signed in to the same account; then it is sent to us and removed. It is deleted unsent if a different account signs in, and whenever you sign out. - When to ask for a rating (
ma-review-prompt) — three dates: when the app was first opened, when it last asked you to rate it in Google Play, and when it last hit an error, so it never asks too soon or too often. Kept even while the app does not ask at all, as the iPhone app does not, and never sent anywhere. - What Slip has already shown you (
ma-slip-notes) — two short lists: the notes from Slip you have looked at and the ones you closed, so Slip does not point the same thing out again. Each entry is a fingerprint of the note, never its words or figures, so nothing about your money is in it. The lists are capped, and never sent anywhere. - When to ask about notifications (
ma-push-prompt) — how many times the app has been opened signed in, and whether it has asked to send you notifications, so it never asks on the first day and asks only once. Nothing about you, and never sent anywhere. If you allow notifications, the phone’s push token is also kept on the phone, by Google’s Firebase software on Android and by iOS on an iPhone. - App updates — the updates the app has downloaded, and the random installation identifier described under Expo in section 5.
The Android app turns off Android backup, so none of this goes into your phone’s backups. On an iPhone, everything in secure storage except your theme is kept for this phone only: iOS never puts it in a backup or moves it to another phone. Your iCloud or computer backup can hold the rest. The offline copy stays encrypted there, and cannot be read without its key, which stayed on the phone. iOS keeps Keychain items after an app is deleted, so if you delete the iPhone app without signing out, its sign-in token and the other secure-storage items above, the widget’s token among them, stay on the phone, where no other app can read them, until the app is installed again (it then opens signed in) or the phone is erased. You can end that sign-in at any time from Settings on our website.
8. Retention and deletion
We keep your data while your account is open. Delete it at any time in Settings → Delete account, or follow these instructions.
Deleting your account:
- Removes every bank connection at Plaid, so no further data is retrieved
- Cancels any active subscription with Stripe, so you are not charged again
- Erases your accounts, transactions, balance history, budgets, categories, and rules
- Erases the support messages we hold for your account, including any you sent while signed out from the same address
- Erases your email address, credentials, and any link to your Google or Apple sign-in
After a deletion we keep three minimal records, none of which contains financial data:
- That a deletion occurred — a timestamp and the outcome — for security and fraud prevention.
- That you agreed to connect a bank: the date, the purpose, and which version of the disclosure you were shown. We keep this because being able to prove consent was given is the whole point of recording it, and destroying it with the data it authorised would leave us unable to answer for what we collected.
- A one-way hash of your email address, so that deleting and re-creating an account does not hand out a second free trial. It cannot be turned back into your address and is used for nothing else.
Support messages are kept for twelve months after you send them, so a conversation can be picked up again, and then deleted. Email already exchanged about them stays in our support mailbox until that twelve months is up, even if you delete your account sooner.
Setup steps (section 2) are kept for 400 days, so this year can be compared with last, and then deleted. They are erased with your account if you delete it sooner.
Error reports from the app (section 2) are kept for 30 days and then deleted. They are erased with your account if you delete it sooner.
Push tokens (section 2) are kept while the sign-in that registered them lasts. One is deleted when you sign out on that phone, end that sign-in from Settings, sign out everywhere, change your password or delete your account, and when Google’s Firebase Cloud Messaging or Apple’s Push Notification service tells us the app is no longer on the phone or the token is no longer valid. A daily cleanup deletes any whose sign-in has ended some other way. Turning a notification off in Settings stops it at once; the token stays until one of those.
Backups are overwritten on a rolling 30-day cycle.
If you ever paid for a subscription, Stripe keeps its own record of those payments, as payment processors must for tax, accounting, and fraud-prevention purposes, under Stripe’s Privacy Policy. If you signed in with Google or Apple, you can also remove Money Actually’s access from your Google Account or Apple ID settings at any time.
9. Your rights
You can access your data in the app, export your transactions to CSV at any time, correct your categorizations, and delete everything. Depending on where you live you may have additional rights under laws such as the GDPR or CCPA; email us and we will honour them. We extend deletion and export to everyone regardless of location.
We do not sell personal information as defined by the CCPA, and never have.
10. Children
Money Actually is not for anyone under 18. We do not knowingly collect data from children. If we learn we have, we delete it.
11. Changes
We will post any change here and update the date above. Material changes will be emailed to you before they take effect.
12. Contact
Pricing · Privacy · Terms · Security · Delete account
Money Actually provides information and tools, not financial, investment, tax or legal advice.