gregable / social-security-tools Goto Github PK
View Code? Open in Web Editor NEWWebsite Source for https://ssa.tools/
Home Page: https://ssa.tools/
License: MIT License
Website Source for https://ssa.tools/
Home Page: https://ssa.tools/
License: MIT License
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?"
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.
The earliest one can file is age 62, and the first benefit will be received to pay for the month the worker is 62 and one month old. So the left-most position on the slider is one month to early.
And other languages, but going by largest audience, spanish would be the next biggest.
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.
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:
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.
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.
A small point and one which is likely out of scope, but SS counts a birthday at the beginning of the month (e.g. Feb 1) different from others (Feb 2). These "edge" effects occur both with months, and with end of year issues. Here is a good explanation with examples:
User report was for Firefox 50.1 on a Windows 10 machine at 1920 x 1080.
View @ 100% If I decrease zoom to 90% it aligns correctly.
If I click on "how do I save this report", the "how do I report a bug" expands. If I click on "how do I report a bug", nothing happens.
(Chrome Version 67.0.3396.99 (Official Build) (64-bit))
Reported by @stkeros
It would be good to try out y-axis labels and a zero line on the spousal benefit chart.
I'm worried that the fact that both up and down are positive might make this confusing, but I suppose that's the case already and maybe more labeling will help rather than hurt.
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.
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.
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.
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.
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.
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.
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.
Emulated mobile chrome seems OK (other than screen width issues), but actual Chrome on Android seems to not recognize the CSS for the FAQ entries for some reason.
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.
Reported by @stkeros
Not sure what the formula is for this, but shouldn't be too hard.
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).
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:
For the y-axis, interesting options would be to show:
Would be nice to have one.
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.
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.
In the default 1985 example with zero earning spouse, the spousal benefit is described as $518 in the text and shown as $517 in the graphical output and summary below it.
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,000Based 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).
If one adds a ridiculous PIA (e.g. $3,000,000,000) things get slow or unusable. :)
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.
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.
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
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.
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.
View print preview. The rzsliders disappear, which makes some parts of the report a little harder to read.
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.
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.
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.
and https://www.ssa.gov/oact/progdata/retirebenefit1.html
A factor will always equal one for the year in which the person attains age 60 and all later years.
I entered as set of 20 years of earnings. Then I used the slider to say I had 30 more. Even when those additional earnings were set as zero, they had the "top 35" label, when clearly they were not.
However, as I increased the slider for the future earnings amount the "top 35 label" was correctly removed from the "lower" set of entered earnings.
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.
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).
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?
'textarea' is a technical term, so this looks like a typo to most users. Technical users probably wouldn't notice 'text area' as weird either.
'text box' may be best
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
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.