Skip to content

Commit 888f764

Browse files
committed
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.
1 parent dae1424 commit 888f764

File tree

7 files changed

+70
-63
lines changed

7 files changed

+70
-63
lines changed
0 Bytes
Binary file not shown.

oactobjs/BaseYearNonFile.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Declarations for the <see cref="BaseYearNonFile"/> class to manage the
22
// computation year stored internally.
33
//
4-
// $Id: BaseYearNonFile.h 1.38 2016/06/27 07:24:16EDT 277133 Development $
4+
// $Id: BaseYearNonFile.h 1.39 2016/10/24 08:11:25EDT 277133 Development $
55

66
#pragma once
77

@@ -14,7 +14,7 @@
1414
/// <summary>Manages the computation year for a pia program where it is
1515
/// stored with the code.</summary>
1616
///
17-
/// <remarks>Currently <see cref="YEAR"/> is 2016 and <see cref="TR_YEAR"/>
17+
/// <remarks>Currently <see cref="YEAR"/> is 2017 and <see cref="TR_YEAR"/>
1818
/// is 2016. See <see cref="BaseYearFile"/> for a class where the computation
1919
/// year is stored on disk.</remarks>
2020
///
@@ -24,10 +24,10 @@ class BaseYearNonFile : public BaseYear
2424
public:
2525
/// <summary>Year for which data has been stored.</summary>
2626
///
27-
/// <remarks>The value of 2016 means that the December 2015 benefit increase,
28-
/// 2014 average wage, and 2016 wage base are available. This is updated in
27+
/// <remarks>The value of 2017 means that the December 2016 benefit increase,
28+
/// 2015 average wage, and 2017 wage base are available. This is updated in
2929
/// October after the annual automatic adjustment announcement.</remarks>
30-
static const int YEAR = 2016;
30+
static const int YEAR = 2017;
3131
/// <summary>Year of Trustees Report assumptions.</summary>
3232
///
3333
/// <remarks>This is updated when the TR is released, so it is equal to

oactobjs/oactcnst.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Constants used in the various Oact C++ programs and utilities.
22
//
3-
// $Id: oactcnst.h 1.18 2015/07/30 11:47:28EDT 729915 Development $
3+
// $Id: oactcnst.h 1.19 2016/10/24 08:09:48EDT 277133 Development $
44

55
#pragma once
66

@@ -71,6 +71,9 @@ const int YEAR2085 = 2085;
7171
// <summary>Last possible year of projection.</summary>
7272
const int YEAR2090 = 2090;
7373

74+
// <summary>Last possible year of projection.</summary>
75+
const int YEAR2095 = 2095;
76+
7477
// <summary>Last possible year of projection.</summary>
7578
const int YEAR2100 = 2100;
7679

oactobjs/piadataproj/awbidtnf.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Functions of the <see cref="AwbiDataNonFile"/> class to manage historical
22
// Social Security parameters stored with the code.
33
//
4-
// $Id: awbidtnf.cpp 1.45 2016/01/11 08:51:04EST 277133 Development $
4+
// $Id: awbidtnf.cpp 1.46 2016/10/24 08:14:48EDT 277133 Development $
55

66
#include "AwbiDataNonFile.h"
77
#include "PiaException.h"
@@ -10,18 +10,18 @@
1010

1111
using namespace std;
1212

13-
// <summary>Benefit increases, 1951-2015.</summary>
13+
// <summary>Benefit increases, 1951-2016.</summary>
1414
const double AwbiDataNonFile::cpiincData[] = {
1515
0.0, 12.5, 0.0, 13.0, 0.0, 0.0, 0.0, 0.0, 7.0, 0.0,
1616
0.0, 0.0, 0.0, 0.0, 7.0, 0.0, 0.0, 13.0, 0.0, 15.0,
1717
10.0, 20.0, 0.0, 11.0, 8.0, 6.4, 5.9, 6.5, 9.9, 14.3,
1818
11.2, 7.4, 3.5, 3.5, 3.1, 1.3, 4.2, 4.0, 4.7, 5.4,
1919
3.7, 3.0, 2.6, 2.8, 2.6, 2.9, 2.1, 1.3, 2.4, 3.5,
2020
2.6, 1.4, 2.1, 2.7, 4.1, 3.3, 2.3, 5.8, 0.0, 0.0,
21-
3.6, 1.7, 1.5, 1.7, 0.0
21+
3.6, 1.7, 1.5, 1.7, 0.0, 0.3
2222
};
2323

24-
// <summary>Average wage index, 1937-2014.</summary>
24+
// <summary>Average wage index, 1937-2017.</summary>
2525
const double AwbiDataNonFile::fqData[] = {
2626
1137.96, 1053.24, 1142.36, 1195.00,
2727
1276.04, 1454.28, 1713.52, 1936.32, 2021.40,
@@ -38,10 +38,10 @@ const double AwbiDataNonFile::fqData[] = {
3838
25913.90, 27426.00, 28861.44, 30469.84, 32154.82,
3939
32921.92, 33252.09, 34064.95, 35648.55, 36952.94,
4040
38651.41, 40405.48, 41334.97, 40711.61, 41673.83,
41-
42979.61, 44321.67, 44888.16, 46481.52
41+
42979.61, 44321.67, 44888.16, 46481.52, 48098.63
4242
};
4343

44-
// <summary>OASDI taxable maximum, 1937-2016.</summary>
44+
// <summary>OASDI taxable maximum, 1937-2017.</summary>
4545
const double AwbiDataNonFile::baseOasdiData[] = {
4646
3000.00, 3000.00, 3000.00, 3000.00,
4747
3000.00, 3000.00, 3000.00, 3000.00, 3000.00,
@@ -59,20 +59,20 @@ const double AwbiDataNonFile::baseOasdiData[] = {
5959
80400.00, 84900.00, 87000.00, 87900.00, 90000.00,
6060
94200.00, 97500.00, 102000.00, 106800.00, 106800.00,
6161
106800.00, 110100.00, 113700.00, 117000.00, 118500.00,
62-
118500.00
62+
118500.00, 127200.00
6363
};
6464

65-
// <summary>HI taxable maximum, 1991-2016.</summary>
65+
// <summary>HI taxable maximum, 1991-2017.</summary>
6666
const double AwbiDataNonFile::baseHiData[] = {
6767
125000.00, 130200.00, 135000.00, MAXEARN, MAXEARN,
6868
MAXEARN, MAXEARN, MAXEARN, MAXEARN, MAXEARN,
6969
MAXEARN, MAXEARN, MAXEARN, MAXEARN, MAXEARN,
7070
MAXEARN, MAXEARN, MAXEARN, MAXEARN, MAXEARN,
7171
MAXEARN, MAXEARN, MAXEARN, MAXEARN, MAXEARN,
72-
MAXEARN
72+
MAXEARN, MAXEARN
7373
};
7474

75-
// <summary>Old-law taxable maximum, 1937-2016.</summary>
75+
// <summary>Old-law taxable maximum, 1937-2017.</summary>
7676
const double AwbiDataNonFile::base77Data[] = {
7777
3000.00, 3000.00, 3000.00, 3000.00,
7878
3000.00, 3000.00, 3000.00, 3000.00, 3000.00,
@@ -90,7 +90,7 @@ const double AwbiDataNonFile::base77Data[] = {
9090
59700.00, 63000.00, 64500.00, 65100.00, 66900.00,
9191
69900.00, 72600.00, 75900.00, 79200.00, 79200.00,
9292
79200.00, 81900.00, 84300.00, 87000.00, 88200.00,
93-
88200.00
93+
88200.00, 94500.00
9494
};
9595

9696
/// <summary>Initializes historical parameters info, where the last year of

oactobjs/piadataproj/awincnf.cpp

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Functions for the <see cref="AwincNonFile"/> class to manage average
22
// wage increases stored in static arrays.
33

4-
// $Id: awincnf.cpp 1.69 2016/06/27 07:23:22EDT 277133 Development $
4+
// $Id: awincnf.cpp 1.71 2016/12/07 08:09:02EST 277133 Development $
55

66
#include "AwincNonFile.h"
77
#include "avgwg.h"
@@ -12,7 +12,7 @@
1212

1313
using namespace std;
1414

15-
// <remarks>Historical average wage increases, 1978-2014.
15+
// <remarks>Historical average wage increases, 1978-2015.
1616
// When updating in November, add a value to this array.</remarks>
1717
const double AwincNonFile::awincHist[] = {
1818
7.941048, 8.747891, 9.007392,
@@ -22,36 +22,36 @@ const double AwincNonFile::awincHist[] = {
2222
4.890539, 5.835092, 5.233866, 5.572834, 5.529993,
2323
2.385645, 1.002888, 2.444538, 4.648767, 3.659027,
2424
4.596306, 4.538179, 2.300406, -1.508069, 2.363503,
25-
3.133333, 3.122550, 1.278133, 3.549622
25+
3.133333, 3.122550, 1.278133, 3.549622, 3.479039
2626
};
2727

2828
// <remarks>Titles for 2016 Trustees Report.</remarks>
2929
const std::string AwincNonFile::titletrOriginal[NUMASSUMSETS] = {
30-
"2016 Trustees Report Alternative I",
31-
"2016 Trustees Report Alternative II",
32-
"2016 Trustees Report Alternative III",
33-
"No increase beyond 2014 average wage"
30+
"2016 Trustees Report Alternative I, updated October 18, 2016",
31+
"2016 Trustees Report Alternative II, updated October 18, 2016",
32+
"2016 Trustees Report Alternative III, updated October 18, 2016",
33+
"No increase beyond 2015 average wage"
3434
};
3535

3636
// <remarks>Average wage increases for 2016 Trustees Report,
37-
// years 2015-2030.</remarks>
37+
// years 2016-2031.</remarks>
3838
const double AwincNonFile::awincprojtrOriginal[NUMASSUMSETS][NUMPROJYEARS] = {
39-
{ 2.704408,
40-
3.580773, 6.101725, 6.071134, 5.557643, 5.287264,
39+
{ 3.580773, 6.101725, 6.071134, 5.557643, 5.287264,
4140
5.147282, 5.165863, 5.204950, 5.274017, 5.185926,
42-
5.107681, 5.129653, 5.151053, 5.154164, 5.142885 },
43-
{ 2.686401,
44-
2.914549, 4.776114, 4.782813, 4.473994, 4.282417,
41+
5.107681, 5.129653, 5.151053, 5.154164, 5.142885,
42+
5.139617 },
43+
{ 2.914549, 4.776114, 4.782813, 4.473994, 4.282417,
4544
4.226616, 4.078830, 3.987342, 4.036722, 3.939641,
46-
3.862607, 3.881659, 3.901889, 3.906024, 3.897387 },
47-
{ 2.592944,
48-
1.283836, 2.525188, 3.833063, 3.674156, 3.408914,
45+
3.862607, 3.881659, 3.901889, 3.906024, 3.897387,
46+
3.896377 },
47+
{ 1.283836, 2.525188, 3.833063, 3.674156, 3.408914,
4948
3.357910, 3.236268, 3.124667, 3.078889, 2.875574,
50-
2.651464, 2.634866, 2.658625, 2.663887, 2.658010 },
51-
{ 0.0,
49+
2.651464, 2.634866, 2.658625, 2.663887, 2.658010,
50+
2.659553 },
51+
{ 0.0, 0.0, 0.0, 0.0, 0.0,
5252
0.0, 0.0, 0.0, 0.0, 0.0,
5353
0.0, 0.0, 0.0, 0.0, 0.0,
54-
0.0, 0.0, 0.0, 0.0, 0.0 }
54+
0.0 }
5555
};
5656

5757
// <summary>Ultimate average wage increases for 2016 Trustees Report.</summary>
@@ -68,8 +68,8 @@ AwincNonFile::AwincNonFile( int newIstart, int newMaxyear ) :
6868
AwincDoc(newIstart, newMaxyear)
6969
{
7070
// Set last year of projected average wage increases, inclusive of
71-
// TR_YEAR - 1.
72-
const int LASTYEAR = BaseYearNonFile::TR_YEAR + NUMPROJYEARS - 2;
71+
// YEAR - 1.
72+
const int LASTYEAR = BaseYearNonFile::YEAR + NUMPROJYEARS - 2;
7373
// ensure bounds are great enough to hold data</summary>
7474
const int YEAR78 = YEAR79 - 1;
7575
const int yr1 = min(YEAR78, newIstart);
@@ -107,8 +107,8 @@ void AwincNonFile::read( int altNum )
107107
try {
108108
// set title
109109
titletr[altNum - 1] = titletrOriginal[altNum - 1];
110-
// Set last year of projected average wage increases, inclusive of
111-
const int LASTYEAR = BaseYearNonFile::TR_YEAR + NUMPROJYEARS - 2;
110+
// Set last year of projected average wage increases, inclusive of YEAR
111+
const int LASTYEAR = BaseYearNonFile::YEAR + NUMPROJYEARS - 2;
112112
// set values in short-range
113113
DoubleAnnual& temp = *awincprojtr[altNum - 1];
114114
for (int year = BaseYearNonFile::YEAR - 1; year <= LASTYEAR; year++) {

oactobjs/piadataproj/biprojnf.cpp

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Functions for the <see cref="BiprojNonFile"/> class to manage projected
22
// benefit increases stored in arrays.
33
//
4-
// $Id: biprojnf.cpp 1.71 2016/06/27 07:23:55EDT 277133 Development $
4+
// $Id: biprojnf.cpp 1.73 2016/12/07 08:09:02EST 277133 Development $
55

66
#include "BiprojNonFile.h"
77
#include "Resource.h"
@@ -15,26 +15,30 @@ using namespace std;
1515

1616
// <summary>Titles for 2016 Trustees Report</summary>
1717
const string BiprojNonFile::titletrOriginal[NUMASSUMSETS] = {
18-
"2016 Trustees Report Alternative I",
19-
"2016 Trustees Report Alternative II",
20-
"2016 Trustees Report Alternative III",
21-
"No increase beginning with 2016 benefit increase"
18+
"2016 Trustees Report Alternative I, updated October 18, 2016",
19+
"2016 Trustees Report Alternative II, updated October 18, 2016",
20+
"2016 Trustees Report Alternative III, updated October 18, 2016",
21+
"No increase beginning with 2017 benefit increase"
2222
};
2323

24-
// <remarks>Benefit increases for 2016 Trustees Report, 2016 to 2030</remarks>
24+
// <remarks>Benefit increases for 2016 Trustees Report, 2017 to 2031</remarks>
2525
const double BiprojNonFile::biprojtrOriginal[NUMASSUMSETS][NUMPROJYEARS] = {
26-
{ 0.7, 3.7, 3.2, 3.2, 3.2,
26+
{ 3.7, 3.2, 3.2, 3.2,
2727
3.2, 3.2, 3.2, 3.2, 3.2,
28-
3.2, 3.2, 3.2, 3.2, 3.2 },
29-
{ 0.2, 2.9, 2.6, 2.6, 2.6,
28+
3.2, 3.2, 3.2, 3.2, 3.2,
29+
3.2 },
30+
{ 2.9, 2.6, 2.6, 2.6,
3031
2.6, 2.6, 2.6, 2.6, 2.6,
31-
2.6, 2.6, 2.6, 2.6, 2.6 },
32-
{ 0.0, 1.9, 2.1, 2.0, 2.0,
32+
2.6, 2.6, 2.6, 2.6, 2.6,
33+
2.6 },
34+
{ 1.9, 2.1, 2.0, 2.0,
3335
2.0, 2.0, 2.0, 2.0, 2.0,
34-
2.0, 2.0, 2.0, 2.0, 2.0 },
35-
{ 0.0, 0.0, 0.0, 0.0, 0.0,
36+
2.0, 2.0, 2.0, 2.0, 2.0,
37+
2.0 },
38+
{ 0.0, 0.0, 0.0, 0.0,
3639
0.0, 0.0, 0.0, 0.0, 0.0,
37-
0.0, 0.0, 0.0, 0.0, 0.0 }
40+
0.0, 0.0, 0.0, 0.0, 0.0,
41+
0.0 }
3842
};
3943

4044
// <remarks>Ultimate benefit increases for 2016 Trustees Report.</remarks>
@@ -52,8 +56,8 @@ const double BiprojNonFile::biult[NUMASSUMSETS] = {
5256
BiprojNonFile::BiprojNonFile( int newIstart, int newMaxyear ) :
5357
Biproj(newIstart, newMaxyear)
5458
{
55-
// Set last year of projected benefit increases, inclusive of TR_YEAR.
56-
const int LASTYEAR = BaseYearNonFile::TR_YEAR + NUMPROJYEARS - 1;
59+
// Set last year of projected benefit increases, inclusive of YEAR.
60+
const int LASTYEAR = BaseYearNonFile::YEAR + NUMPROJYEARS - 1;
5761
// ensure bounds are great enough to hold data
5862
const int i1 = min(YEAR79, newIstart);
5963
const int i2 = max(LASTYEAR, newMaxyear);
@@ -87,8 +91,8 @@ void BiprojNonFile::read( int altNum )
8791
try {
8892
// set title
8993
titletr[altNum - 1] = titletrOriginal[altNum - 1];
90-
// Set last year of projected benefit increases, inclusive of TR_YEAR.
91-
const int LASTYEAR = BaseYearNonFile::TR_YEAR + NUMPROJYEARS - 1;
94+
// Set last year of projected benefit increases, inclusive of YEAR.
95+
const int LASTYEAR = BaseYearNonFile::YEAR + NUMPROJYEARS - 1;
9296
// set values in short-range
9397
DoubleAnnual& temp = *biprojtr[altNum - 1];
9498
for (int year = BaseYearNonFile::YEAR; year <= LASTYEAR; year++) {

oactobjs/piadataproj/rtgenrl.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Functions for the <see cref="RtGeneral"/> class - parent of classes to
22
// manage one retirement test projection.
33

4-
// $Id: rtgenrl.cpp 1.48 2016/01/11 08:51:04EST 277133 Development $
4+
// $Id: rtgenrl.cpp 1.49 2016/10/24 08:14:49EDT 277133 Development $
55

66
#include "rtgenrl.h"
77
#include "Resource.h"
@@ -11,7 +11,7 @@
1111

1212
using namespace std;
1313

14-
// <summary>The age 62 monthly exempt amounts, 1951-2016.</summary>
14+
// <summary>The age 62 monthly exempt amounts, 1951-2017.</summary>
1515
const double Rtea62m::theAmts[] = {
1616
50.0, 50.0, 75.0, 75.0, 80.0, // 1951-1955
1717
80.0, 80.0, 80.0, 100.0, 100.0, // 1956-1960
@@ -26,9 +26,9 @@ const double Rtea62m::theAmts[] = {
2626
890.0, 940.0, 960.0, 970.0, 1000.0, // 2001-2005
2727
1040.0, 1080.0, 1130.0, 1180.0, 1180.0, // 2006-2010
2828
1180.0, 1220.0, 1260.0, 1290.0, 1310.0, // 2011-2015
29-
1310.0 // 2016
29+
1310.0, 1410.0 // 2016-2017
3030
};
31-
// <summary>The age 65 monthly exempt amounts, 1951-2016.</summary>
31+
// <summary>The age 65 monthly exempt amounts, 1951-2017.</summary>
3232
const double Rtea65m::theAmts[] = {
3333
50.0, 50.0, 75.0, 75.0, 80.0, // 1951-1955
3434
80.0, 80.0, 80.0, 100.0, 100.0, // 1956-1960
@@ -43,7 +43,7 @@ const double Rtea65m::theAmts[] = {
4343
2083.33333, 2500.0, 2560.0, 2590.0, 2650.0, // 2001-2005
4444
2770.0, 2870.0, 3010.0, 3140.0, 3140.0, // 2006-2010
4545
3140.0, 3240.0, 3340.0, 3450.0, 3490.0, // 2011-2015
46-
3490.0 // 2016
46+
3490.0, 3740.0 // 2016-2017
4747
};
4848

4949
// <summary>Exempt amounts, 1961-1972.</summary>

0 commit comments

Comments
 (0)