[alt.sources] grossup - figure net salary

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