Who processes your data
The data controller is Sandy Bradbury, an individual resident in Spain and the owner of compoundingjourney.com. Write to me through the contact form or by email at compoundingjourney@gmail.com about anything on this page, including to exercise your rights. Those are the only two ways to reach me from this site, and both arrive in the same inbox.
There is no data protection officer: one person runs this site, and none of the processing described here requires appointing one.
What is processed, at a glance
| What is collected | What for | Legal basis | Kept for |
|---|---|---|---|
| Name, email and message from the contact form | Answering you | Your consent in sending the form, and the pre-contractual relationship you asked for | 24 months from the last message |
| Display name and score in the simulator leaderboards | Publishing the ranking you chose to submit | Your consent in pressing "submit score" | Until you ask for it to be removed |
| The settings and the result of a simulation (figures, percentages and options chosen) | Publishing aggregate averages and shares on the data page | Your consent in pressing the button that saves the simulation | Indefinitely, in aggregate and with no name |
| Name, email address and language of the email subscription | Sending you a welcome email and one email per new article | Your consent when you submit the subscription form | Until you unsubscribe; after that, only the record that you did |
| How many times each article is opened | Deciding what to feature | Legitimate interest in knowing what is read | One aggregate counter per article per month, indefinitely |
| How many times each template is downloaded, and how often the link shown afterwards is followed | Knowing which template is useful, and whether the panel after it is worth keeping | Legitimate interest in knowing what is downloaded | Two aggregate counters per template per language per month, indefinitely |
| Email, password (stored only as a hash) and, if you sign in with Google, your name and Google account id, for a Family Wealth Compass app account | Signing you in to the app | Performing the service you ask for when you create the account | Until you delete the account |
| The data you enter in the app, if you choose to keep it in your account | Keeping a copy so it is not lost and opens on any device you sign in on | Your consent when you choose "Save in my account" | Until you delete it or the account; each save replaces the previous one |
| IP address and technical request data | Serving the page, rate-limiting abuse, logging faults | Legitimate interest in keeping the service up | The hosting provider's logs, days |
| A visit to the course page: Google Ads cookies, IP address and browser data | Measuring which ads bring visits to the course | Legitimate interest in measuring the course's advertising | As set by Google; its ad cookies last up to 90 days |
The contact form
The form asks for your name, your email address and your message. It is submitted to Netlify Forms, stored there, and forwarded to me by email. It is not used to send you anything you did not ask for, it is not shared, and it does not feed a mailing list: subscribing to the articles by email is a separate, deliberate act.
The simulators and the public data
Three of the simulators keep a public leaderboard. If you press the button to submit your score, the display name you typed, the score, the page's language, the date and the settings you ran that simulation with are stored, and the leaderboard row is visible to everyone. None of this happens until you press it: the simulators work perfectly well without submitting anything.
The other two — the Freedom Calendar and the Market Time Machine — have no leaderboard, but they do have a button that adds your simulation to the public data. No name is stored there: only the figures you entered, the options you picked and the result that came out.
"The settings of the simulation" means things like the withdrawal rate, the share of stocks and bonds in the portfolio, the starting age, the horizon in years, or which habits you cut. They are the model's numbers, not data about you: no address, no occupation, no real net worth, nothing a form would ask for. What gets published from them is averages and shares on the data page, and no measure appears until its sample is large enough - precisely so that no figure describes a single simulation.
The rows stored without a name carry no identifier at all, which means they cannot be found again afterwards: there is no way to tell which one was yours, for me or for anybody else. That is what makes them anonymous, and it also means a particular row cannot be deleted on request. The leaderboard is different: there is a display name there, and it can be removed.
You choose the display name, and the sensible choice is not your real one. A nickname does the same job. If you submitted one and want it gone, write through the contact form or to compoundingjourney@gmail.com naming the score and the simulator, and it will be deleted.
The reading counter
Opening an article adds one to a counter. That counter holds a number per article per month and nothing else: no cookie, no identifier, no browser fingerprint, no record of who read what. It is what decides which article the blog features.
The download counter
Downloading a template requires subscribing to the newsletter: the button opens the subscription form, and your first name and email are handled like any other subscription (see the section on the email subscription). The download counter, on the other hand, keeps nothing about you: the only thing counted is the download itself. Pressing the button adds one to a counter holding how many times that template has been downloaded, per template, per language, per month; and if you then follow one of the two links in the panel that appears, one is added to a second counter.
That second number exists so the panel can be judged: if almost nobody uses it, it should go. Neither counter holds anything more. What is sent is the page's language and the template's internal id, and that is all: no address, no cookie, no visitor identifier, and no record of who downloaded what.
The Family Wealth Compass app and its accounts
The app works in your browser, and you choose where it keeps what you enter in it: your household's income, expenses, assets, debts, goals and plans.
- Only in this browser. Nothing is sent anywhere: the data stays in your browser's local storage, and an exported backup file is the only other copy.
- In my account (recommended). The data is still kept in your browser, and a copy is also stored in the site's database, linked to your account, so it is not lost with a phone or a laptop and opens on any device you sign in on. Each change replaces the previous copy; there is no history. The PIN lock you can set in the app never leaves the device.
An account is an email address and a password, or your Google account. Netlify Identity stores the password only as a hash; I never see it. If you sign in with Google, Google tells the site your email address and name, and the site tells Google nothing about what you do in the app.
The stored data is used for one thing: showing it back to you. It is not read, analysed, shared or used to send you anything. The account page (the "Account" button at the top of the app) lets you go back to keeping it only in this browser, delete the copy from the server, or delete the account altogether; each takes effect immediately, and none of them touches the copy in your browser.
The app also uses these local-storage keys: family_balance_sheet_state (the data itself), cj-storage-mode (where you chose to keep it), cj-cloud-meta (which version was last saved to the account), cj-auth-return (which page to come back to after signing in with Google, for an hour at most) and, while you are signed in, gotrue.user (the session). In the browser's session storage, cj-connect-reminded remembers that you were already invited to connect to your account, and fwc-unlocked-at keeps the time of your last activity in the unlocked app, so the PIN is not asked again before the auto-lock time has passed. Both are cleared when the tab is closed. cj-app-owner-pass is only for the site's administrator.
Cookies and storage in your browser
The site sets no cookies of its own, and outside the course page none from anyone else either. The exception is that page — the "De Cero a la Libertad Financiera" course, in any of its three languages: it loads the Google Ads tag (gtag.js), which may store Google advertising cookies — such as _gcl_au — and send Google your IP address, your browser's details and the click identifier if you arrived from an ad. It is there to tell which ads bring visits to the course. No other page loads it.
You can prevent it by blocking third-party cookies in your browser or with an ad blocker; the course page works the same, buy buttons included. Google handles that data under its own privacy policy, and you can manage the ads it shows you in My Ad Center.
The one exception of its own: while you are signed in to an app account, two session cookies, nf_jwt and nf_refresh, keep you signed in. They are strictly necessary for the account and are deleted when you sign out.
It does use eight local-storage keys, which stay in your browser and are never sent anywhere:
preferredLanguage— the language you chose, so you are not asked twice.languageSuggestionDismissed— that you already dismissed the language prompt.preferredCalculatorCurrency— the currency you want the calculators in.cj:simulator:contextandcj:leaderboard:mine:*— which simulator you came from, and which leaderboard rows are yours so they can be marked. These two are cleared when you close the tab.cj:viewed:*— which articles have already been counted in this tab, so reloading one does not count it twice. Cleared when you close the tab.cj:template:*— which templates have already been counted in this tab, for the same reason. Also cleared when you close the tab.cj:subscribed— that you have already subscribed from this browser, so the templates download without asking for your email again. It holds neither the email nor the name.cj:path:progress— which steps of the learning path you have already seen and the starting point you chose, so your progress can be shown. You can clear it from the path page itself.
You can delete them from your browser whenever you like. The site keeps working; it just stops remembering your preferences.
Who else sees your data
- Netlify (Netlify, Inc.) hosts the site, processes the form, runs the app's accounts (Netlify Identity), and runs the database holding the simulations, the scores, the counters and the copy of the app's data of anyone who keeps it in their account. It acts as a data processor.
- Resend (Resend, Inc.) sends the subscription emails. It receives your first name, email address and language, and only if you subscribe. It acts as a data processor.
- Google (Google Ireland Ltd. and Google LLC) receives the Google Ads tag's data, on the course page only. See the cookies section. And, only if you choose "Continue with Google" in the app, it confirms your identity to the site, under its own policy.
- Nobody else while you browse. Anywhere else on the site, loading a page contacts no third party: the fonts, the charts and the scripts are all served from this domain. There is no Google Analytics, no pixel outside the course page, and no social button that follows you.
The email subscription, Substack and the share buttons
The "Subscribe" buttons on this site open a form asking for your first name and email address. It is sent to Netlify Forms and stored in the site's database together with the page's language and the button you subscribed from. That, and only that, is used to send you a welcome email and then one email per new article in your language, through Resend. Every email has a one-click unsubscribe link; using it stops everything, and the date you unsubscribed is kept so you are not written to again.
The Compounding Journey newsletter on Substack is something else: a separate publication, in English only, and links to Substack take you to its website. If you subscribe there, Substack processes your address under its own policy; this site never receives it.
The share buttons on the articles are ordinary links. They load nothing from those networks and tell them nothing about your visit: they only open when you press them.
International transfers
Netlify, Inc., Resend, Inc. and Substack are in the United States, so data they process may leave the European Economic Area. Those transfers rely on the EU-US Data Privacy Framework and on the European Commission's standard contractual clauses, depending on the provider.
Your rights
You can ask me at any time for access to your data, its correction or erasure, the restriction of or objection to its processing, and its portability, and you can withdraw your consent whenever you like. Write through the contact form or to compoundingjourney@gmail.com and I will answer within one month.
If you think I handled that badly, you can complain to the Spanish Data Protection Agency (www.aepd.es), C/ Jorge Juan 6, 28001 Madrid, which is the supervisory authority for this site.
If you live in Brazil, the LGPD gives you the same rights, exercised the same way, and you can also complain to the Autoridade Nacional de Proteção de Dados (www.gov.br/anpd).
Children
This site is not aimed at children under 14 and does not knowingly collect data from anyone that age. If you believe it has, write to me and it will be deleted.
Changes
If any of the above changes, this page changes with it, along with the revision date at the top. Changes affecting processing based on your consent do not apply to what was already collected without asking you again.
