Tuesday, January 28, 2014

2013 FICA-Medicare withheld only prints $2,900 on W-2


Only $2,900. . .what’s up with that? As we all are frantically preparing our W-2s, an anomaly (a bug, really) has reared its head. It applies to those employees with FICA Medicare wages in excess of $200,000. As you know, the 2.35% Medicare rate kicks in at that amount. The extra withholding is calculated correctly on the pay checks and everything looks right on the Year End Wage report.

The Problem

Although the year end wage report is correct, when the W-2s print, the amount in the Medicare withheld box is only $2,900. Suppose this employee made $350,000 and really had $6,425 in Medicare withholding. Eeek! Chances are, the folks making more than $200,000 on the salary scale, are pretty high up in the organization. These are not the people to whom you want to give an incorrect W-2.  So what happened to the extra $3,525 that was withheld, and how do you get it on the W-2?

How it happens

We had a similar problem when the tax rates were split between employer and employee in 2011/2012 and the following year’s tax tables were loaded before the current year payroll was closed. I discuss that problem on the post How is FICA/S wages and withholding calculated?.

While this problem manifests itself in the same way, it isn’t because the tax tables were not properly loaded. It has to do with how Dynamics GP calculates the amount that goes into the Medicare withheld box.

When you close the payroll year, the system creates the Payroll Year-End Header record in the UPR10100 table. It also adds a record for each employee to the Payroll Year End Wage table UPR10101. The numbers in the Payroll Year End Wage table are taken from the Payroll Employee Summary (UPR00900) and therefore reflects the actual amounts.

When you close the payroll year, the Payroll Year End Header (UPR10100) table is populated. Among the information pulled into this table, are the FICA/SS and FICA/M rates and wage limits. The numbers come from whatever values are in the tax tables at the time of the close. The  Payroll Year-End Wage (UPR10100)  table is also populated at this time. The Year-End Wage table gets its numbers from the Payroll Employee Summary table, that table holds the actual amounts from the employees’ paychecks. The Year End Employee Wage Report is created from the Year-End Wage table and that’s why it shows the full amount of the FICA/M withheld. The year end wage report does not read the FICA/M or FICA/SS amounts from the header.

The W-2 Validation report calculates its amounts on the fly when you print the report. The Validation report gets its rates from the tax table itself. Here’s the rub – there is only one field in the header table in which to store the FICA rate (TICAMTRT). The Medicare rate is pulled from the first row of the FICA/M tax table. Therefore, the rate recorded for 2013 was 1.45%. Another field in the header table (FICAMWLM) stores the Medicare wage limit . Sometimes, the value of $200,000 fills the FICAMWLM field. I do not know the set of circumstances that cause this.

When you print W-2s, the system calculates the maximum amount of Medicare withholding allowed by law based on the wage limit and rate stored in the header table. Dynamics GP will not print a number greater than this calculated maximum on the the W-2, regardless of how much was actually withheld. If the FICAMWLM field has a value of $200,000 in it, Medicare withheld on the W-2 will be limited to $2,900 (.0145 * $200,000).

The Fix

Fortunately, this is an easy problem to fix. All you need to do is set the value of UPR10101.FICAMWLM to zero. This SQL statement will accomplish the task: Update UPR10101 set FICAMWLM = 0

With no wage limit, there is no maximum. Your W-2s will now print with the full amount of Medicare withheld.

Until next post!


No comments: