What if your Social Security taxes had been invested?

Upload the statement file from your my Social Security account. We’ll compare what your payroll taxes would be worth in the S&P 500, Treasury bonds or a savings account with the benefits you’re likely to collect, based on your age and how long you’re likely to live.

Your file never leaves your device. Everything runs inside your browser. Your file and the numbers in it are never uploaded, sent or stored, and there are no accounts or cookies. You can switch on airplane mode after this page loads and it still works. To see how many people use the site, we count page visits with Cloudflare Web Analytics. It doesn’t use cookies and never records your file, your earnings or any personal details, and it’s skipped if your browser sends Do Not Track or Global Privacy Control. If you’d like, you can also remove your name and birth date from the file before you choose it.
How do I get my XML file?
  1. Sign in at ssa.gov/myaccount (Login.gov or ID.me).
  2. Open your Social Security Statement.
  3. Choose “Download your Statement data” (the XML file, not the PDF).
  4. Pick that file above. It stays on your device.
Optional: remove your name and birth date from the file first

You don’t need to do this. This page reads your file inside your browser and never sends it anywhere. If you’d still rather the file didn’t identify you, you can edit a copy of it before you choose it above.

What in the file identifies you

SSA’s statement file has one personal section, <osss:UserInformation>, near the top. It holds just two fields:

  • <osss:Name>: your full name.
  • <osss:DateOfBirth>: your date of birth, written year-month-day (for example 1970-03-14).

The file does not contain your Social Security number, and it has no address, phone number or email either. ssn.tips never asks for your Social Security number, so don’t type it anywhere on this site.

Everything else in the file is about your record rather than who you are: the date the file was downloaded (<osss:FileCreationDate>), SSA’s benefit estimates (<osss:EstimatedBenefits>), and your earnings for each year with your lifetime tax totals (<osss:EarningsRecord>). Your earnings history is still private financial information, so keep the edited copy somewhere safe too.

How to edit it

  1. Make a copy of the XML file you downloaded and edit the copy.
  2. Open the copy in a plain text editor, such as TextEdit on a Mac or Notepad on Windows. Don’t use a word processor like Word, which can change the file.
  3. Find the <osss:UserInformation> lines near the top.
  4. Replace the text between <osss:Name> and </osss:Name> with anything you like, or delete that whole line. Only change the text between the tags, and leave the tags themselves alone unless you delete the entire line.
  5. Decide what to do with your date of birth (see below).
  6. Save the file as plain text, keeping the .xml ending, then choose the edited copy above.

Before (made-up example):

<osss:UserInformation>
    <osss:Name>JANE Q. EXAMPLE</osss:Name>
    <osss:DateOfBirth>1970-03-14</osss:DateOfBirth>
</osss:UserInformation>

After (name replaced, real birth year kept, month and day changed):

<osss:UserInformation>
    <osss:Name>ANONYMOUS</osss:Name>
    <osss:DateOfBirth>1970-07-01</osss:DateOfBirth>
</osss:UserInformation>

Without a name, your results are headed “Your statement” instead of “Statement for” and your first name. Nothing else uses it.

What the analysis still needs

  • Your earnings by year. Leave every <osss:Earnings startYear="…" endYear="…"> entry, with its <osss:FicaEarnings> and <osss:MedicareEarnings> amounts, exactly as it is. These are what your taxes are calculated from. Without them the page can’t run.
  • SSA’s benefit estimates in <osss:EstimatedBenefits>. If you remove them, you’ll have to type in a monthly benefit estimate yourself.
  • Your date of birth, either in the file or typed into the page.

Your date of birth: three choices

  • Leave it as it is. This gives the most accurate results.
  • Keep the real year but change the month and day, as in the example above. Results shift a little, because your age will be off by up to six months. Keep the year-month-day format (for example 1970-07-01). A year on its own isn’t read as a date.
  • Delete the whole <osss:DateOfBirth> line. The analysis can’t run without a date of birth. It uses it to work out your age today and in each year you worked, your life expectancy from SSA’s life tables (which depend on birth year), and how many more years of tax you’d pay before claiming. So the page won’t show any results at first. Instead it asks for your date of birth under “Your assumptions”. Whatever you type there stays in this browser tab. It isn’t saved and is gone when you close the tab.

ssn.tips is free, with no ads and no accounts. If it’s useful to you, buy me a coffee.

How it works

  1. Read your earnings record. Your statement lists the earnings you paid Social Security tax on each year.
  2. Work out your taxes. We apply each year’s official tax rate (for example, 6.2% for you and 6.2% for your employer since 1990).
  3. Invest them, on paper. Each year’s taxes go into the S&P 500 with dividends reinvested, 10-year Treasuries, or 3-month T-bills, using the actual returns for every year since then.
  4. Value your benefits. We take SSA’s benefit estimates for claiming at 62, at full retirement age and at 70, and weight each future payment by your chance of being alive to receive it, using SSA’s own life tables.

Method & sources

Assumptions: contributions are invested mid-year by default and valued at the end of the latest year with full return data. SSA’s benefit estimates are in today’s dollars and assume you keep earning at your latest level until you claim, so we add those future taxes on the investment side as well. Present values use a 2.3% real discount rate, the Trustees’ long-run real interest rate. The annuity column is an actuarially fair, inflation-indexed annuity priced with the same life table and rate. Real insurers charge more.