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.
How do I get my XML file?
- Sign in at ssa.gov/myaccount (Login.gov or ID.me).
- Open your Social Security Statement.
- Choose “Download your Statement data” (the XML file, not the PDF).
- 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 example1970-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
- Make a copy of the XML file you downloaded and edit the copy.
- 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.
- Find the
<osss:UserInformation>lines near the top. - 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. - Decide what to do with your date of birth (see below).
- Save the file as plain text, keeping the
.xmlending, 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.
Your results
Your assumptions (change them and the results update instantly)
Future returns used to project to your claiming age (real, after inflation)
These are deliberately below the historical averages shown in the results. Past returns don’t guarantee future ones.
What Social Security is likely to pay you
The invested money as retirement income
Growth of your contributions
Social Security taxes paid each year
How long you might live
Keeping it fair: what this leaves out
- Insurance, not just savings. Your taxes also bought disability insurance and survivor benefits for a spouse and children.
- A lifetime, inflation-indexed income. Social Security pays until you die and rises with inflation. That protection is expensive to buy privately, and a portfolio can run out.
- Hindsight. These results use real historical returns, and U.S. stocks did unusually well. Nobody knew that in advance, and future returns may be lower. Fees and taxes on investment gains aren’t included.
- Spousal benefits (up to 50% of your benefit) aren’t counted, so the Social Security side is understated for many married people.
- Pay-as-you-go. Your taxes paid for retirees at the time. Today’s workers couldn’t simply have invested them without someone covering existing benefits.
Year-by-year detail
FICA earnings are SSA’s taxable earnings, already capped at each year’s maximum. Tax = earnings × that year’s OASDI rate. Values are at the end of each year in nominal dollars.
How it works
- Read your earnings record. Your statement lists the earnings you paid Social Security tax on each year.
- 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).
- 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.
- 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
- Statement format: SSA Statement XML (schema 2.0), ssa.gov/developer/statement.
- Tax rates & wage caps: SSA Office of the Chief Actuary, tax rates and contribution & benefit base. Includes the 1984 employee credit (5.4%) and the 2011–12 payroll-tax holiday (4.2%).
- Investment returns & inflation: Aswath Damodaran, NYU Stern, Historical Returns on Stocks, Bonds and Bills, 1928–2025 (CPI-U from FRED).
- Life expectancy: SSA cohort life tables, 2026 Trustees Report, intermediate assumptions. These are by sex and birth year. The health setting scales death rates (×0.65 to ×1.8) as a rough adjustment.
- Trust fund: 2026 OASDI Trustees Report. The retirement (OASI) fund is projected to run out in late 2032, after which 78% of scheduled benefits would be payable.
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.