Privacy Policy
Last updated 18 August 2026
This policy explains what milk money collects, why we collect it, and what control you have over it. milk money is run by an independent developer, who is the data controller for the purposes of the GDPR. You can reach us at hclarke.dev@gmail.com.
The short version
- We collect what is needed to run a shopping list that syncs: your email, your lists, your price history and your settings.
- There are no advertising trackers, no analytics scripts and no third-party cookies in this app.
- We do not sell your data and we do not share it for advertising.
- Use milk money without an account and your data never leaves your device.
1. Using milk money without an account
If you are not signed in, your lists, history and settings are stored only in your browser's local storage, on that one device. They are never sent to our server, and we cannot see them.
Clearing your browser data deletes them, and they do not follow you to another device.
2. What we collect when you have an account
Account information:
- your email address;
- your name, if you give one or if it comes from Google sign-in;
- a bcrypt hash of your password, if you signed up with one. We never store the password itself.
Your app data:
- shopping lists and their items — name, price, quantity, and whether the item has been bought;
- trip history — saved totals, per-item snapshots, currency and date;
- settings — weekly budget, currency, preferred store, and your alert and notification toggles.
Technical data:
- a session cookie that keeps you signed in;
- a language cookie that remembers whether you want English or Spanish;
- standard server logs kept by our hosting provider — IP address, timestamp, user agent — used for security and debugging.
We do not store a profile picture, even when one is available.
3. Signing in with Google
If you choose Google sign-in, Google tells us your Google account ID, your name and your email address. We store those to create and identify your account, along with the tokens needed to keep the connection working.
We deliberately discard the profile image Google offers. We have no access to your Gmail, your contacts, or anything else in your Google account.
4. Receipt photos and AI processing
When you scan a receipt, your browser sends the photo to our server, and our server forwards it to OpenAI's API, which reads the line items and returns them as text.
- We do not store the photo. It exists in memory for the length of that single request and is never written to our database. Only the items you approve on the review screen are saved.
- Your browser never talks to OpenAI directly — the API key stays on our server.
- OpenAI processes the image as our processor under its API terms, which state that API inputs are not used to train its models by default.
- Please do not scan receipts that carry other people's personal details.
5. Why we use your data, and on what legal basis
- To provide the service you asked for — storing your lists, syncing them across devices, showing your history and totals. Basis: performance of a contract.
- To keep your account secure — authentication, password resets, abuse prevention. Basis: our legitimate interests, and legal obligation where one applies.
- To send service messages — password reset links, plus spending reports or notifications if you switch them on in Settings. Basis: contract for the essential ones, your consent for the optional ones.
- To fix problems — reading logs when something breaks. Basis: our legitimate interests.
6. What we do not do
- We do not sell or rent your personal data.
- We do not run advertising, ad networks, or third-party analytics and tracking scripts.
- We do not build marketing profiles about you, and we do not make automated decisions that produce legal effects.
- We do not share your lists or your spending with other users.
7. Who else handles your data
milk money relies on a small set of processors, each doing one job:
- our hosting provider, which serves the app and keeps request logs;
- our PostgreSQL database provider, which stores your account and app data;
- OpenAI, which reads the receipt images you choose to scan;
- Google, if you choose to sign in with it.
Beyond these, we disclose personal data only where the law requires it.
8. Where your data goes
Some of the processors above operate outside the European Economic Area — OpenAI, in particular, processes data in the United States. Where personal data leaves the EEA, the transfer relies on the European Commission's Standard Contractual Clauses or an equivalent safeguard under Chapter V of the GDPR.
9. How long we keep it
- Account and app data: for as long as your account exists. Deleting your account deletes your lists, items, history and settings along with it.
- Password reset tokens: they expire one hour after they are issued, and requesting a new one invalidates the old one immediately.
- Server logs: kept briefly by our hosting provider, according to its own retention policy.
- Data held on your device while signed out: it stays until you clear it. Signing out also clears the copy milk money keeps in local storage.
10. Security
- Passwords are stored as bcrypt hashes, never in plain text.
- All traffic runs over HTTPS.
- API keys and database credentials live only on the server and are never exposed to your browser.
- The password reset form returns an identical response whether or not an address is registered, so it cannot be used to find out who has an account.
No system is perfectly secure. If a breach ever affects your data, we will notify you and the relevant supervisory authority as the GDPR requires.
11. Your rights
Under the GDPR you can ask us to:
- show you the personal data we hold about you;
- correct anything that is wrong;
- delete your account and its data;
- give you a copy in a portable format;
- restrict or object to certain processing;
- withdraw consent you previously gave, without affecting what was done before you withdrew it.
Email hclarke.dev@gmail.com and we will respond within one month. If our response does not satisfy you, you can complain to the data protection authority in your EU country.
12. Cookies
milk money sets two cookies: one that keeps you signed in, and one that remembers your language. Both are strictly necessary for the app to work the way you expect, and neither tracks you across other websites. There are no advertising or analytics cookies — which is why the app does not show you a cookie banner.
13. Children
milk money is not intended for children under 16, and we do not knowingly collect their personal data. If you believe a child has created an account, email us and we will remove it.
14. Changes to this policy
We will update this page and the date above whenever the policy changes. If a change materially affects how we handle your data, we will tell you in the app or by email before it takes effect.
15. Contact
Questions, requests or complaints: hclarke.dev@gmail.com.