bogatko@lzga.ATT.COM (George Bogatko) (08/14/90)
HI: This is a program I use during salary negotiations with a prospective new employer. What it does is allow you to negotiate on the basis of NET salary instead of GROSS salary. It's an awk script, and a shell to run it, that figures out the result of filling out basic tax forms for both the Federal tax, and (for me) the New Jersey tax. Not particularly sophisticated, but useful. The way to use it is to change the numbers in the script (1000 in the example) to dollar figures that are relevant to you, and then invoke the script with the GROSS salary you are considering. What comes out among other things is your NET per month. That is the amount you will actually have to exist on per month, which is quite different than what you expect given a GROSS amount per year. There is ample precedent for negotiating on a NET amount. It is done all the time in the international banking and finance areas to "grossup" the salary of foreign employees to make sure that their take-home will be the same, regardless of the tax impact of the host nation. Gross salarys are very glamourous looking when presented, but after all the gotcha's are put in, the final take home can be very unpleasant. The answer is to negotiate on a NET basis. Since the very novelty of this approach can be disconcerting to employers. This makes it hard for beginners in the business to take such a stand. But if enough of us do it, it could become a standard way of doing things. GB ****** CUT HERE ****** CUT HERE ****** CUT HERE ****** CUT HERE ****** CUT HERE #! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create: # grossup # tax.awk # This archive created: Tue Aug 14 08:44:06 1990 export PATH; PATH=/bin:/usr/bin:$PATH echo shar: "extracting 'grossup'" '(294 characters)' if test -f 'grossup' then echo shar: "will not over-write existing file 'grossup'" else sed 's/^ X//' << \SHAR_EOF > 'grossup' Xif [ "$1" = "" ] Xthen X echo usage: grossup wages X exit Xfi Xcat << EOF | awk -f tax.awk X X# X#income X# X Xwages $1 X X# interest 1000 X# dividends 1000 X# refunds 1000 X# other income 1000 X X# X# deductions X# X X# property tax 1000 X# mortgage 1000 X# personal interest 1000 X Xcontribs 1000 Xexemptions 7 X XEOF SHAR_EOF if test 294 -ne "`wc -c < 'grossup'`" then echo shar: "error transmitting 'grossup'" '(should have been 294 characters)' fi chmod +x 'grossup' fi echo shar: "extracting 'tax.awk'" '(2951 characters)' if test -f 'tax.awk' then echo shar: "will not over-write existing file 'tax.awk'" else sed 's/^ X//' << \SHAR_EOF > 'tax.awk' X# X# init X# X XBEGIN { X fed_personal_exempt = 2000.00 X nj_personal_exempt = 1000.00 X yearly_ssn = 3604.80 X ssn_percent = .07 X# X# NJ FACTORS X# X nj_low_income = 20000.00 X nj_med_income = 50000.00 X X nj_med_base = 400.00 X nj_high_base = 1150.00 X X nj_low_rate = .02 X nj_med_rate = .025 X nj_high_rate = .035 X# X# FED FACTORS X# X fed_low_income = 30950.00 X fed_med_income = 74850.00 X fed_high_income = 155320.00 X X fed_med_base = 4642.50 X fed_high_base = 16934.50 X X fed_low_rate = .15 X fed_med_rate = .28 X fed_high_rate = .33 X} X# X#income X# X/^wages/ { wages = $2 } X/^interest/ { int_inc = $2 } X/^dividends/ { dividends = $2 } X/^other income/ { other_inc = $3 } X# X# deductions X# X/^property tax/ { prop_tax = $3 } X/^mortgage/ { mortgage = $2 } X/^personal interest/ { per_int = $3 } X/^contribs/ { contribs = $2 } X/^exemptions/ { exempts = $2 } X XEND { X# X# NJ STATE FIGURE X# X tot_income = wages + int_inc + dividends + other_inc X t_exempts = exempts * nj_personal_exempt X taxable = tot_income - t_exempts - prop_tax X X if ( taxable <= nj_low_income ) X { X l_tax = taxable * nj_low_rate X } X else if ( taxable > nj_low_income && taxable <= nj_med_income ) X { X l_tax = nj_med_base + ( (taxable - nj_low_income) * nj_med_rate ) X } X else if (taxable > nj_med_income ) X { X l_tax = nj_high_base + ( (taxable - nj_med_income) * nj_high_rate ) X } X# X# FEDERAL FIGURE X# X tot_income = wages + int_inc + dividends + refunds + other_inc X deductions = l_tax + prop_tax + mortgage + (per_int * .2) + contribs X t_exempts = exempts * fed_personal_exempt X taxable = tot_income - deductions - t_exempts X X if ( taxable <= fed_low_income ) X { X tax = taxable * fed_low_rate X } X else if ( taxable > fed_low_income && taxable <= fed_med_income ) X { X tax = fed_med_base + ( (taxable-fed_low_income) * fed_med_rate) X } X else if ( taxable > fed_med_income && taxable < fed_high_income ) X { X tax = fed_high_base + ((taxable-fed_med_income) * fed_high_rate) X } X X t_taxes = tax + l_tax + yearly_ssn X net = tot_income - t_taxes X m_gross = wages/12 X ssn_deduct = m_gross * ssn_percent X m_net = net/12 X m_t_taxes = m_gross - m_net X ss_m_net = m_net - ssn_deduct X X print "\n\n" X printf "total gross:\t\t\t$%.2f\n", tot_income X printf "monthly gross:\t\t\t$%.2f\n\n", m_gross X X printf "fed tax:\t\t\t$%.2f\n", tax X printf "NJ state tax:\t\t\t$%.2f\n", l_tax X printf "ssn:\t\t\t\t$%.2f\n", yearly_ssn X printf "total taxes\t\t\t$%.2f\n\n", t_taxes X X printf "monthly taxes\t\t\t$%.2f\n", m_t_taxes X printf "monthly ssn\t\t\t$%.2f\t\t($%.2f * %.2f)\n", ssn_deduct, m_gross, ssn_percent X printf "total monthly taxes\t\t$%.2f\n\n", m_t_taxes + ssn_deduct X X X printf "exemptions:\t\t\t$%.2f\t(%d * $%.2f)\n", t_exempts, exempts, fed_personal_exempt X printf "mortgage + taxes\t\t$%.2f\n\n", mortgage + l_tax X X printf "total net:\t\t\t$%.2f\n\n", net X X printf "monthly net:\t\t\t$%.2f\n", m_net X printf "monthly ssn\t\t\t$%.2f\n", ssn_deduct X printf "total monthly net:\t\t$%.2f\n", ss_m_net X print "\n" X} SHAR_EOF if test 2951 -ne "`wc -c < 'tax.awk'`" then echo shar: "error transmitting 'tax.awk'" '(should have been 2951 characters)' fi fi exit 0 # End of shell archive