Linear Recognition


In some transactions, the purchased products or services are delivered to customer continuously over a period of time. Such scenarios are common for SaaS companies and companies selling subscriptions.

Based on accounting principle, revenue has to be recognized evenly across the entire service period regardless of when the payment is received.

Linear recognition rule is available on Leapfin Platform to amortize transaction amounts over a given time period.


Required Parameters

datecalendar date of when the product or service is purchased
amountfull amount of the product or service
start_datecalendar date of when the delivery of product or service begins
end_datecalendar date of when the delivery of product or service ends

Required Account

ar_accounte.g. "Account Receivable" (or "Cash" if the payment is received immediately)
deferred_revenue_accounte.g. "Deferred Revenue"
revenue_accounte.g. "Revenue"


Customer John purchased a 1-month subscription from Netflix for $9.99 on Jan 15th.

Event 1: item is purchased

When the subscription is purchased, the following journal entry is created. (Assuming the payment is made immediately upon purchase)

DateAccountDebit AmountCredit Amount
Deferred Revenue9.99

Besides, a series of amortization journal entries will be created to recognize revenue on a daily basis. Assume the 1-month subscription starts on Jan 15th and ends on Feb 14th. Both start and end dates are include in the subscription period.

DateAccountDebit AmountCredit Amount
01/15/2022Deferred Revenue0.32
01/16/2022Deferred Revenue0.32
02/14/2022Deferred Revenue0.32


The daily amount is calculated by $9.99 / (number of days between 01/15/2022 and 02/14/2022) = $0.32
Read here about the rounding treatment for sub-cent amounts.

Rounding logic

In linear recognition, Leapfin calculates a daily recognition amount using the full amount and length of service period. A meticulously designed rounding logic below is applied to ensure that the sum of all daily amounts equals exactly to the full amount.

  • Calculate the average amount per day as the full amount divided by total number of days (inclusive of both the start and end dates)
  • Round the amount per day down to the nearest penny so there is no fractional penny amount
  • Iterate through each day from start date to end date, and add an extra cent to the day each time the accumulated rounding difference calculated above reaches 1 cent.
  • If there is any remainder from rounding after iterating through all of the days, the difference is added to the first day of the term.