#!/usr/bin/env python3; ############################################################################### # This program computes employee and employer FICA and FUTA taxes. # # Copyright © 2020 Richard Lesh. All rights reserved. ############################################################################### import Utils import sys SS_TAX_RATE = 0.062 SS_LIMIT = 127200.0 MEDICARE_TAX_RATE1 = 0.0145 MEDICARE_TAX_RATE2 = 0.0235 MEDICARE_BREAKPOINT = 200000.0 FUTA_TAX_RATE = 0.06 FUTA_BREAKPOINT = 7000.0 # Begin Main if (len(sys.argv) != 3) : print("Syntax: {0:s} annual_wages annual_tips".format(sys.argv[0])) sys.exit(1) ANNUAL_WAGES = Utils.stodWithDefault(sys.argv[1], 0.0) ANNUAL_TIPS = Utils.stodWithDefault(sys.argv[2], 0.0) ANNUAL_EARNINGS = ANNUAL_WAGES + ANNUAL_TIPS if (ANNUAL_EARNINGS < SS_LIMIT) : ss_tax = ANNUAL_EARNINGS * SS_TAX_RATE else : ss_tax = SS_LIMIT * SS_TAX_RATE if (ANNUAL_EARNINGS <= MEDICARE_BREAKPOINT) : medicare_tax = ANNUAL_EARNINGS * MEDICARE_TAX_RATE1 employer_medicare_tax = ANNUAL_EARNINGS * MEDICARE_TAX_RATE1 else : medicare_tax = MEDICARE_BREAKPOINT * MEDICARE_TAX_RATE1 + (ANNUAL_EARNINGS - MEDICARE_BREAKPOINT) * MEDICARE_TAX_RATE2 employer_medicare_tax = ANNUAL_EARNINGS * MEDICARE_TAX_RATE1 if (ANNUAL_EARNINGS <= FUTA_BREAKPOINT) : futa_tax = ANNUAL_EARNINGS * FUTA_TAX_RATE else : futa_tax = FUTA_BREAKPOINT * FUTA_TAX_RATE NET_EARNINGS = ANNUAL_EARNINGS - ss_tax - medicare_tax EMPLOYER_CONTRIBUTIONS = ANNUAL_EARNINGS + ss_tax + employer_medicare_tax + futa_tax print("Annual Earnings: ${0:.2f}".format(ANNUAL_EARNINGS)) print("Social Security Tax: ${0:.2f}".format(ss_tax)) print("Medicare Tax: ${0:.2f}".format(medicare_tax)) print("Employer Social Security Tax: ${0:.2f}".format(ss_tax)) print("Employer Medicare Tax: ${0:.2f}".format(employer_medicare_tax)) print("Federal Unemployment Tax: ${0:.2f}".format(futa_tax)) print("Net Earnings: ${0:.2f}".format(NET_EARNINGS)) print("Employer Contributions: ${0:.2f}".format(EMPLOYER_CONTRIBUTIONS))