GithubHelp home page GithubHelp logo

gregable / social-security-tools Goto Github PK

View Code? Open in Web Editor NEW
75.0 75.0 17.0 33.44 MB

Website Source for https://ssa.tools/

Home Page: https://ssa.tools/

License: MIT License

HTML 0.05% JavaScript 0.19% TypeScript 33.96% Svelte 65.75% Dockerfile 0.03%
angularjs finance retirement social-security

social-security-tools's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

social-security-tools's Issues

Allow users to compute total lifetime benefits using various assumptions

One of the features that users really want, but probably don't need, is to compute the "optimal" choice for filing dates for themselves and their spouse. I personally think that the differences are small and the assumptions too large for any such calculation to be all that meaningful, it would be nice to provide especially if I can find a way to show users these facts (that the differences are small and the assumptions are large).

Ideally any such calculation would also highlight that the "longevity insurance" option.

SSDI calculations

From reddit:

I'd love to see you add some information regarding disability and what would happen if someone gets sick or injured. This could be an extremely simple way for someone to know whether or not they're eligible for SSDI (have they paid in enough yet).

Add contributor text for folks who have significantly contributed to the tool

This would be for contributions beyond finding a typo or filing a simple feature request.

Initially, this text would reference contributions from @stkeros

My first thought on this is to add a new doc to the 3 tabs at the top: Home, About, Contributors, Contact.

Text on the contributors page would include:

[Major Heading]Major Contributors[/Major Heading]

Sotirios Keros: a physican and financial planner, and co-founder of the not-for-profit Doctored Money. Sotirios contributed to the design and correctness of the calculations.

[Major Heading]Contributions Welcome[/Major Heading]

If you would like to contribute, the project is on github at: Gregable/social-security-tools. Please file issues in the issue tracker.

@stkeros, let me know if you have any suggestions for this text.

Bend points and index factors might be incorrect?

Using your demo example of a person born in 1950 with the 5 earnings years. The bend points should be from 2012 (age 60, see here https://www.ssa.gov/oact/cola/bendpoints.html). I think perhaps you are using the bendpoints from 2017?

Also, I get different index factors that you, I suspect due to the same error which is causing the wrong bendpoints. Since my index is different, so is the PIA.

For the 5 years of earnings, I believe the correct index factors range from 3.33...2.58 for years 1980 to 1984. But I don't know if those are based on the most recent wage index (2015).

I don't know anything about java, so don't know how to evaluate for formulas to help with the source of the error.

Allow users to manually edit individual future years earnings

Currently, the only option for future years is a slider with a single dollar value input and a number of years input. For users interested in digging in with even more detail, it would be super useful to support allowing them to manually tweak earnings in these future years.

It may also be nice to provide an option to allow folks to set a starting dollar amount and an expected annual increase (over inflation), so the series is computed automatically.

Support entering primary earner's PIA directly

From @stkeros. It would be useful to allow the user to input a PIA directly into the tool as a sort of advanced feature, which would presumably hide the sections of the report related to computing the PIA from earnings.

Now that the report computes spousal benefits, there is more of a report to show. Before, 60% of the report was demonstrating how the PIA calculation worked.

Favicon

Would be nice to have one.

Consider having the sliders even in the not-married case

If the user selects not married, there are no sliders. However as simple as the output/graphic might be, the slider is an interactive element that illustrates the early and delayed benefits nicely, even if a chart/table is sufficient. Especially now that you've illustrated the effect of delayed credits which are not fully applied at first.

Lock the filing sliders for impossible cases.

Reported by @stkeros

Specifically, if the lower earner has a $0 personal benefit, it does not make sense for that slider to ever be set earlier than the higher earner. You can't claim a $0 benefit (or maybe you can, but it's silly).

Breakpoint chart options

The breakpoint chart currently displays monthly indexed earnings on the x-axis and monthly pia on the y-axis. It would be nice if the user could select different chart options and have the chart adjust this automatically.

For the x-axis, interesting options would be to show:

  • monthly indexed earnings x 12 (yearly indexed earnings)
  • some notion of number of additional years worked

For the y-axis, interesting options would be to show:

  • yearly value of primary insurance amount

Render correctly on mobile screens

I doubt most users will be pasting real data in from mobile, but at least the demo links should work, so you can get an idea of what you'll be looking at if you spend the effort to fire up a desktop.

Age should be requested earlier in the flow

Currently the site displays PIA computations first, then prompts the user with an age selection. Unfortunately, for users over the age of 60, the PIA computation is affected by age. We are computing this correctly now, if you select your age below, the PIA above adjusts, but that's not super obvious to folks.

Change the flow to ask for age immediately after asking for an earnings record and before displaying the indexed table.

Special Rule appears for spouse with birth "day" on the 2nd

Choose the first demo data. Then set the spouse's age to Mar 2, 1949.

Below the spousal chart, the special rule box appears stating:

You may find it oddly specific that the earliest Spouse can actually begin benefits is at age 62 and 1 month. Benefit eligibility is calculated based on the first month that you are a particular age throughout the entire month. For most, this is the month after their birthday.

For example, the first month that Spouse is 69 throughout the entire month is Apr 2018.

This box should not appear, as the first month is actually Mar 2018, since the SSA birthday is Mar 1.

The chart appears correct, allowing the user to begin benefits at age 62.

Improved readability suggestions

The design of the main output page is a little hard to read, in my opinion. I'm referring specifically that there is not a clear way for one to understand what they are "going to be" reading.

In the about page there is "From that data, the site produces a detailed social security report."

And then the output is one linear web page which walks one through all the details of the specific amount/explanations etc. As my wife asked "what am I supposed to be looking at". I explained it's like book written just for you, explaining social security based on your actual numbers. "Oh, So I have to read everything from top to bottom?

Perhaps consider a tab, page, or section which summarizes the inputs and outputs a little more fully than the 'about' page?

Inputs required: Your actual data from ssa.gov, date of birth, and spouses PIA and DOB if married.

Here is an example of the type of text you might consider somewhere before the main output text.

Outputs: This will generate a personal report based on your individual situation. It will walk you through the following sections: 1) How your PIA was calculated 2) Show your normal retirement age, and the effects of filing at other ages 3) If married, describes and calculates the spousal benefits which might apply. Finally, there is a graphical output where you can adjust your and/or spouses filing dates and instantly see how your personal and spousal benefits are affected.

The other thing that's awkward is that the spousal inputs "interrupts" the output. Consider asking for this information earlier so that all the input sections are together.

What's the "name" of the site?

When I tell people to go to the site, what am I telling them to go to?

Go to "Social Security Tools?" "Understand Social Security?"

Number of decimal places used to calculate indexed earnings is incorrect

Using your example of the worker born in 1950 with 5 years of earnings, I get a different sum for the index earnings. I get 464,295 while you get 464,293.

I think this is because you aren't using enough decimal places. Below is a link which explains the procedure used calculated indexed earnings.

In your case, I see that your "multiplier" (officially known as the index factor) only displays 2 decimals. But the calculation should use an index factor to at least 7 decimals in order to be consistent with SSA calculations. Then, after multiplying the earnings times the index factor, you round the earnings down to the nearest penny.

In this particular example, although the sum of the earnings changes by $2 after fixing the error, the PIA does not change, due to other rounding done later.

https://secure.ssa.gov/poms.nsf/lnx/0300605018

C. Procedure

To index earnings:
Multiply the posted earnings up to the maximum creditable for each year after 1950 up to the indexing year by the average wages of all workers for the indexing year; and
Divide the result by the average earnings of all workers for the year being indexed. Carry to three decimal places and round to the nearest cent; i.e., if third decimal place is 4 or less, round down; if 5 or more, round up.

The root page for the site is horrible

I'm referring to the piggy bank image page at https://socialsecurity.tools/. It's completely useless, and does very little to help the user determine if this tool is worth their effort to login to ssa.gov, copy/paste their earnings report, etc.

I'm not really sure what should be on this page, but the piggy bank and "Understand Social Security" are not the right answer.

Left and right vertical lines on the graph look awkward.

What about getting rid of the y-axis on the left entirely. Then on the right, change it so that it more clearly represents this is the benefit which will persist. I've mocked up a kind of line break and ellipses, but it can be anything. Deciding on an right-y-axis feature may be a precursor to a future revision which attempts to show widow benefits upon death.

image

COLA not being applied to PIA

For folks over 62, we should be adjusting their PIA by COLA values. This issue also requires asking users their age earlier in the site's flow.

Spousal chart gets crowded when earners have large age differences

82kbrkraluo

This example is the Test 1 case (1950 birthdate) with a spouse born in 1990. I assume this is uncommon, so I consider fixing this low priority.

My thought would be to actually just hide most of the years between the sliders, for example showing 2030 ... 2050 and compressing the 20 years in between them.

Rearrange the report flow

Currently, the report requests the earnings report from a single user, then their birthdate. It then displays a bunch of single-user data followed by a request for spousal data. This was done by organically moving from a single-user display to a spousal display.

I propose a different flow. Initially the user just clocks a big "BEGIN" button. A document is displayed which has three headers:

  • Birthday
  • Earnings Data
  • Are you married

These are all just data-entry headers. Once birthday AND earnings data are entered, new sections appear below with PIA calculations, Normal Retirement Age, and Early / Delayed retirement table as today. The Early / Delayed retirement chart is removed completely.

If the married Selector is chosen, similar data inputs appear for Spouse, and as those are filled in, new sections appear for the spouse, essentially forming two reports. The spousal report would discuss spousal benefits or personal benefits, or both, depending on the situation from the data entry.

Below both of those two sections, we would display the "Early and Delayed Combined Retirement" section which replaces the Early / Delayed retirement chart. It needs to be updated to potentially show only one user, if that person is not married, but would use a slider.

Describe to the user how survivor benefits work

From @MikePiper:

Try to make sure the reader/user is considering survivor benefits as well.

As one really simple example, imagine two people, each with a PIA of $1,000 and FRA of 67. And they're considering Strategy A in which one files at 62 and the other at 70, as opposed to Strategy B in which both spouses file at their FRA.

Strategy A gives them monthly income of: $700 + $1,240 = $1,940
Strategy B gives them monthly income of: $1,000 + $1,000 = $2,000

Based only on these two amounts, it looks like the second strategy might be slightly preferable. But once we think about survivor benefits, we see that the first strategy has a considerable advantage in that regard (because after one dies, the survivor is left with a monthly benefit of $1,240 instead of $1,000).

AnyPIA output format not recognized by site

A user has reported that it would be nice if the output format from the AnyPIA tool could be used in the site as well. Seems like a good idea to support.

An example of the format was provided as:

Amount Quarters
Annual Maximum per of
year earnings earnings QC coverage
1975 8,557.00 14,100.00
1976 10,118.00 15,300.00
1977 12,845.00 16,500.00
1978 13,444.00 17,700.00 250.00 4
1979 14,898.00 22,900.00 260.00 4
1980 6,447.00 25,900.00 290.00 4

Spousal Birthdate Selector does not allow user to select birthdays of person over 70

This made sense before there was a spouse tool, since if you are already 70, you are already receiving benefits and know what that benefit is, so I cut off the age ranges at the current year - 70 (currently 1948).

However, this no longer makes sense for the spouse tool. Due to differences in ages, one spouse could be 72 already and the other could be 60. It still makes sense to allow the 72 year old to enter their age, for computation of the combined benefits.

Credits not taken into account

https://www.ssa.gov/planners/credits.html

How credits are earned has changed over the years, but if you have less than 40 credits (if born after 1929), you cannot collect retirement benefits at all.

Even if implementing the actual credit formulae over the years isn't reasonable, the calculator should probably at least warn someone with less than 10 years of projected earnings that they may be ineligible for retirement benefits and that they should double-check the rules for collecting.

Sample data doesn't have records for latest year

Reported by @stkeros

The sample data doesn't have records for 2017 (currently). This produces a gap in the earnings record displayed on the site. This is fairly minor, but perhaps should be updated to produce the sample records relative to the current year.

If the "spouse" has the higher PIA, the calculator is currently changing the spousal benefit based on retirement age of spouse (not correct).

I used the 1985 demo, no earnings. I'm "A", spouse is "B". I assigned a PIA of $5000 to B, born in 1990.

When "A"s slider is adjusted, the spousal benefit which starts at "B"s retirement age also changes. I don't think this is right. The spousal benefit would not depend on when spouse files.

That is, I'm not sure that if spouse delays their OWN filing, that that will affect the benefit they may receive in the future as a spouse. But as I'm tying these words, I'm not positive of that.

Eg, in the image below, moving the slider to the left increases both the personal benefit and the spousal benefit?

Also, currently, changing the age of "B" does not change "A"s benefit. But I think "A"s spousal benefit would increase for years 62-67 for B (but no extra spousal benefit for delaying past 67).

I hope that isn't too confusing.

capture

Officially, the actual credit for delayed benefits is not immediately applied in all cases

E.g suppose a July 2nd birthday and a FRA of 67. One files in June of age 68 to start benefit in July. The initial benefit at age 68 will only receive 6 months of delayed credits (for July to December of the previous year). Because delayed credits are calculated based on the number of months earned in the previous calendar year. Then in January of the year the person turns 69, he/she will get credit for the addition delay earned (Jan to June of age "68").

There is one exception: If one waits until age 70, one gets all the credits due to them immediately.

So what the calculator is calculating is not that actual benefit as of a given age/date, but rather the expected future "long term" benefit.

Add "age" as a column in the earnings list?

It might be nice to list a person's age to the right of the year on the earnings record input and additional earnings tables.

I think in terms of "what if I work until 55" rather than "what if I work for "55 - current age" more years. But adding age, it would make it easy to see the age at last year of earnings.

Actual age on slider obscures fixed age text on page.

This is cosmetic, but the label for the actual age for which the slider is set overlaps the 62...70 when not set on an integer setting, and is hard to read.

Consider

  1. Deleting the fixed labels once the slider is moved. It will be clear that the range is 62 to 70
  2. Only label 62, and 70, either as is, or to the left and right of the slider, while preserving the text for the slider setting just about the movable dot.

On a related note (new issue?) the lines upon which the slider moves extends just a bit to the left and right of 62/70. I assume this is how the stock code for that graphic behaves. Consider truncating the line so that it doesn't extend past the end of the dots. Minor issue. One can play with such things forever.

Delayed credits for a spouse is causing total benefits to exceed 1/2 of max earners. Is this correct?

Question to answer (male husband, female wife): can a lower earning wife whose PIA is less that half of husband, ever have a total benefit which is greater than husbands PIA/2? I think "no".

Currently in the calculator, if an older wife delays her personal benefit, the increased benefit is leading to a situation where personal benefit + eventual spouse benefit results in a benefit higher than husband's PIA/2.

For example, using the 1985 demo, with husband as self and wife as spouse, with older wife with PIA 100, and husband with default 1035 PIA. If wife delays her personal benefit to age 70, she receives PIA*1.24= $124. But when she finally gets a spousal benefit, the calculator is adding an additional $517 to her $124 for a total benefit of $541. Shouldn't the total benefit be capped at $517?

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.