13 October 2011

Weekly Review: Retention on Time and Material Projects in Project Accounting

Retention (also commonly called Retainage) is a process where amounts (typically a flat percentage) are held back each sales invoice until a project is complete as a form of performance guarantee. Typically, once the final project milestones are met and approved, the vendor has to submit a final invoice to bill the amounts that have previously been retained.

By default, the Project Accounting module in Dynamics GP 10 supports Retention for Fixed Price project only. This is the most common scenario. But, I recently ran across a client who needed retention functionality for Time and Materials type projects. If all of the elements are there, this can be accomplished without any customization.

In a nutshell, the Trade Discount functionality, if it is not being used elsewhere, can effectively masquerade for retention. Here is how you can make it work.


  • Set the Discount Percentage on the Project Billing Settings screen to the retention percentage.
  • Set the Trade Discount account in Posting Accounts to a balance sheet account to hold the retained amounts.
  • Create a Retention Cost Category to hold the final billing of retention.
  • Trade Discount will need to be renamed as Retention on any related invoices
  • Process billing transactions normally using cycle biller or billing entry. GP will automatically subtract the trade discount crediting revenue and debiting the retention account.
Project Completion:
Billing retention is typically a bit of a production. Normally there are significant contractual requirements and signatures required before final billing can be completed. Once that is done, there are few things required in Project Accounting to bill the final amounts.
  • Use a SmartList to obtain the total amount retained using the Trade Discount field from Billing.
  • Process a billable Miscellaneous Log transaction for zero cost.
  • Remove the Discount Percentage prior to final billing to avoid calculating retention on the retention amount.
  • Alternatively, zero out the Trade Discount amount on the final billing prior to posting.
  • Create an invoice via Billing Entry and set the amount to be billed equal to the amount retained.
  • Print and post normally
  • When reviewing projects, the amounts retained are ready visible in each billing transaction in the Trade Discount field.
  • The retained amounts also appear in SmartLists as Trade Discounts. In SmartList favorites this field can easily be renamed to Retention.

While less common in T&M projects, retention can be required there as well. Assuming that the Trade Discount field is available, this simple workaround allows accounting for retention on T&M projects without customization.

Originally Posted by Mark at 11/02/2009 09:00:00 AM