---- This module implements -- There are 150 cells in the GS Pay table. This LUA reduces the amount of-- manual input needed to 46--
local p = local stepOnePay = local GSOnePay = local GSTwoPay = local WIGIncrease =
-- UPDATE THESE. Last Update: 2024-- https://www.opm.gov/policy-data-oversight/pay-leave/salaries-wages/salary-tables/pdf/2024/GS.pdf --For GS [Grade] Step 1 pay stepOnePay[3] = 26975 stepOnePay[4] = 30280 stepOnePay[5] = 33878 stepOnePay[6] = 37765 stepOnePay[7] = 41966 stepOnePay[8] = 46475 stepOnePay[9] = 51332 stepOnePay[10] = 56528 stepOnePay[11] = 62107 stepOnePay[12] = 74441 stepOnePay[13] = 88520 stepOnePay[14] = 104604 stepOnePay[15] = 123041 -- Within Grade increase for GS [Grade] WIGIncrease[3] = 899 WIGIncrease[4] = 1009 WIGIncrease[5] = 1129 WIGIncrease[6] = 1259 WIGIncrease[7] = 1399 WIGIncrease[8] = 1549 WIGIncrease[9] = 1711 WIGIncrease[10] = 1884 WIGIncrease[11] = 2070 WIGIncrease[12] = 2481 WIGIncrease[13] = 2951 WIGIncrease[14] = 3487 WIGIncrease[15] = 4101 -- GS1 Pay Table (because it has inconsistent WIG) GSOnePay[1] = 21986 GSOnePay[2] = 22724 GSOnePay[3] = 23454 GSOnePay[4] = 24183 GSOnePay[5] = 24912 GSOnePay[6] = 25339 GSOnePay[7] = 26063 GSOnePay[8] = 26792 GSOnePay[9] = 26821 GSOnePay[10] = 27502 -- GS2 Pay Table (because it has inconsistent WIG} GSTwoPay[1] = 24722 GSTwoPay[2] = 25310 GSTwoPay[3] = 26129 GSTwoPay[4] = 26821 GSTwoPay[5] = 27124 GSTwoPay[6] = 27922 GSTwoPay[7] = 28720 GSTwoPay[8] = 29518 GSTwoPay[9] = 303164 GSTwoPay[10] = 31114
-- Base pay calculationfunction p.basePay(grade, step) -- For Step 1 pay for all grades if step
1 then -- Returns GS1 Step 1 return GSOnePay[1] else -- Returns GS2 Step 1 return GSTwoPay[1] end -- For grades where step is specified else if grade > 2 then -- Calculate GS [grade #], Step [step #] pay local pay = stepOnePay[grade] + (WIGIncrease[grade] * (step - 1)) return pay elseif grade
nil then if frame.args[2]