Privacy Policy
Last updated: October 12, 2026
This page says what the site sends, who receives it, and what it keeps in your browser. Where a statement rests on another company's documentation, or on a check we ran ourselves, it says so and gives the date.
Data Collection
There are no accounts, no sign-up and no email list, and we keep no database of visitors or of what they type. The calculator does its arithmetic in your browser, but some of what you enter still leaves it. Our code writes none of it to a database and logs only errors. This is where it goes.
- Your settings are kept in the page address. Once you change the plan or pick a currency, the calculator writes your settings into the address bar, so that a link reproduces the plan: the amount, frequency, dates, fees, price source and display currency, plus a Manual-mode price, a starting stack, its cost and a yearly increase if you entered them. A shared or bookmarked link carries them from the start. Your browser sends that address to this site when it loads the page. The price lookups, comparisons and exchange-rate requests below are sent to the address of the page you are on as well, so what those points say a request sends is in addition to this address. Our host, Vercel, receives these requests with your IP address and browser details, as any web host does, and keeps request logs. Its documentation (read October 12, 2026) lists the path, the part of the address after the "?", the time and the browser's user agent among the details of a logged request, with a retention of one hour to 30 days depending on the hosting plan.
- Price lookups go to our server. To price a plan, the calculator sends our server your start date, your end date and the price source you picked, and asks for that source's latest price. The S&P 500, gold and inflation comparisons, a plan you add under Compare Plans and the "What If You Skipped It?" card each send two dates as well: dates from your plans, today's date, or the date five years before it. Our server answers from its copy of each provider's full public history. The providers are not sent your dates, or anything else about you.
- Two comparisons are worked out on our server. The range of outcomes for the same plan from every past start date sends how often you buy, how long the plan runs (rounded to whole months), your fee percentage and the stretch of price history to compare against. The share card's line about how your average cost ranks against other start dates sends how often you buy, how long the plan runs in days, and your average cost per bitcoin before fees. The answer for a given frequency, plan length and stretch of history stays in our server's memory for up to an hour, so the same schedule is answered faster next time.
- Exchange rates. Amounts in a currency other than US dollars are converted at the day's European Central Bank rates. Your browser asks our server for them when your display currency is not US dollars, when you press or focus the calculator's currency picker, and when a saved Cost Basis Tracker position is in another currency. The exchange-rate request does not ask for a currency: the answer holds every rate. Like the lookups above, though, it goes to the address of the page you are on, and that address can hold your settings, the display currency among them.
- The live price and the network widgets. On the home page the price ticker and the network widgets ask two fixed addresses on this site,
/api/live/tickerand/api/live/sidebar, for their latest figures, about every 30 seconds while the tab is visible. These requests do not go to the page address: they carry no page address, no cookies and nothing about your plan. Vercel still receives your IP address and browser details with them. - Shared links, preview images, the widget and the API. A link made with the share buttons carries the plan in its address in the same way. When someone opens it, or a chat app or social network fetches it to build a preview, our server reads those settings to draw the page and its preview image. The embeddable widget and the public API work the same way, and so do the FIRE and drawdown calculators' own pages: the FIRE form sends an amount, a frequency and a start year, the drawdown form a stack size in bitcoin, and each reloads its page with those values in the address. The finished image or API response can be cached under its address by our host's network for up to about an hour, like other web responses.
- Share buttons. The buttons that post to X, or to Nostr through Primal, open that service with the text and link you chose to share in the address of the new window. Nothing goes to either of them unless you press the button. Saving the share card as an image happens in your browser.
- Cost Basis Tracker positions stay on your device. Their dates, amounts and labels are saved in your browser and are not sent to our server. The tracker prices them on your device from the public price history, which it downloads in full once a position is saved, unless the page already holds all of it up to date. That request names the price source and no date, amount or label of yours. Beyond the page address it goes to, it shows our server one thing about your positions: that at least one is saved. A position in a currency other than US dollars also leads to the exchange-rate request above.
Prices and network data come from public sources: Kraken, Coinbase, mempool.space, CoinGecko, FRED, Yahoo Finance, alternative.me, blockchain.info, and Frankfurter (frankfurter.dev) for European Central Bank exchange rates. Our server makes every one of those requests. Your browser never contacts them, and none of the requests contains anything about you or your plan.
Analytics
We use Vercel Web Analytics and Vercel Speed Insights to count page views and to measure how fast pages load. They load for every visitor, whatever you answer in the cookie banner, on every page except the embeddable widget. Neither sets a cookie. Their reports go to Vercel through this site's own domain.
Before either script sends a report, this site cuts the page address down to its path. Everything after a "?" or a "#" is removed, campaign tags included. Calculator settings live after the "?", so your amounts and dates are not in these reports. The path is still sent (for example /calculators/bitcoin-fire), and so is the address of the page that sent you here when that page is on another site.
The rest of what the reports hold, according to Vercel's documentation for Web Analytics and Speed Insights (read October 12, 2026): the time, your approximate location (country, region and city; for Speed Insights the country only), your browser, operating system and device type, and, for Speed Insights, the loading-speed measurements, the part of the page each one relates to, and your connection speed. To count visitors without a cookie, Vercel makes a hash from each incoming request and discards it after 24 hours. Vercel says it collects no identifier that follows you across other sites. That is Vercel's description of its own systems, which we cannot inspect. See Vercel's privacy notice for the rest.
Cookies & Browser Storage
Until you press Accept All in the cookie banner, this site sets no cookies. It does keep a few things in your browser's own storage. The names are given so you can check them in your browser's developer tools.
- Preferences, in localStorage until you clear them:
theme-preference(light or dark),cookie-consent(your answer to the banner),currency-preference(display currency) anddenomination-preference(BTC or sats). - Install prompt:
pwa-install-dismissedin localStorage records when you last answered the "install this app" prompt, whether you installed, declined or closed it, so it is not offered again for 30 days.pwa-visit-countin sessionStorage counts page loads in the current tab to decide when to offer it, and is gone when the tab closes. - Cost Basis Tracker positions:
btc-dca-cost-basis-positionsin localStorage holds the positions you enter, so they survive a reload. - Offline copies: outside the embeddable widget, the site installs a service worker so that it can still show you something when it cannot be reached. In your browser's Cache Storage it keeps the offline page and the files that page needs, the most recent pages you opened (up to 60), and static files such as scripts and images (up to 120). Only a page loaded in full is copied (from its address, a bookmark, another site or a reload), not one reached by a link inside the site. Most pages are stored under their path alone, with nothing after the "?", so the home page's copy is not filed under your calculator settings. The FIRE and drawdown calculators' pages are built by our server from the settings in their address, and each is stored under its full address, settings included. A shared link is never stored. The copies stay on your device.
If you press Accept All
Accept All loads Google's ads tag for our Google Ads account. We use it to see whether people who arrive from this site's own Google ads go on to use the site. From then until you withdraw consent, Google is a recipient of data about your visit. What follows is what we observed in a test on October 12, 2026.
- What Google receives. The tag sent requests to googletagmanager.com, google.com, doubleclick.net and googleadservices.com. Google's script decides which of Google's servers it calls, so that list can change. Between them the requests carry the full address of the page you are on, including any calculator settings in it, the page title, the ID held in the
_gcl_aucookie described below, and the ad-click ID if you arrived from a Google ad. They also carry your screen size and device details the tag reads from your browser: processor type, operating system and its version, full browser version and, where the browser reports one, device model. Google receives your IP address too, as with any request. - Ad personalisation. The consent passed to the tag covers ad personalisation as well as measurement, and the tag calls Google's remarketing endpoint. So Google can use your visit to personalise ads, not only to count conversions.
- Cookies on this site's domain.
_gcl_auholds an ID that Google's tag generates and sends with its requests, and is kept for 90 days._gcl_awis set only if you arrived by clicking a Google ad, and holds that click's ID for 90 days. As with any cookie, your browser also sends these to this site with its other requests. Our code does not read them. - Storage on this site's domain.
_gcl_lsin localStorage, written by Google's tag to hold the same kind of identifiers, andads-conversion-firedin sessionStorage, written by this site so that a visit is counted once per browsing session. - Cookies on Google's own domains. Google can also set cookies on its own domains, which this site cannot read or delete. Examples from Google's published list (read October 12, 2026):
test_cookieon doubleclick.net for 15 minutes, andIDEon doubleclick.net for 13 months in the EEA and UK and 24 months elsewhere. A browser that blocks third-party cookies will not store Google's own.
Third-Party Advertising
Display ads are served by A-ADS (AADS), an advertising network that says it is headquartered in Hong Kong. Each ad slot is a frame loaded from A-ADS's servers. The frames are not tied to the cookie banner, and they do not wait for you to scroll to them: your browser can request every one as soon as the home page opens, whatever you answered. In our check on October 12, 2026, Chrome did on a direct visit. As of October 12, 2026 the slots are on the home page only.
When a slot loads, your browser contacts A-ADS directly. A-ADS receives your IP address, your browser details, and the fact that the request came from this site. It is not sent the page address or your calculator settings. The frame also loads a font from Google Fonts, so Google's font servers receive your IP address and browser details too. That request comes from A-ADS's frame, not from this site's page.
We checked the frame on October 12, 2026. Its response set no cookies and contained no scripts. That is one check of the ad shown that day, not a promise about every ad. A-ADS, not this site, chooses the ad, and we cannot see inside its frame. A-ADS's own privacy policy (read the same day) says it "may use cookies, JavaScript, web beacons, and similar technologies, such as tracking URLs", and that information may be transferred to and processed in Hong Kong and other countries. An ad's link points at A-ADS's own click address, so clicking one takes you off this site, and the policies of A-ADS and of the advertiser apply from there.
Google's ads tag, described above, shows no ads here. This site has not run Google AdSense since July 2026.
Affiliate Links
Some links to other companies are affiliate links, labeled where they appear. Nothing is sent to those companies until you click one. When you do, the link tells the company that the visit came from this site, and its own privacy policy applies from then on.
Opt-Out
The cookie banner appears until you answer it. Choose "Essential Only" and Google's ads tag never loads. That choice does not stop the A-ADS frames or the Vercel analytics described above. This site has no switch for those; a content blocker in your browser can block them.
Your answer is saved in your browser under cookie-consent. If your browser blocks this site's storage, the answer cannot be saved. It then holds until the site is next loaded afresh, for example by a reload, and the banner asks again.
To change your answer later, use the Cookie preferences link in the footer of any page. It brings the banner back and withdraws your consent straight away: the tag is told that consent is denied, and this site deletes the _gcl_ cookies and the _gcl_ls entry from its own domain. Cookies on Google's domains stay until they expire or you clear them. Google's script stays loaded in that tab, with consent denied, until you reload or close it. In our test on October 12, 2026 it sent nothing further after consent was withdrawn. You can also:
- Turn off personalized ads in Google's ad settings
- Set your browser to block third-party cookies
- Use a content blocker. The site works without the ad frames and the analytics.
Data Retention
What this site keeps is in your browser: your preferences and any Cost Basis Tracker positions in its storage, and your calculator settings in the page address. Clearing this site's data in your browser removes everything the site has stored there, including the offline copies and the cookies on this site's domain.
What other parties hold is kept on their terms: Vercel's request logs and analytics, Google if you accepted its tag, and A-ADS. The sections above link to each one's own policy.
Children's Privacy
This website is not directed at children under 13 years of age. We do not knowingly collect personal information from children. If you are a parent or guardian and believe your child has given us personal information, please contact us so we can take appropriate action.
Changes to This Policy
We may update this privacy policy from time to time. Changes are posted on this page with a new "Last updated" date. Continuing to use the site after a change means you accept the updated policy.
Contact
Questions about this policy? See the contact page, or reach us on X (Twitter) at @9drix9. If something here is wrong, tell us and we will correct it.