Permalink
Browse files

Update to version 2017.1

The SSA released Detailed Calculator 2017.1 on December 22, 2016.
Incorporate the code changes from this release.

Changes in 2017.1 from SSA:
It updates the 2016.2 version with the new economic information from the automatic adjustments announced on October 18, 2016.
  • Loading branch information...
mrpippy committed Jan 5, 2017
1 parent dae1424 commit 888f76408dd3cd11697f2e5898b54f29faabeb78
Binary file not shown.
View
@@ -1,7 +1,7 @@
// Declarations for the <see cref="BaseYearNonFile"/> class to manage the
// computation year stored internally.
//
// $Id: BaseYearNonFile.h 1.38 2016/06/27 07:24:16EDT 277133 Development $
// $Id: BaseYearNonFile.h 1.39 2016/10/24 08:11:25EDT 277133 Development $
#pragma once
@@ -14,7 +14,7 @@
/// <summary>Manages the computation year for a pia program where it is
/// stored with the code.</summary>
///
/// <remarks>Currently <see cref="YEAR"/> is 2016 and <see cref="TR_YEAR"/>
/// <remarks>Currently <see cref="YEAR"/> is 2017 and <see cref="TR_YEAR"/>
/// is 2016. See <see cref="BaseYearFile"/> for a class where the computation
/// year is stored on disk.</remarks>
///
@@ -24,10 +24,10 @@ class BaseYearNonFile : public BaseYear
public:
/// <summary>Year for which data has been stored.</summary>
///
/// <remarks>The value of 2016 means that the December 2015 benefit increase,
/// 2014 average wage, and 2016 wage base are available. This is updated in
/// <remarks>The value of 2017 means that the December 2016 benefit increase,
/// 2015 average wage, and 2017 wage base are available. This is updated in
/// October after the annual automatic adjustment announcement.</remarks>
static const int YEAR = 2016;
static const int YEAR = 2017;
/// <summary>Year of Trustees Report assumptions.</summary>
///
/// <remarks>This is updated when the TR is released, so it is equal to
View
@@ -1,6 +1,6 @@
// Constants used in the various Oact C++ programs and utilities.
//
// $Id: oactcnst.h 1.18 2015/07/30 11:47:28EDT 729915 Development $
// $Id: oactcnst.h 1.19 2016/10/24 08:09:48EDT 277133 Development $
#pragma once
@@ -71,6 +71,9 @@ const int YEAR2085 = 2085;
// <summary>Last possible year of projection.</summary>
const int YEAR2090 = 2090;
// <summary>Last possible year of projection.</summary>
const int YEAR2095 = 2095;
// <summary>Last possible year of projection.</summary>
const int YEAR2100 = 2100;
@@ -1,7 +1,7 @@
// Functions of the <see cref="AwbiDataNonFile"/> class to manage historical
// Social Security parameters stored with the code.
//
// $Id: awbidtnf.cpp 1.45 2016/01/11 08:51:04EST 277133 Development $
// $Id: awbidtnf.cpp 1.46 2016/10/24 08:14:48EDT 277133 Development $
#include "AwbiDataNonFile.h"
#include "PiaException.h"
@@ -10,18 +10,18 @@
using namespace std;
// <summary>Benefit increases, 1951-2015.</summary>
// <summary>Benefit increases, 1951-2016.</summary>
const double AwbiDataNonFile::cpiincData[] = {
0.0, 12.5, 0.0, 13.0, 0.0, 0.0, 0.0, 0.0, 7.0, 0.0,
0.0, 0.0, 0.0, 0.0, 7.0, 0.0, 0.0, 13.0, 0.0, 15.0,
10.0, 20.0, 0.0, 11.0, 8.0, 6.4, 5.9, 6.5, 9.9, 14.3,
11.2, 7.4, 3.5, 3.5, 3.1, 1.3, 4.2, 4.0, 4.7, 5.4,
3.7, 3.0, 2.6, 2.8, 2.6, 2.9, 2.1, 1.3, 2.4, 3.5,
2.6, 1.4, 2.1, 2.7, 4.1, 3.3, 2.3, 5.8, 0.0, 0.0,
3.6, 1.7, 1.5, 1.7, 0.0
3.6, 1.7, 1.5, 1.7, 0.0, 0.3
};
// <summary>Average wage index, 1937-2014.</summary>
// <summary>Average wage index, 1937-2017.</summary>
const double AwbiDataNonFile::fqData[] = {
1137.96, 1053.24, 1142.36, 1195.00,
1276.04, 1454.28, 1713.52, 1936.32, 2021.40,
@@ -38,10 +38,10 @@ const double AwbiDataNonFile::fqData[] = {
25913.90, 27426.00, 28861.44, 30469.84, 32154.82,
32921.92, 33252.09, 34064.95, 35648.55, 36952.94,
38651.41, 40405.48, 41334.97, 40711.61, 41673.83,
42979.61, 44321.67, 44888.16, 46481.52
42979.61, 44321.67, 44888.16, 46481.52, 48098.63
};
// <summary>OASDI taxable maximum, 1937-2016.</summary>
// <summary>OASDI taxable maximum, 1937-2017.</summary>
const double AwbiDataNonFile::baseOasdiData[] = {
3000.00, 3000.00, 3000.00, 3000.00,
3000.00, 3000.00, 3000.00, 3000.00, 3000.00,
@@ -59,20 +59,20 @@ const double AwbiDataNonFile::baseOasdiData[] = {
80400.00, 84900.00, 87000.00, 87900.00, 90000.00,
94200.00, 97500.00, 102000.00, 106800.00, 106800.00,
106800.00, 110100.00, 113700.00, 117000.00, 118500.00,
118500.00
118500.00, 127200.00
};
// <summary>HI taxable maximum, 1991-2016.</summary>
// <summary>HI taxable maximum, 1991-2017.</summary>
const double AwbiDataNonFile::baseHiData[] = {
125000.00, 130200.00, 135000.00, MAXEARN, MAXEARN,
MAXEARN, MAXEARN, MAXEARN, MAXEARN, MAXEARN,
MAXEARN, MAXEARN, MAXEARN, MAXEARN, MAXEARN,
MAXEARN, MAXEARN, MAXEARN, MAXEARN, MAXEARN,
MAXEARN, MAXEARN, MAXEARN, MAXEARN, MAXEARN,
MAXEARN
MAXEARN, MAXEARN
};
// <summary>Old-law taxable maximum, 1937-2016.</summary>
// <summary>Old-law taxable maximum, 1937-2017.</summary>
const double AwbiDataNonFile::base77Data[] = {
3000.00, 3000.00, 3000.00, 3000.00,
3000.00, 3000.00, 3000.00, 3000.00, 3000.00,
@@ -90,7 +90,7 @@ const double AwbiDataNonFile::base77Data[] = {
59700.00, 63000.00, 64500.00, 65100.00, 66900.00,
69900.00, 72600.00, 75900.00, 79200.00, 79200.00,
79200.00, 81900.00, 84300.00, 87000.00, 88200.00,
88200.00
88200.00, 94500.00
};
/// <summary>Initializes historical parameters info, where the last year of
@@ -1,7 +1,7 @@
// Functions for the <see cref="AwincNonFile"/> class to manage average
// wage increases stored in static arrays.
// $Id: awincnf.cpp 1.69 2016/06/27 07:23:22EDT 277133 Development $
// $Id: awincnf.cpp 1.71 2016/12/07 08:09:02EST 277133 Development $
#include "AwincNonFile.h"
#include "avgwg.h"
@@ -12,7 +12,7 @@
using namespace std;
// <remarks>Historical average wage increases, 1978-2014.
// <remarks>Historical average wage increases, 1978-2015.
// When updating in November, add a value to this array.</remarks>
const double AwincNonFile::awincHist[] = {
7.941048, 8.747891, 9.007392,
@@ -22,36 +22,36 @@ const double AwincNonFile::awincHist[] = {
4.890539, 5.835092, 5.233866, 5.572834, 5.529993,
2.385645, 1.002888, 2.444538, 4.648767, 3.659027,
4.596306, 4.538179, 2.300406, -1.508069, 2.363503,
3.133333, 3.122550, 1.278133, 3.549622
3.133333, 3.122550, 1.278133, 3.549622, 3.479039
};
// <remarks>Titles for 2016 Trustees Report.</remarks>
const std::string AwincNonFile::titletrOriginal[NUMASSUMSETS] = {
"2016 Trustees Report Alternative I",
"2016 Trustees Report Alternative II",
"2016 Trustees Report Alternative III",
"No increase beyond 2014 average wage"
"2016 Trustees Report Alternative I, updated October 18, 2016",
"2016 Trustees Report Alternative II, updated October 18, 2016",
"2016 Trustees Report Alternative III, updated October 18, 2016",
"No increase beyond 2015 average wage"
};
// <remarks>Average wage increases for 2016 Trustees Report,
// years 2015-2030.</remarks>
// years 2016-2031.</remarks>
const double AwincNonFile::awincprojtrOriginal[NUMASSUMSETS][NUMPROJYEARS] = {
{ 2.704408,
3.580773, 6.101725, 6.071134, 5.557643, 5.287264,
{ 3.580773, 6.101725, 6.071134, 5.557643, 5.287264,
5.147282, 5.165863, 5.204950, 5.274017, 5.185926,
5.107681, 5.129653, 5.151053, 5.154164, 5.142885 },
{ 2.686401,
2.914549, 4.776114, 4.782813, 4.473994, 4.282417,
5.107681, 5.129653, 5.151053, 5.154164, 5.142885,
5.139617 },
{ 2.914549, 4.776114, 4.782813, 4.473994, 4.282417,
4.226616, 4.078830, 3.987342, 4.036722, 3.939641,
3.862607, 3.881659, 3.901889, 3.906024, 3.897387 },
{ 2.592944,
1.283836, 2.525188, 3.833063, 3.674156, 3.408914,
3.862607, 3.881659, 3.901889, 3.906024, 3.897387,
3.896377 },
{ 1.283836, 2.525188, 3.833063, 3.674156, 3.408914,
3.357910, 3.236268, 3.124667, 3.078889, 2.875574,
2.651464, 2.634866, 2.658625, 2.663887, 2.658010 },
{ 0.0,
2.651464, 2.634866, 2.658625, 2.663887, 2.658010,
2.659553 },
{ 0.0, 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0 }
0.0 }
};
// <summary>Ultimate average wage increases for 2016 Trustees Report.</summary>
@@ -68,8 +68,8 @@ AwincNonFile::AwincNonFile( int newIstart, int newMaxyear ) :
AwincDoc(newIstart, newMaxyear)
{
// Set last year of projected average wage increases, inclusive of
// TR_YEAR - 1.
const int LASTYEAR = BaseYearNonFile::TR_YEAR + NUMPROJYEARS - 2;
// YEAR - 1.
const int LASTYEAR = BaseYearNonFile::YEAR + NUMPROJYEARS - 2;
// ensure bounds are great enough to hold data</summary>
const int YEAR78 = YEAR79 - 1;
const int yr1 = min(YEAR78, newIstart);
@@ -107,8 +107,8 @@ void AwincNonFile::read( int altNum )
try {
// set title
titletr[altNum - 1] = titletrOriginal[altNum - 1];
// Set last year of projected average wage increases, inclusive of
const int LASTYEAR = BaseYearNonFile::TR_YEAR + NUMPROJYEARS - 2;
// Set last year of projected average wage increases, inclusive of YEAR
const int LASTYEAR = BaseYearNonFile::YEAR + NUMPROJYEARS - 2;
// set values in short-range
DoubleAnnual& temp = *awincprojtr[altNum - 1];
for (int year = BaseYearNonFile::YEAR - 1; year <= LASTYEAR; year++) {
@@ -1,7 +1,7 @@
// Functions for the <see cref="BiprojNonFile"/> class to manage projected
// benefit increases stored in arrays.
//
// $Id: biprojnf.cpp 1.71 2016/06/27 07:23:55EDT 277133 Development $
// $Id: biprojnf.cpp 1.73 2016/12/07 08:09:02EST 277133 Development $
#include "BiprojNonFile.h"
#include "Resource.h"
@@ -15,26 +15,30 @@ using namespace std;
// <summary>Titles for 2016 Trustees Report</summary>
const string BiprojNonFile::titletrOriginal[NUMASSUMSETS] = {
"2016 Trustees Report Alternative I",
"2016 Trustees Report Alternative II",
"2016 Trustees Report Alternative III",
"No increase beginning with 2016 benefit increase"
"2016 Trustees Report Alternative I, updated October 18, 2016",
"2016 Trustees Report Alternative II, updated October 18, 2016",
"2016 Trustees Report Alternative III, updated October 18, 2016",
"No increase beginning with 2017 benefit increase"
};
// <remarks>Benefit increases for 2016 Trustees Report, 2016 to 2030</remarks>
// <remarks>Benefit increases for 2016 Trustees Report, 2017 to 2031</remarks>
const double BiprojNonFile::biprojtrOriginal[NUMASSUMSETS][NUMPROJYEARS] = {
{ 0.7, 3.7, 3.2, 3.2, 3.2,
{ 3.7, 3.2, 3.2, 3.2,
3.2, 3.2, 3.2, 3.2, 3.2,
3.2, 3.2, 3.2, 3.2, 3.2 },
{ 0.2, 2.9, 2.6, 2.6, 2.6,
3.2, 3.2, 3.2, 3.2, 3.2,
3.2 },
{ 2.9, 2.6, 2.6, 2.6,
2.6, 2.6, 2.6, 2.6, 2.6,
2.6, 2.6, 2.6, 2.6, 2.6 },
{ 0.0, 1.9, 2.1, 2.0, 2.0,
2.6, 2.6, 2.6, 2.6, 2.6,
2.6 },
{ 1.9, 2.1, 2.0, 2.0,
2.0, 2.0, 2.0, 2.0, 2.0,
2.0, 2.0, 2.0, 2.0, 2.0 },
{ 0.0, 0.0, 0.0, 0.0, 0.0,
2.0, 2.0, 2.0, 2.0, 2.0,
2.0 },
{ 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0 }
0.0, 0.0, 0.0, 0.0, 0.0,
0.0 }
};
// <remarks>Ultimate benefit increases for 2016 Trustees Report.</remarks>
@@ -52,8 +56,8 @@ const double BiprojNonFile::biult[NUMASSUMSETS] = {
BiprojNonFile::BiprojNonFile( int newIstart, int newMaxyear ) :
Biproj(newIstart, newMaxyear)
{
// Set last year of projected benefit increases, inclusive of TR_YEAR.
const int LASTYEAR = BaseYearNonFile::TR_YEAR + NUMPROJYEARS - 1;
// Set last year of projected benefit increases, inclusive of YEAR.
const int LASTYEAR = BaseYearNonFile::YEAR + NUMPROJYEARS - 1;
// ensure bounds are great enough to hold data
const int i1 = min(YEAR79, newIstart);
const int i2 = max(LASTYEAR, newMaxyear);
@@ -87,8 +91,8 @@ void BiprojNonFile::read( int altNum )
try {
// set title
titletr[altNum - 1] = titletrOriginal[altNum - 1];
// Set last year of projected benefit increases, inclusive of TR_YEAR.
const int LASTYEAR = BaseYearNonFile::TR_YEAR + NUMPROJYEARS - 1;
// Set last year of projected benefit increases, inclusive of YEAR.
const int LASTYEAR = BaseYearNonFile::YEAR + NUMPROJYEARS - 1;
// set values in short-range
DoubleAnnual& temp = *biprojtr[altNum - 1];
for (int year = BaseYearNonFile::YEAR; year <= LASTYEAR; year++) {
@@ -1,7 +1,7 @@
// Functions for the <see cref="RtGeneral"/> class - parent of classes to
// manage one retirement test projection.
// $Id: rtgenrl.cpp 1.48 2016/01/11 08:51:04EST 277133 Development $
// $Id: rtgenrl.cpp 1.49 2016/10/24 08:14:49EDT 277133 Development $
#include "rtgenrl.h"
#include "Resource.h"
@@ -11,7 +11,7 @@
using namespace std;
// <summary>The age 62 monthly exempt amounts, 1951-2016.</summary>
// <summary>The age 62 monthly exempt amounts, 1951-2017.</summary>
const double Rtea62m::theAmts[] = {
50.0, 50.0, 75.0, 75.0, 80.0, // 1951-1955
80.0, 80.0, 80.0, 100.0, 100.0, // 1956-1960
@@ -26,9 +26,9 @@ const double Rtea62m::theAmts[] = {
890.0, 940.0, 960.0, 970.0, 1000.0, // 2001-2005
1040.0, 1080.0, 1130.0, 1180.0, 1180.0, // 2006-2010
1180.0, 1220.0, 1260.0, 1290.0, 1310.0, // 2011-2015
1310.0 // 2016
1310.0, 1410.0 // 2016-2017
};
// <summary>The age 65 monthly exempt amounts, 1951-2016.</summary>
// <summary>The age 65 monthly exempt amounts, 1951-2017.</summary>
const double Rtea65m::theAmts[] = {
50.0, 50.0, 75.0, 75.0, 80.0, // 1951-1955
80.0, 80.0, 80.0, 100.0, 100.0, // 1956-1960
@@ -43,7 +43,7 @@ const double Rtea65m::theAmts[] = {
2083.33333, 2500.0, 2560.0, 2590.0, 2650.0, // 2001-2005
2770.0, 2870.0, 3010.0, 3140.0, 3140.0, // 2006-2010
3140.0, 3240.0, 3340.0, 3450.0, 3490.0, // 2011-2015
3490.0 // 2016
3490.0, 3740.0 // 2016-2017
};
// <summary>Exempt amounts, 1961-1972.</summary>

0 comments on commit 888f764

Please sign in to comment.