From 7563bee19c11255a66cc257e8d7991ff9cef73b2 Mon Sep 17 00:00:00 2001 From: Brendan Shanks Date: Mon, 7 Dec 2020 21:41:55 -0800 Subject: [PATCH] Update to version 2021.1 Changes in 2021.1 from SSA: It updates the economic data with the new automatic adjustments announced on October 13, 2020. --- anypia32/Anypia32.rc | 2 +- oactobjs32/include/BaseYearNonFile.h | 14 ++++---- oactobjs32/include/oactcnst.h | 6 ++-- oactobjs32/piadata/awbidtnf.cpp | 25 +++++++------ oactobjs32/piadata/awincnf.cpp | 53 ++++++++++++++-------------- oactobjs32/piadata/biprojnf.cpp | 44 +++++++++++------------ oactobjs32/piadata/rtgenrl.cpp | 12 ++++--- 7 files changed, 79 insertions(+), 77 deletions(-) diff --git a/anypia32/Anypia32.rc b/anypia32/Anypia32.rc index 7afbeef..bd5b550 100644 --- a/anypia32/Anypia32.rc +++ b/anypia32/Anypia32.rc @@ -236,7 +236,7 @@ FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20 LTEXT "Anypia Social Security Benefit",IDC_STATIC,40,10,119,8,SS_NOPREFIX - LTEXT "Calculator, version 2020.1",IDC_STATIC,40,25,119,8 + LTEXT "Calculator, version 2021.1",IDC_STATIC,40,25,119,8 DEFPUSHBUTTON "OK",IDOK,178,7,32,14,WS_GROUP END diff --git a/oactobjs32/include/BaseYearNonFile.h b/oactobjs32/include/BaseYearNonFile.h index da48bef..314621b 100644 --- a/oactobjs32/include/BaseYearNonFile.h +++ b/oactobjs32/include/BaseYearNonFile.h @@ -1,7 +1,7 @@ // Declarations for the class to manage the // computation year stored internally. // -// $Id: BaseYearNonFile.h 1.45 2019/10/28 10:27:10EDT 277133 Development $ +// $Id: BaseYearNonFile.h 1.48 2020/11/16 09:21:27EST 277133 Development $ #pragma once @@ -14,8 +14,8 @@ /// Manages the computation year for a pia program where it is /// stored with the code. /// -/// Currently is 2020 and -/// is 2019. See for a class where the computation +/// Currently is 2021 and +/// is 2020. See for a class where the computation /// year is stored on disk. /// /// @@ -24,16 +24,16 @@ class BaseYearNonFile : public BaseYear public: /// Year for which data has been stored. /// - /// The value of 2020 means that the December 2019 benefit increase, - /// 2018 average wage, and 2020 wage base are available. This is updated in + /// The value of 2021 means that the December 2020 benefit increase, + /// 2019 average wage, and 2021 wage base are available. This is updated in /// October after the annual automatic adjustment announcement. - static const int YEAR = 2020; + static const int YEAR = 2021; /// Year of Trustees Report assumptions. /// /// This is updated when the TR is released, so it is equal to /// from the TR date to the COLA update, and 1 less than /// from the COLA update to the TR date. - static const int TR_YEAR = 2019; + static const int TR_YEAR = 2020; public: BaseYearNonFile(); void read(); diff --git a/oactobjs32/include/oactcnst.h b/oactobjs32/include/oactcnst.h index c9a64e6..2dd89ff 100644 --- a/oactobjs32/include/oactcnst.h +++ b/oactobjs32/include/oactcnst.h @@ -1,6 +1,6 @@ // Constants used in the various Oact C++ programs and utilities. // -// $Id: oactcnst.h 1.19 2016/10/24 08:09:48EDT 277133 Development $ +// $Id: oactcnst.h 1.20 2020/08/21 09:53:00EDT 729915 Development $ #pragma once @@ -9,13 +9,13 @@ // // When using 57, data runs from January 1, 1975 through January 1, // 2031. -const int MAXYRSR = 57; +const int MAXYRSR = 62; // Number of years of data in trust fund projections, during-year // basis. // // When using 56, data runs from 1975 through 2030. -const int MAXYRSR1 = 56; +const int MAXYRSR1 = 61; // Base year for trust fund projection arrays on January 1 basis. // diff --git a/oactobjs32/piadata/awbidtnf.cpp b/oactobjs32/piadata/awbidtnf.cpp index dc20705..6e9c37a 100644 --- a/oactobjs32/piadata/awbidtnf.cpp +++ b/oactobjs32/piadata/awbidtnf.cpp @@ -1,7 +1,7 @@ // Functions of the class to manage historical // Social Security parameters stored with the code. // -// $Id: awbidtnf.cpp 1.52 2019/10/28 10:27:09EDT 277133 Development $ +// $Id: awbidtnf.cpp 1.53 2020/11/16 07:38:31EST 277133 Development $ #include #include "AwbiDataNonFile.h" @@ -11,7 +11,7 @@ using namespace std; -// Benefit increases, 1951-2019. +// Benefit increases, 1951-2020. 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, @@ -19,10 +19,10 @@ const double AwbiDataNonFile::cpiincData[] = { 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, 0.3, 2.0, 2.8, 1.6 + 3.6, 1.7, 1.5, 1.7, 0.0, 0.3, 2.0, 2.8, 1.6, 1.3 }; -// Average wage index, 1937-2018. +// Average wage index, 1937-2019. const double AwbiDataNonFile::fqData[] = { 1137.96, 1053.24, 1142.36, 1195.00, 1276.04, 1454.28, 1713.52, 1936.32, 2021.40, @@ -40,10 +40,10 @@ const double AwbiDataNonFile::fqData[] = { 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, 48098.63, - 48642.15, 50321.89, 52145.80 + 48642.15, 50321.89, 52145.80, 54099.99 }; -// OASDI taxable maximum, 1937-2020. +// OASDI taxable maximum, 1937-2021. const double AwbiDataNonFile::baseOasdiData[] = { 3000.00, 3000.00, 3000.00, 3000.00, 3000.00, 3000.00, 3000.00, 3000.00, 3000.00, @@ -61,20 +61,22 @@ 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, 127200.00, 128400.00, 132900.00, 137700.00 + 118500.00, 127200.00, 128400.00, 132900.00, 137700.00, + 142800.00 }; -// HI taxable maximum, 1991-2020. +// HI taxable maximum, 1991-2021. 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, MAXEARN, MAXEARN + MAXEARN, MAXEARN, MAXEARN, MAXEARN, MAXEARN, + MAXEARN }; -// Old-law taxable maximum, 1937-2020. +// Old-law taxable maximum, 1937-2021. const double AwbiDataNonFile::base77Data[] = { 3000.00, 3000.00, 3000.00, 3000.00, 3000.00, 3000.00, 3000.00, 3000.00, 3000.00, @@ -92,7 +94,8 @@ 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, 94500.00, 95400.00, 98700.00, 102300.00 + 88200.00, 94500.00, 95400.00, 98700.00, 102300.00, + 106200.00 }; /// Initializes historical parameters info, where the last year of diff --git a/oactobjs32/piadata/awincnf.cpp b/oactobjs32/piadata/awincnf.cpp index 0eccb68..13ddb94 100644 --- a/oactobjs32/piadata/awincnf.cpp +++ b/oactobjs32/piadata/awincnf.cpp @@ -1,7 +1,7 @@ // Functions for the class to manage average // wage increases stored in static arrays. -// $Id: awincnf.cpp 1.80 2019/10/28 10:27:09EDT 277133 Development $ +// $Id: awincnf.cpp 1.82 2020/11/16 07:38:32EST 277133 Development $ #include #include "AwincNonFile.h" @@ -13,7 +13,7 @@ using namespace std; -// Historical average wage increases, 1978-2018. +// Historical average wage increases, 1978-2019. // When updating in November, add a value to this array. const double AwincNonFile::awincHist[] = { 7.941048, 8.747891, 9.007392, @@ -24,45 +24,46 @@ const double AwincNonFile::awincHist[] = { 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.479039, - 1.130011, 3.453260, 3.624486 + 1.130011, 3.453260, 3.624486, 3.747550 }; -// Titles for 2019 Trustees Report. +// Titles for 2020 Trustees Report. const std::string AwincNonFile::titletrOriginal[NUMASSUMSETS] = { - "2019 Trustees Report Alternative I, updated October 10, 2019", - "2019 Trustees Report Alternative II, updated October 10, 2019", - "2019 Trustees Report Alternative III, updated October 10, 2019", - "No increase beyond 2018 average wage" + "2020 Trustees Report Alternative I, updated October 13, 2020", + "2020 Trustees Report Alternative II, updated October 13, 2020", + "2020 Trustees Report Alternative III, updated October 13, 2020", + "No increase beyond 2019 average wage" }; -// Average wage increases for 2019 Trustees Report, -// years 2019-2034. +// Average wage increases for 2020 Trustees Report, +// years 2020-2035. const double AwincNonFile::awincprojtrOriginal[NUMASSUMSETS][NUMPROJYEARS] = { - { 5.298414, 6.486062, - 6.006771, 5.487863, 5.269438, 5.277379, 5.344453, - 5.413790, 5.454517, 5.255826, 5.156058, 5.136315, - 5.136581, 5.144837, 5.146247, 5.138725 + { 4.652374, + 5.781379, 5.585782, 5.001579, 4.991112, 5.007296, + 5.018997, 5.082249, 5.096352, 4.965271, 4.898298, + 4.885854, 4.890158, 4.891608, 4.886328, 4.873697 + }, - { 3.995741, 4.701923, - 4.464226, 4.219320, 4.102540, 4.153087, 4.206941, - 4.243923, 4.257490, 4.016227, 3.909493, 3.891128, - 3.892527, 3.901124, 3.902929, 3.898146 + { 3.507274, + 4.440019, 4.107419, 3.842257, 3.794323, 3.818574, + 3.845632, 3.890928, 3.884013, 3.721822, 3.653663, + 3.642269, 3.647516, 3.648761, 3.644047, 3.632875 }, - { 2.716296, 1.080982, - 2.794248, 3.551797, 3.513018, 3.481467, 3.366818, - 3.275859, 3.244652, 2.910991, 2.676726, 2.653469, - 2.657454, 2.666416, 2.669157, 2.665510 + { 1.640522, + 0.246941, 3.118055, 3.138405, 3.170950, 3.044229, + 3.022300, 3.020738, 2.893263, 2.605721, 2.423711, + 2.406852, 2.413564, 2.415318, 2.410942, 2.402296 }, - { 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, 0.0 } }; -// Ultimate average wage increases for 2019 Trustees Report. +// Ultimate average wage increases for 2020 Trustees Report. const double AwincNonFile::awincult[NUMASSUMSETS] = { - 5.0, 3.8, 2.6, 0.0 + 4.8, 3.5, 2.3, 0.0 }; /// Initializes projected average wage increase info with latest diff --git a/oactobjs32/piadata/biprojnf.cpp b/oactobjs32/piadata/biprojnf.cpp index 55b4dc1..b6642f8 100644 --- a/oactobjs32/piadata/biprojnf.cpp +++ b/oactobjs32/piadata/biprojnf.cpp @@ -1,7 +1,7 @@ // Functions for the class to manage projected // benefit increases stored in arrays. // -// $Id: biprojnf.cpp 1.81 2019/10/28 10:27:09EDT 277133 Development $ +// $Id: biprojnf.cpp 1.83 2020/11/16 07:38:32EST 277133 Development $ #include #include "BiprojNonFile.h" @@ -14,37 +14,33 @@ using namespace std; -// Titles for 2019 Trustees Report +// Titles for 2020 Trustees Report const string BiprojNonFile::titletrOriginal[NUMASSUMSETS] = { - "2019 Trustees Report Alternative I, updated October 10, 2019", - "2019 Trustees Report Alternative II, updated October 10, 2019", - "2019 Trustees Report Alternative III, updated October 10, 2019", - "No increase beginning with 2020 benefit increase" + "2020 Trustees Report Alternative I, updated October 13, 2020", + "2020 Trustees Report Alternative II, updated October 13, 2020", + "2020 Trustees Report Alternative III, updated October 13, 2020", + "No increase beginning with 2021 benefit increase" }; -// Benefit increases for 2019 Trustees Report, 2020 to 2034 +// Benefit increases for 2020 Trustees Report, 2021 to 2035 const double BiprojNonFile::biprojtrOriginal[NUMASSUMSETS][NUMPROJYEARS] = { - { 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, 3.2, 3.2 }, - { 2.7, - 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, 2.6 }, - { 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, 2.0, 2.1 }, - { 0.0, - 0.0, 0.0, 0.0, 0.0, 0.0, + { 2.9, 3.0, 3.0, 3.0, 3.0, + 3.0, 3.0, 3.0, 3.0, 3.0, + 3.0, 3.0, 3.0, 3.0, 3.0 }, + { 2.5, 2.4, 2.4, 2.4, 2.4, + 2.4, 2.4, 2.4, 2.4, 2.4, + 2.4, 2.4, 2.4, 2.4, 2.4 }, + { 1.5, 1.6, 1.8, 1.8, 1.8, + 1.8, 1.8, 1.8, 1.8, 1.8, + 1.8, 1.8, 1.8, 1.8, 1.8 }, + { 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 } }; -// Ultimate benefit increases for 2019 Trustees Report. +// Ultimate benefit increases for 2020 Trustees Report. const double BiprojNonFile::biult[NUMASSUMSETS] = { - 3.2, 2.6, 2.0, 0.0 + 3.0, 2.4, 1.8, 0.0 }; /// Initializes projected benefit increase info for latest Trustees diff --git a/oactobjs32/piadata/rtgenrl.cpp b/oactobjs32/piadata/rtgenrl.cpp index 98bce76..51fe788 100644 --- a/oactobjs32/piadata/rtgenrl.cpp +++ b/oactobjs32/piadata/rtgenrl.cpp @@ -1,7 +1,7 @@ // Functions for the class - parent of classes to // manage one retirement test projection. -// $Id: rtgenrl.cpp 1.52 2019/10/28 10:27:09EDT 277133 Development $ +// $Id: rtgenrl.cpp 1.53 2020/11/16 07:38:33EST 277133 Development $ #include "rtgenrl.h" #include "Resource.h" @@ -11,7 +11,7 @@ using namespace std; -// The age 62 monthly exempt amounts, 1951-2020. +// The age 62 monthly exempt amounts, 1951-2021. 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,10 @@ 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, 1410.0, 1420.0, 1470.0, 1520.0 // 2016-2020 + 1310.0, 1410.0, 1420.0, 1470.0, 1520.0, // 2016-2020 + 1580.0 // 2021 }; -// The age 65 monthly exempt amounts, 1951-2020. +// The age 65 monthly exempt amounts, 1951-2021. 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 +44,8 @@ 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, 3740.0, 3780.0, 3910.0, 4050.0 // 2016-2020 + 3490.0, 3740.0, 3780.0, 3910.0, 4050.0, // 2016-2020 + 4210.0 // 2021 }; // Exempt amounts, 1961-1972.