'Single', 20 => 'Married', Used to be: 10 => 'Single', 20 => 'Married - Spouse Works', 30 => 'Married - Spouse does not Work', 40 => 'Head of Household', */ var $district_income_tax_rate_options = [ //20200101 - No Change //20190101 - No Change 20180101 => [ 10 => [ [ 'income' => 8000, 'rate' => 2.05, 'constant' => 0 ], [ 'income' => 8700, 'rate' => 2.80, 'constant' => 164 ], [ 'income' => 15000, 'rate' => 3.25, 'constant' => 184 ], [ 'income' => 25000, 'rate' => 3.95, 'constant' => 388 ], [ 'income' => 60000, 'rate' => 4.15, 'constant' => 783 ], [ 'income' => 60000, 'rate' => 4.25, 'constant' => 2236 ], ], 20 => [ [ 'income' => 8000, 'rate' => 2.05, 'constant' => 0 ], [ 'income' => 8700, 'rate' => 2.80, 'constant' => 164 ], [ 'income' => 15000, 'rate' => 3.25, 'constant' => 184 ], [ 'income' => 25000, 'rate' => 3.95, 'constant' => 388 ], [ 'income' => 60000, 'rate' => 4.15, 'constant' => 783 ], [ 'income' => 60000, 'rate' => 4.25, 'constant' => 2236 ], ], ], 20170701 => [ 10 => [ [ 'income' => 8000, 'rate' => 2.25, 'constant' => 0 ], [ 'income' => 8700, 'rate' => 3.00, 'constant' => 180 ], [ 'income' => 15000, 'rate' => 3.45, 'constant' => 201 ], [ 'income' => 25000, 'rate' => 4.15, 'constant' => 418 ], [ 'income' => 60000, 'rate' => 4.35, 'constant' => 833 ], [ 'income' => 500000, 'rate' => 4.45, 'constant' => 2356 ], [ 'income' => 500000, 'rate' => 4.25, 'constant' => 20828 ], //Just the constant changed by the looks of it. ], 20 => [ [ 'income' => 8000, 'rate' => 2.25, 'constant' => 0 ], [ 'income' => 8700, 'rate' => 3.00, 'constant' => 180 ], [ 'income' => 15000, 'rate' => 3.45, 'constant' => 201 ], [ 'income' => 25000, 'rate' => 4.15, 'constant' => 418 ], [ 'income' => 60000, 'rate' => 4.35, 'constant' => 833 ], [ 'income' => 500000, 'rate' => 4.45, 'constant' => 2356 ], [ 'income' => 500000, 'rate' => 4.25, 'constant' => 20828 ], //Just the constant changed by the looks of it. ], ], 20160101 => [ 10 => [ [ 'income' => 8000, 'rate' => 1.9, 'constant' => 0 ], [ 'income' => 8700, 'rate' => 2.65, 'constant' => 152 ], [ 'income' => 15000, 'rate' => 3.1, 'constant' => 171 ], [ 'income' => 25000, 'rate' => 3.7, 'constant' => 366 ], [ 'income' => 60000, 'rate' => 3.9, 'constant' => 736 ], [ 'income' => 500000, 'rate' => 4.0, 'constant' => 2101 ], [ 'income' => 500000, 'rate' => 4.25, 'constant' => 20828.46 ], //Just the constant changed by the looks of it. ], 20 => [ [ 'income' => 8000, 'rate' => 1.9, 'constant' => 0 ], [ 'income' => 8700, 'rate' => 2.65, 'constant' => 152 ], [ 'income' => 15000, 'rate' => 3.1, 'constant' => 171 ], [ 'income' => 25000, 'rate' => 3.7, 'constant' => 366 ], [ 'income' => 60000, 'rate' => 3.9, 'constant' => 736 ], [ 'income' => 500000, 'rate' => 4.0, 'constant' => 2101 ], [ 'income' => 500000, 'rate' => 4.25, 'constant' => 20828.46 ], ], ], 20150601 => [ 10 => [ [ 'income' => 8000, 'rate' => 1.9, 'constant' => 0 ], [ 'income' => 8700, 'rate' => 2.65, 'constant' => 152 ], [ 'income' => 15000, 'rate' => 3.1, 'constant' => 171 ], [ 'income' => 25000, 'rate' => 3.7, 'constant' => 366 ], [ 'income' => 60000, 'rate' => 3.9, 'constant' => 736 ], [ 'income' => 500000, 'rate' => 4.0, 'constant' => 2101 ], [ 'income' => 500000, 'rate' => 4.25, 'constant' => 20834.16 ], ], 20 => [ [ 'income' => 8000, 'rate' => 1.9, 'constant' => 0 ], [ 'income' => 8700, 'rate' => 2.65, 'constant' => 152 ], [ 'income' => 15000, 'rate' => 3.1, 'constant' => 171 ], [ 'income' => 25000, 'rate' => 3.7, 'constant' => 366 ], [ 'income' => 60000, 'rate' => 3.9, 'constant' => 736 ], [ 'income' => 500000, 'rate' => 4.0, 'constant' => 2101 ], [ 'income' => 500000, 'rate' => 4.25, 'constant' => 20834.16 ], ], ], 20110101 => [ 10 => [ [ 'income' => 8000, 'rate' => 1.9, 'constant' => 0 ], [ 'income' => 8700, 'rate' => 2.65, 'constant' => 152 ], [ 'income' => 15000, 'rate' => 3.1, 'constant' => 171 ], [ 'income' => 25000, 'rate' => 3.7, 'constant' => 366 ], [ 'income' => 60000, 'rate' => 3.9, 'constant' => 736 ], [ 'income' => 500000, 'rate' => 4.0, 'constant' => 2101 ], [ 'income' => 500000, 'rate' => 4.25, 'constant' => 19701 ], ], 20 => [ [ 'income' => 8000, 'rate' => 1.9, 'constant' => 0 ], [ 'income' => 8700, 'rate' => 2.65, 'constant' => 152 ], [ 'income' => 15000, 'rate' => 3.1, 'constant' => 171 ], [ 'income' => 25000, 'rate' => 3.7, 'constant' => 366 ], [ 'income' => 60000, 'rate' => 3.9, 'constant' => 736 ], [ 'income' => 500000, 'rate' => 4.0, 'constant' => 2101 ], [ 'income' => 500000, 'rate' => 4.25, 'constant' => 19701 ], ], ], 20060101 => [ 10 => [ [ 'income' => 8000, 'rate' => 1.9, 'constant' => 0 ], [ 'income' => 8700, 'rate' => 2.65, 'constant' => 152 ], [ 'income' => 15000, 'rate' => 3.10, 'constant' => 172 ], [ 'income' => 25000, 'rate' => 3.70, 'constant' => 366 ], [ 'income' => 60000, 'rate' => 3.90, 'constant' => 736 ], [ 'income' => 60000, 'rate' => 4.00, 'constant' => 2101 ], ], 20 => [ [ 'income' => 8000, 'rate' => 1.9, 'constant' => 0 ], [ 'income' => 8700, 'rate' => 2.65, 'constant' => 152 ], [ 'income' => 15000, 'rate' => 3.10, 'constant' => 172 ], [ 'income' => 25000, 'rate' => 3.70, 'constant' => 366 ], [ 'income' => 60000, 'rate' => 3.90, 'constant' => 736 ], [ 'income' => 60000, 'rate' => 4.00, 'constant' => 2101 ], ], ], ]; var $district_options = [ 20060101 => [ 'standard_deduction' => [ '10' => 5000.00, '20' => 5500.00, '30' => 5500.00, '40' => 5000.00, ], 'allowance' => [ '10' => 1000, '20' => 1000, '30' => 1000, '40' => 1000, ], ], ]; function getDistrictAnnualTaxableIncome() { $annual_income = $this->getAnnualTaxableIncome(); $district_deductions = $this->getDistrictStandardDeduction(); $district_allowance = $this->getDistrictAllowanceAmount(); $income = bcsub( bcsub( $annual_income, $district_deductions ), $district_allowance ); Debug::text( 'District Annual Taxable Income: ' . $income, __FILE__, __LINE__, __METHOD__, 10 ); return $income; } function getDistrictStandardDeduction() { $retarr = $this->getDataFromRateArray( $this->getDate(), $this->district_options ); if ( $retarr == false ) { return false; } if ( isset( $retarr['standard_deduction'][$this->getDistrictFilingStatus()] ) ) { $deduction = $retarr['standard_deduction'][$this->getDistrictFilingStatus()]; } else { $deduction = $retarr['standard_deduction'][10]; } Debug::text( 'Standard Deduction: ' . $deduction, __FILE__, __LINE__, __METHOD__, 10 ); return $deduction; } function getDistrictAllowanceAmount() { $retarr = $this->getDataFromRateArray( $this->getDate(), $this->district_options ); if ( $retarr == false ) { return false; } if ( isset( $retarr['allowance'][$this->getDistrictFilingStatus()] ) ) { $allowance = $retarr['allowance'][$this->getDistrictFilingStatus()]; } else { $allowance = $retarr['allowance'][10]; } if ( $this->getDistrictAllowance() == 0 ) { $retval = 0; } else { $retval = bcmul( $this->getDistrictAllowance(), $allowance ); } Debug::text( 'District Allowance Amount: ' . $retval, __FILE__, __LINE__, __METHOD__, 10 ); return $retval; } function getDistrictTaxPayable() { $annual_income = $this->getDistrictAnnualTaxableIncome(); $retval = 0; if ( $annual_income > 0 ) { $rate = $this->getData()->getDistrictRate( $annual_income ); $district_constant = $this->getData()->getDistrictConstant( $annual_income ); $district_rate_income = $this->getData()->getDistrictRatePreviousIncome( $annual_income ); $retval = bcadd( bcmul( bcsub( $annual_income, $district_rate_income ), $rate ), $district_constant ); } if ( $retval < 0 ) { $retval = 0; } Debug::text( 'District Annual Tax Payable: ' . $retval, __FILE__, __LINE__, __METHOD__, 10 ); return $retval; } } ?>