Skip to content
TsakmakTsakmak

Tool

S&P 500 Investment Simulator

Test the invest-every-month advice against S&P 500 history since 1871.

Live
Status
Live
Platforms
Web
Hosting
Self-hosted in Greece (EU)
Historical simulation, not financial advice. Past results do not predict future returns.

The problem

In Greece, more and more people share the same advice: put a fixed amount every month into VUAA (the Vanguard S&P 500 UCITS ETF) and hold it for 30 years. It sounds simple, but a single average return hides the good and the bad decades. I wanted to test whether the claims hold up, for example: what would have happened if my parents had invested a fixed amount every month from the day I was born?

What it does

You enter a starting amount, a regular contribution and any start and end month between January 1871 and March 2026. The simulator replays that period month by month on historical S&P 500 data and shows what your portfolio would have been worth, how much you put in, and how much of the result was growth. It then compares your plan with a single purchase at the start, with and without dividends.

How it works

  1. Open the app. There is no sign-up and no login.

  2. Enter an initial amount, a monthly or yearly contribution, and a start and end month.

  3. Optionally switch on inflation adjustment and the VUAA cost estimate.

  4. Press Run Simulation and read the result cards, the S&P 500 benchmark and the chart.

  5. Change a switch or a date, and the numbers update right away.

Key features

Any period, your own amounts

Pick any start and end month from January 1871 to March 2026 (1,711 months of data). Set a lump sum plus a monthly or yearly contribution. Switching the frequency converts the amount for you.

Works on a phone

Inflation adjustment

One switch shows the result adjusted for inflation, as buying power instead of a nominal amount. A banner shows how much inflation took from the value over the period.

The same result, adjusted for inflation

VUAA cost estimate

A switch applies the simulator's assumed cost of holding VUAA (the Vanguard S&P 500 UCITS ETF) instead of the raw index: about 0.15 percent per year, made of a 0.07 percent fund fee and 0.08 percent tracking difference. It is an assumption applied to the index, not the price history of the real fund.

The same run with the VUAA cost estimate switched on

Your plan next to buy and hold

Result cards show final value, total invested, profit and growth. Two benchmark cards show a single purchase at the start, with price change only and with dividends. A stacked chart separates what you put in from what the market added, month by month.

One run with the demo defaults, January 2000 to January 2020
Contributions and growth over 35 years, demo inputs

English and Greek

The whole interface switches between English and Greek. Every result card has a plain-language tooltip that explains the number.

Full Greek interface, one click away
  • Reinvested dividends

    Each month the dividend is turned into extra shares, so the result reflects total return, not only the change in the index price.

Security and privacy

  • No accounts, no login and no personal data. Your inputs never leave your browser: the whole simulation runs on your device, and there is no server endpoint that receives them.
  • No tracking: no cookies and no analytics. The only thing stored is your language choice, in your browser's local storage.
  • The Content Security Policy only allows scripts, styles, images, fonts and connections from the site itself. Fonts are self-hosted, so your browser makes no request to Google.
  • Frame embedding is blocked, and camera, microphone and location access are disabled by policy.
  • The app runs in a hardened container: non-root user, read-only filesystem, all Linux capabilities dropped, and memory, CPU and process limits.
  • It is self-hosted on my own server in Greece (EU). Traffic reaches it through Cloudflare, which handles TLS.

Under the hood

A Next.js app where all the maths happens in the browser. The market data is a static file of 1,711 monthly records of historical S&P 500 price and dividend data, shipped with the app, so there is no database and no external API at runtime. The chart is drawn with Recharts. The app is packaged as a Docker image and self-hosted.

The model is deliberately simple: monthly price points, dividends reinvested monthly without tax, no trading fees, spreads or taxes, and all amounts in US dollars.

The first version was generated with Abacus.AI, an AI app builder. I then improved it with AI agents and migrated it to my own server. Built with AI agents, reviewed by a security professional: the agents make it fast to build and iterate, while I set the requirements, review the result and own the security.

Stack

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • Recharts
  • Docker

Status and roadmap

Live

Live and public at invest.tsakmak.com, free to use, with no sign-up. The data currently runs through March 2026, and all amounts are in US dollars.

Planned:

  • Publish the code as open source.

Who it is for

  • People in Greece weighing a fixed monthly investment in an S&P 500 ETF such as VUAA: see how that plan would have played out over the exact years you choose, before you trust a rule of thumb.
  • Anyone curious about long term investing: compare regular monthly buying with a single purchase, with dividends and inflation in view.

Interested in S&P 500 Investment Simulator?

Pick an amount, a monthly contribution and any period from 1871 to March 2026, and see what the S&P 500 would have made of it. Historical simulation only.