Introduction
This is the developer’s reference for the TaxControls component. Information presented here is intended for the payroll application programmer, and not the application end user.
The TaxControls component computes federal, state, and local payroll taxes, which are kept current through a subscription to the Caliber Technology TaxUpdate Service. The component is designed to plug in to your payroll-related application with very little setup, and has a simple programming interface.
Design
Edwards, Michael | 86.25 | 76.32 | 0.16 |
Anderson, Patricia | 143.93 | 48.88 | 16.30 |
Jones, Lily | 86.34 | 27.95 | 17.36 |
tc.SelectedTax = emp.taxname[i];
tc.Earnings = emp.earnings;
tc.FilingStatus = emp.status;
:
return tc.TaxAmount()
McNamara, James | 0.16 | 83.48 | 36.77 |
Smith, Michael | 49.84 | 58.88 | 37.75 |
McNamara, Patricia | 192.21 | 47.34 | 11.24 |
tc.setSelectedTax(emp.taxname[i]);
tc.setEarnings(emp.earnings);
tc.setFilingStatus(emp.status);
:
return tc.TaxAmount()
Using TaxControls, individual tax amounts are computed one at a time. For each employee, your application will loop through multiple tax names (setting SelectedTax), providing various settings for each tax calculation, then calling TaxAmount to get the computed value.
A typical database schema to support this might include:
Employee |
---|
emp_id |
last |
first |
ssn |
dob |
: |
EmpTax |
---|
emp_id |
taxname |
earnings |
ytdearnings |
filingstatus |
exemptions |
stateexemptions |
miscellaneous |
auxiliary |
Each Employee record would have multiple corresponding EmpTax records (one for each tax), so that each tax calculation gets an independent set of pay parameters. This is necessary because, for example, in some formulas exemptions are interpreted as dependents only, while in others they include the employee and spouse as well.
Even 'earnings' and 'ytdearnings' need to be set independently for each tax, because some benefits may be tax-free only for federal purposes, which means that they must be included in earnings for state or local taxes.
Some taxes require additional information besides earnings, filing status, and exemptions. The 'miscellaneous' and 'auxiliary' fields are used in such situations.
For example, the 'AL' (Alabama) formula allows an option for claiming 0, 1, or 2 personal exemptions. This information is passed to the tax through the Miscellaneous variable.
We provide enough information in tax properties to allow meaningful labels and help text for these generic fields. For the 'AL' tax, the Miscellaneous-tag property for the tax is 'Personal exemption'. Your app can use this property to make the field label for Miscellaneous more meaningful.
Usage
TaxControls components are designed to assist with payroll-related tasks your application may require:
-
Employee setup
We can help your application guide the payroll administrator in setting up appropriate employee withholding taxes. Your app can retrieve a list of all available taxes by category, or get a list of applicable tax names based on work and resident ZIP Codes or addresses. Instructions are available which can be shown to the administrator, indicating required information for each tax.
-
Payroll process
Your app will cycle through each applicable tax, setting the TaxControls properties accordingly. For each, it will call the TaxAmount method to calculate the tax.
The TaxControls component provides all information programmatically, allowing your application to control presentation to the administrator.