This page contains answers to common questions handled by our support staff, along with some tips and tricks that we have found useful and presented here as questions.


It's the same software, with one change--you are able to use newly released tax tables. With the evaluation version, you can only work with specially unlocked tables.

Since 1996. We are financially solid, with very little debt and a diverse base of customers. Also, for extra security for your company, we offer language in our contract allowing you source escrow service if you desire.

TaxControls software handles 'multiversioned' tables at year-end, which means that you can install the new year's tables before January 1, without having to worrying about "jumping the gun" with the new formulas. The software automatically chooses the correct tax version based on pay date.

We also offer the ability to "suggest" applicable taxes for withholding, based on ZIP code. This allows you to offer easier setup of new employees in your payroll appication. If your application requires more precise tax setup, we also offer a web service which provides suggested applicable taxes based on the employee's workplace and resident addresses.

With TaxControls, the developer can now include custom tax tables with the application. This gives you complete control over the tables--you can provide additional withholding formulas, or override those from the Tax Update subscription file. These custom tables are not overwritten by new subscription data, and have all the same properties and methods as the "standard" tables included with subscriptions.

Yes. We cover all states which have income tax withholding, as well as Puerto Rico and the U.S. Virgin Islands.

For local taxes, the Level 1 Subscription includes all states except Ohio and Pennsylvania (which are covered by generic city and school district formulas). Because these states carry an excessive number of local taxes, they require much more overhead to monitor and update. Since most customers do not require this level of detail for these two states, we offer them as an add-on product (a Level 2 Subscription). Most customers will only need the generic local tables for Ohio and Pennsylvania, which are included in the base subscription.

For customers who would like just a few specific local tables for either of these states, they may be added and maintained manually by the customer. This option derives from the new TaxControls "Custom Tax" feature, which gives you the ability to add custom tax formulas which augment or modify the subscription tax files. This feature could be used to include a handful of local taxes for Pennsylvania or Ohio, without the addional cost of the Level 2 Subscription.

Yes. Calls to the TaxNamesForZip method returns the proper taxes to be withheld or employer-paid. Reciprocity agreements are taken into account when TaxControls generates this list.


No. The software will continue to work as before. However, it will not be able to read tax tables relased after the expiration date. Any table than was released while the subscription was valid will still work after expiration.

If you don't have a subscription, you will not be able to use new tax table files. If you download a new table anyway, you will most likely cause your application to stop working.


Tables are updated throughout the year, with the majority of changes occuring in December through January. We usually get a dozen or fewer changes during the remaining months. When a change occurs, we notify you by email describing the update. If it is a tax which does not affect you (or your customers), you may choose to ignore the update.

Unfortunately, there is no way to be certain. Some state legislatures delay decisions on new rates until late December or even January. There is no way to predict when or if changes will occur. You must decide on your own deadline for distribution, then possibly issue an update in January if major changes occur after your deadline.

No. We issue 'multiversioned' tables during December (and sometimes May or June), which allow both new and old formulas to be calculated. The software chooses the correct formula version based on the pay date. Just make sure you're using the latest version of the software, and set the 'PayDate' property to the payroll check date.

Yes, as long as your restrict access to your customers only.


A one-year Level 1 Subscription is $4995 (or $1375/quarter or $500/month). This entitles you to royalty-free use of the software and data on all company- or customer-owned PC's. There is a one-time fee of $299 for the required software component.

A separate Level 2 Subscription is available which includes all the specific Ohio and Pennsylvania local taxes. These local tables involve thousands of jurisdictions, and much higher overhead for monitoring and updating. Call us at 832-429-8821 for more information on this option.

Monthly payments for a Level 1 Subscription are $500. Quarterly payments are $1375.


Here's a sample in Visual Basic:

 Sub ListTaxes
 Dim ct as New CTaxControl
 Dim otax as tax
 ct.DataFilename = "c:\"
 For each otax in ct.Taxes
 ' skip over 'hidden' taxes:
 If otax.TaxType <> "P" then
 Debug.print otax.Name & ", " & otax.TaxType
 End If
 End Sub

For more information, see the tutorial


There are two methods:

  • Select 'FICA SS' and 'FICA Med' for the employee withholding, then 'FICA SS employer' and 'FICA Med employer' for the employer portion. This is the recommended method as it breaks out the details for each portion of the tax.
  • Select 'FICA' for the employee withholding (which internally combines 'FICA SS' and 'FICA Med'), then 'FICA employer' for the employer portion (which combines the two employer formulas.

Note also that starting in 2013, the Medicare formulas will need YTDEarnings figures in order to calculate correctly.

There are five types:

  • 'F' - Federal taxes
  • 'S' - State taxes
  • 'L' - Local taxes
  • 'O' - Other taxes (mostly unemployment and disability)
  • 'P' - Private formulas, used internally (e.g., for computing taxable income)

Yes. Here's sample .NET code to get the FICA Wage Base:

 using TaxControls;
 using System;
 public class Test{
 public static void Main(){
 CTaxControl tc = new CTaxControl();
 try {
 tc.DataFilename = "us.dat";
 tc.PayPeriodsPerYear = 1;
 tc.SelectedTax = "FICA Wage Base";
 } catch (TaxControlException e){
 Console.WriteLine("oops" + e);

For state unemployment wage bases, set the SelectedTax name to 'XX Wage Base', where XX is the state abbreviation.

Sure. Just substitute the TaxBracket method where you'd normally call TaxAmount.

The only real bottleneck which is likely to slow down your component would be loading the tables from disk multiple times. Once you've created a TaxControls component and loaded the data, you should take care to leave that object "alive".

We recommend that you use the "TaxAmount" method rather than the "ComputeTax" method unless absolutely necessary. The "ComputeTax" method loads the tax table from the file on each call, and is intended for environments which require a single function call for calculations.