home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 1 / 1688 < prev    next >
Internet Message Format  |  1990-12-28  |  7KB

  1. From: bogatko@lzga.ATT.COM (George Bogatko)
  2. Newsgroups: alt.sources
  3. Subject: grossup - figure net salary
  4. Message-ID: <2004@lzga.ATT.COM>
  5. Date: 14 Aug 90 14:17:07 GMT
  6.  
  7.  
  8. HI:
  9.  
  10.     This is a program I use during salary negotiations with a
  11. prospective new employer.  What it does is allow you to negotiate on the
  12. basis of NET salary instead of GROSS salary.  
  13.  
  14.     It's an awk script, and a shell to run it, that figures out the
  15. result of filling out basic tax forms for both the Federal tax, and
  16. (for me) the New Jersey tax.  Not particularly sophisticated, but
  17. useful.
  18.  
  19.     The way to use it is to change the numbers in the script
  20. (1000 in the example) to dollar figures that are relevant to you,
  21. and then invoke the script with the GROSS salary you are considering.
  22. What comes out among other things is your NET per month.  That is the
  23. amount you will actually have to exist on per month, which is quite
  24. different than what you expect given a GROSS amount per year.
  25.  
  26.     There is ample precedent for negotiating on a NET amount.  It is
  27. done all the time in the international banking and finance areas to 
  28. "grossup" the salary of foreign employees to make sure that their 
  29. take-home will be the same, regardless of the tax impact of the host
  30. nation.
  31.  
  32.     Gross salarys are very glamourous looking when presented, but
  33. after all the gotcha's are put in, the final take home can be very
  34. unpleasant.  The answer is to negotiate on a NET basis.  Since the
  35. very novelty of this approach can be disconcerting to employers.  This
  36. makes it hard for beginners in the business to take such a stand.  But
  37. if enough of us do it, it could become a standard way of doing things.
  38.  
  39. GB
  40.  
  41. ****** CUT HERE ****** CUT HERE ****** CUT HERE ****** CUT HERE ****** CUT HERE
  42.  
  43.  
  44. #! /bin/sh
  45. # This is a shell archive, meaning:
  46. # 1. Remove everything above the #! /bin/sh line.
  47. # 2. Save the resulting text in a file.
  48. # 3. Execute the file with /bin/sh (not csh) to create:
  49. #    grossup
  50. #    tax.awk
  51. # This archive created: Tue Aug 14 08:44:06 1990
  52. export PATH; PATH=/bin:/usr/bin:$PATH
  53. echo shar: "extracting 'grossup'" '(294 characters)'
  54. if test -f 'grossup'
  55. then
  56.        echo shar: "will not over-write existing file 'grossup'"
  57. else
  58. sed 's/^      X//' << \SHAR_EOF > 'grossup'
  59.       Xif [ "$1" = "" ]
  60.       Xthen
  61.       X    echo usage: grossup wages 
  62.       X    exit
  63.       Xfi
  64.       Xcat << EOF | awk -f tax.awk 
  65.       X
  66.       X#
  67.       X#income
  68.       X#
  69.       X
  70.       Xwages        $1
  71.       X
  72.       X# interest    1000
  73.       X# dividends    1000
  74.       X# refunds    1000
  75.       X# other income    1000
  76.       X
  77.       X#
  78.       X# deductions
  79.       X#
  80.       X
  81.       X# property tax    1000
  82.       X# mortgage    1000
  83.       X# personal interest    1000
  84.       X
  85.       Xcontribs    1000
  86.       Xexemptions    7
  87.       X
  88.       XEOF
  89. SHAR_EOF
  90. if test 294 -ne "`wc -c < 'grossup'`"
  91. then
  92.        echo shar: "error transmitting 'grossup'" '(should have been 294 characters)'
  93. fi
  94. chmod +x 'grossup'
  95. fi
  96. echo shar: "extracting 'tax.awk'" '(2951 characters)'
  97. if test -f 'tax.awk'
  98. then
  99.        echo shar: "will not over-write existing file 'tax.awk'"
  100. else
  101. sed 's/^      X//' << \SHAR_EOF > 'tax.awk'
  102.       X#
  103.       X# init
  104.       X#
  105.       X
  106.       XBEGIN {
  107.       X    fed_personal_exempt = 2000.00
  108.       X    nj_personal_exempt = 1000.00
  109.       X    yearly_ssn = 3604.80
  110.       X    ssn_percent = .07
  111.       X#
  112.       X# NJ FACTORS
  113.       X#
  114.       X    nj_low_income = 20000.00
  115.       X    nj_med_income = 50000.00
  116.       X
  117.       X    nj_med_base = 400.00
  118.       X    nj_high_base = 1150.00
  119.       X
  120.       X    nj_low_rate = .02
  121.       X    nj_med_rate = .025
  122.       X    nj_high_rate = .035
  123.       X#
  124.       X# FED FACTORS
  125.       X#
  126.       X    fed_low_income = 30950.00
  127.       X    fed_med_income = 74850.00
  128.       X    fed_high_income = 155320.00
  129.       X
  130.       X    fed_med_base = 4642.50
  131.       X    fed_high_base = 16934.50
  132.       X
  133.       X    fed_low_rate = .15
  134.       X    fed_med_rate  = .28
  135.       X    fed_high_rate = .33
  136.       X}
  137.       X#
  138.       X#income
  139.       X#
  140.       X/^wages/    { wages = $2 }
  141.       X/^interest/    { int_inc = $2 }
  142.       X/^dividends/    { dividends = $2 }
  143.       X/^other income/    { other_inc = $3 }
  144.       X#
  145.       X# deductions
  146.       X#
  147.       X/^property tax/        { prop_tax = $3 }
  148.       X/^mortgage/        { mortgage = $2 }
  149.       X/^personal interest/    { per_int = $3 }
  150.       X/^contribs/        { contribs = $2 }
  151.       X/^exemptions/        { exempts = $2 }
  152.       X
  153.       XEND {
  154.       X#
  155.       X# NJ STATE FIGURE
  156.       X#
  157.       X    tot_income = wages + int_inc + dividends + other_inc
  158.       X    t_exempts = exempts * nj_personal_exempt
  159.       X    taxable = tot_income - t_exempts - prop_tax
  160.       X
  161.       X    if ( taxable <= nj_low_income )
  162.       X    {
  163.       X        l_tax = taxable * nj_low_rate
  164.       X    }
  165.       X    else if ( taxable > nj_low_income && taxable <= nj_med_income )
  166.       X    {
  167.       X        l_tax = nj_med_base + ( (taxable - nj_low_income) * nj_med_rate )
  168.       X    }
  169.       X    else if (taxable > nj_med_income )
  170.       X    {
  171.       X        l_tax = nj_high_base + ( (taxable - nj_med_income) * nj_high_rate )
  172.       X    }
  173.       X#
  174.       X# FEDERAL FIGURE
  175.       X#
  176.       X    tot_income = wages + int_inc + dividends + refunds + other_inc
  177.       X    deductions = l_tax + prop_tax + mortgage + (per_int * .2) + contribs
  178.       X    t_exempts = exempts * fed_personal_exempt
  179.       X    taxable = tot_income - deductions - t_exempts
  180.       X
  181.       X    if ( taxable <= fed_low_income )
  182.       X    {
  183.       X        tax = taxable * fed_low_rate
  184.       X    }
  185.       X    else if ( taxable > fed_low_income && taxable <= fed_med_income )
  186.       X    {
  187.       X        tax = fed_med_base + ( (taxable-fed_low_income) * fed_med_rate)
  188.       X    }
  189.       X    else if ( taxable > fed_med_income && taxable < fed_high_income )
  190.       X    {
  191.       X        tax = fed_high_base + ((taxable-fed_med_income) * fed_high_rate)
  192.       X    }
  193.       X
  194.       X    t_taxes = tax + l_tax + yearly_ssn
  195.       X    net = tot_income - t_taxes
  196.       X    m_gross = wages/12
  197.       X    ssn_deduct = m_gross * ssn_percent
  198.       X    m_net = net/12
  199.       X    m_t_taxes = m_gross - m_net
  200.       X    ss_m_net = m_net - ssn_deduct
  201.       X
  202.       X    print "\n\n"
  203.       X    printf "total gross:\t\t\t$%.2f\n", tot_income
  204.       X    printf "monthly gross:\t\t\t$%.2f\n\n", m_gross
  205.       X
  206.       X    printf "fed tax:\t\t\t$%.2f\n", tax
  207.       X    printf "NJ state tax:\t\t\t$%.2f\n", l_tax
  208.       X    printf "ssn:\t\t\t\t$%.2f\n", yearly_ssn
  209.       X    printf "total taxes\t\t\t$%.2f\n\n", t_taxes
  210.       X
  211.       X    printf "monthly taxes\t\t\t$%.2f\n", m_t_taxes
  212.       X    printf "monthly ssn\t\t\t$%.2f\t\t($%.2f * %.2f)\n", ssn_deduct, m_gross, ssn_percent
  213.       X    printf "total monthly taxes\t\t$%.2f\n\n", m_t_taxes + ssn_deduct
  214.       X
  215.       X
  216.       X    printf "exemptions:\t\t\t$%.2f\t(%d * $%.2f)\n", t_exempts, exempts, fed_personal_exempt
  217.       X    printf "mortgage + taxes\t\t$%.2f\n\n", mortgage + l_tax
  218.       X
  219.       X    printf "total net:\t\t\t$%.2f\n\n",  net
  220.       X
  221.       X    printf "monthly net:\t\t\t$%.2f\n", m_net
  222.       X    printf "monthly ssn\t\t\t$%.2f\n", ssn_deduct
  223.       X    printf "total monthly net:\t\t$%.2f\n", ss_m_net
  224.       X    print "\n"
  225.       X}
  226. SHAR_EOF
  227. if test 2951 -ne "`wc -c < 'tax.awk'`"
  228. then
  229.        echo shar: "error transmitting 'tax.awk'" '(should have been 2951 characters)'
  230. fi
  231. fi
  232. exit 0
  233. #    End of shell archive
  234.