In 2014, the Financial Accounting Standards Board (FASB) issued new guidance for how to recognize revenue from contracts with customers.  It will bring US Generally Accepted Accounting Principles (GAAP) more in line with International Financial Reporting Standards (IFRS), and also provide more consistent revenue recognition standards across US industries. Currently, under US GAAP, revenue is recorded differently in some industries, such as software and real estate, even though the transactions are economically similar.

The new standard will apply to all industries for any contracts with customers, except for contracts that fall under other accounting standards, such as insurance or lease contracts. It will take effect for public entities in fiscal years starting after December 15, 2017, and for all other entities in fiscal years starting after December 15, 2018.

Per FASB, the core principle of the new guidance is to recognize revenue as goods or services are transferred to customers, showing the amount of the consideration you expect to receive in exchange for those goods and services. To that end, there are 5 steps to determining when and how much revenue to recognize, including:

  1. Identify a contract with a customer. If you enter into multiple contracts with the same customer at or near the same time, you should combine them and account for them as a single contract if one or more of the following criteria are met:
    1. The contracts are negotiated as a package with a single commercial objective.
    2. The amount of consideration paid in one contract depends on the price or performance of the other contract.
    3. All or some of the goods or services promised in the contracts are a single performance obligation.
  2. Identify the performance obligations in the contract. This is a distinct good or service, a bundle of goods or services, or a series of goods or services that are substantially the same and have the same pattern of transfer to the customer. A good or service is distinct if it meets 2 criteria:
    1. The customer can benefit from it on its own, or when combined with other resources readily available to the customer.
    2. Your promise to transfer the good or service to the customer is separate or distinct from other promises in the contract.
  3. Determine the transaction price. This is the total amount of consideration you expect to receive in exchange for the goods or services you’re providing in the contract. It should be net of any “variable consideration,” such as if there are discounts, rebates, performance bonuses, or incentives worked into the contract. If there is a financing component for the customer, and it will take you more than a year to receive payment once you have transferred a good or service to them, you should adjust your revenue for the time value of money.
  4. Allocate the transaction price to the performance obligations in the contract. The transaction price in step 3 should be allocated among the performance obligations you identified in step 2. How much do you expect to be paid for each distinct good or service?
  5. Recognize revenue when, or as, you satisfy a performance obligation. When you deliver a good or service to your customer, you can recognize the revenue associated what it, which you determined in step 4. The obligation is delivered, or transferred, when the customer obtains control of it. If a performance objective is met at a point in time, recognize the revenue at that point. If it is met over a course of time, recognize the revenue over that period.

Over the next few weeks, I’ll dive into greater detail for each of the 5 steps, and also cover the disclosures FASB expects related to contracts (Part 1|Part 2|Part 3). You’ll need to plan ahead for how you’ll implement the new guidance, and if there are any changes you need to make in your accounting system to prepare for it. To that end, you can get tips and suggested steps from the Journal of Accountancy and the AICPA. Additionally, accounting firm Price Waterhouse Cooper has a podcast and written key points here.