Create a rule
Learn how to create a Revenue Recognition rule.
You can create and manage Revenue Recognition rules from the Stripe Dashboard. To create a rule, click Add rule from the Rules page.
A rule consists of the following key components:
- Name
- Apply to
- Revenue treatment and allocation
- Effective period
Conditions
Under Apply to, you can set conditions specifying which transactions (for example, charges, invoice line items, , ) a rule applies to.
Caution
A transaction fulfils the condition requirement when all the conditions are true.
Effective period
An effective period specifies the time period that a rule applies to. For an invoice line item, if the finalisation time for the invoice falls within the specified effective period, the invoice line item fulfils the effective period requirement. For a charge, if the balance transaction that it corresponds to has a creation time that falls within the specified effective period, the charge fulfils the effective period requirement.
For a rule to apply to a transaction, the transaction must fulfil both the effective period and condition requirements. When you update the effective period, the rule retroactively applies to previous accounting periods. If the previous periods are closed, changes are reflected in the first open accounting period. You can avoid corrections by re-opening previous periods.
Treatments
When a transaction fulfils both the effective period and condition requirement, a set of defined treatments are applied. A treatment consists of its type and the allocation percentage. The allocation percentage specifies how much of the amount the type of treatment applies to. The type of treatment specifies how to treat the amount. We support the following treatment types:
| Revenue treatment | Products* | Customers** | Invoices | Other payments | |
|---|---|---|---|---|---|
| Defer and recognise revenue at a specified time (applied to payments) | |||||
| Categorise the amount as passthrough fees | |||||
| Categorise the amount as tax | |||||
| Exclude the amount | |||||
| Amortise the amount over a specified period (applied to payments) | |||||
| Amortise the amount over the service period for an invoice line item |
** You can’t use Customers alone. You must combine them with Invoices, Other payments.
Rule examples
The following examples demonstrate common Revenue Recognition rule configurations. Each example shows how to set up rules for different business scenarios, from tax categorisation to revenue amortisation.
Tax treatment
To categorise a tax line item (for example, created by Avalara), you can set one rule, such as the following example:
| Components | Value |
|---|---|
| Apply to | Invoices > Line item description contains all of the following: AvaTax |
| Effective period | Start: All past dates - End: Indefinite |
| Treatments | Tax (100%) |
If you have a 10 USD invoice line item with the description “Sales Tax calculated by AvaTax” and the invoice finalises in April, you’d see the account balances as in the following example:
| Account | April |
|---|---|
| AccountsReceivable | 10 USD |
| TaxLiability | 10 USD |
Passthrough fees
To categorise 10% of an amount as a passthrough fee, you can set one rule like the following example:
| Components | Value |
|---|---|
| Apply to | Invoices > All line items |
| Effective period | Start: All past dates – End: Indefinite |
| Treatments | Amortisation over line item service period (90%) and Passthrough fee (10%) |
If you have a 100 USD invoice line item (without a service period) that finalises in April, you’d see the account balances like the following example:
| Account | April |
|---|---|
| AccountsReceivable | 100 USD |
| Revenue | 90 USD |
| PassthroughFees | 10 USD |
Exclude transactions from a test customer
To exclude all the standalone payments from a test customer, you can set one rule like the following example:
| Components | Value |
|---|---|
Apply to | Customers > Customer email contains all of the following: test@stripe.com Other payments > All other payments |
| Effective period | Start: All past dates – End: Indefinite |
| Treatments | Exclude revenue (100%) |
The report excludes other payments from the customer, whose email is test@stripe.com.
Exclude standalone payments
To exclude all standalone payments from the report, set a rule like the following:
| Components | Value |
|---|---|
| Apply to | Other payments > All other payments |
| Effective period | Start: All past dates – End: Indefinite |
| Treatments | Exclude revenue (100%) |
This rule restricts Revenue Recognition to only include recurring payments and one-off invoice payments in your revenue accounting reports. Standalone payments are excluded from the report.
Amortise revenue over custom time period
In this example, we want to (1) amortise other payments from a small set of customers (for example, cus_ and cus_) over one year and (2) amortise the remaining other payments over one month.
We can make two rules and use the order of the rules as shown in the following example:
Rule 1: Amortise other payments over one year
| Components | Value |
|---|---|
Apply to | Customers > Customer ID matches any of the following: cus_AAA, cus_BBB Other payments > All other payments |
| Effective period | Start: All past dates - End: Indefinite |
| Treatments | Amortisation over custom service period (100%) > Amortisation starting 0 days from paid time over 1 year |
Rule 2: Amortise other payments over one month
| Components | Value |
|---|---|
| Apply to | Other payments > All other payments |
| Effective period | Start: All past dates - End: Indefinite |
| Treatments | Amortisation over custom service period (100%) > Amortisation starting 0 days from paid time over 1 month |
Other payments from cus_ or cus_ match Rule 1 and the revenue amortises over one year. Other payments from any other customer match Rule 2 and the revenue amortises over one month.