grossup - figure net salary
George Bogatko
bogatko at lzga.ATT.COM
Wed Aug 15 00:17:07 AEST 1990
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
More information about the Alt.sources
mailing list