Skip to main content

Reduction order transactions

Zuora

Reduction order transactions

Use reduction orders to track the reduction of a sales order in quantity or in terms. For example, if a customer has purchased 12-month maintenance service through a sales order and then requests to reduce the terms by 3 months, you can create a reduction order to track this request.

The SO based CM-R and RORD transactions can both result in the reduction of the sales order. However, the SO based CM-R transaction is usually used to reduce the quantity of a sales order. The RORD transaction is usually used to reduce the term in a sales order.

Input requirements

The reduction order transactions can be collected by Zuora Revenue with the line type being RORD. When RORD lines are input to Zuora Revenue, the ID of the original SO line must be specified for the RORD line. So that Zuora Revenue can reduce the original SO line accordingly.

To input RORD lines in Zuora Revenue, all the mandatory fields must be present for the RORD line. See Mandatory fields of RORD transactions. Besides, the following specific requirements must be met:

  • The Ext. Sell Price field must be a negative value.
  • The Ext. List Price field must be a negative value.
  • The Quantity field must be a positive value.
  • The Cancel Flag or the Return Flag fields must be empty.

Stage validations

Predefined validation rules are also available in the system to validate data on the RORD line. If any validation fails, the RORD line will be stopped in Staging.

Note that some predefined validation rules are to validate the dates on the RORD line and by default disabled. If you enable these validations, the following error codes will be returned when the validation fails. To resolve the validation errors, you need to review the RORD line to ensure revenue recognition can be triggered accordingly. 

  • RPRO-00353: The start date of the RORD line is earlier than the start date of the SO line, or the end date of the RORD line is later than the end date of the SO line.
  • RPRO-00356: The revenue start or end date on the associated SO line has been updated from the UI or through the manual deferral/release action.

A flag called RORD Review Completed is introduced to the Inbound Integration UI for you to skip this validation after you have completed the review on the RORD line. Whenever the RORD line is stopped in Stage due to the above validation errors, you can navigate to Data Interface > Inbound and change this flag on the RORD line to Y. Then, during the next data collection, the system will skip the date validation for the RORD line.

Processing logic

When RORD is collected in Zuora Revenue, the overall revenue of the term or quantity of the SO line is to be adjusted. All the schedules created are associated with the original SO line. If both sales order and invoice schedules are present for the same period, the RORD line will reverse the invoice schedules before the sales order schedules.

  • If the RORD value equals to the original SO value, the amount in the deferred status and the amount in the recognized status will be cleared. In this case, the following changes will occur to the original SO line:
    • The Return Flag of the original SO line becomes Y.

    • The recognized amount, deferred amount, and the allocatable amount become null.

    • The extended SSP price and all other SSP related fields become null.

    • Allocation is updated based on the contract modification rules.

  • If the RORD value is less than the original SO value, the amount in the deferred status will be cleared first. After that, if the RORD value is not completely consumed, the amount is the recognized status will be reduced. In this case, the following changes occur to the original SO line:
    • The Return Flag of the original SO line remains N.

    • The recognized amount, the deferred amount, and the allocatable amount will be updated based on the Ext. Sell Price of the RORD line.

    • The extended SSP price and all SSP related fields will be updated based on the changes in List Price, Sell Price, and Quantity.

    • Allocation is updated based on the contract modification rules.

Related profile setting

The CREATE_RORD_CONTRA_ENTRY profile determines whether the Contra AR entry is to be created when RORD lines are collected in Zuora Revenue. Examples of accounting entries are provided in the Accounting entries sections below to help you understand the impact of this profile setting on RORD accounting entries.

CM-RO transaction impact

The transaction type, CM-RO (credit memo for reduction order), is supported in Zuora Revenue to reverse the contra revenue that was created for the RORD line. The RORD schedules to be reversed are determined by the amount of the CM-RO line.

When the CREATE_RORD_CONTRA_ENTRY profile is enabled, there are two circumstances when the CM-RO line is collected.

  • If the Contra AR entry that was created for the RORD line has not been posted, the Contra AR entry will be removed from the schedules after the CM-RO line comes in.
  • If the CM-RO line is collected after the RC has been posted, the schedules will contain two Contra AR entries. One is created when the RORD line is collected and the other is created when the CM-RO line is collected.

The amortization of the revenue contract will not be impacted by the CM-RO line.

SSP normalization

When the RORD line is collected, the SSP value of the original SO line gets normalized based on the price, term, or quantity of the RORD line. Examples are provided to explain the impact of RORD line on SSP normalization.

SSP based on percentage

In this example, the SSP type is set to be Percentage. The SO line information is shown in the following table. The Ext. SSP Price is calculated based on the Ext. List Price and SSP%. The Allocated and Carve values can also be derived.

Line Type SO NO SO Line NO SO Line ID Item Qty Ext. List Price Ext. Sell Price SSP % Ext. SSP Price Allocated Carve
SO SO-1001 SO1001-1 10001 Hardware 2 1000 800 75

750

(=1000*75%)

801.53

(=1400*750/1310)

1.53
SO SO-1001 SO1001-2 10002 Software 2 800 600 70

560

(=800*70%)

598.47

(=1400*560/1310)

-1.53
Total 1400   1310    

Then, the following RORD line is collected to reduce the quantity of the two SO lines.

Line Type SO NO SO Line NO SO Line ID Item Qty Ext. List Price Ext. Sell Price
RORD SO-1001 SO1001-3 10001 Hardware 1 -500 -400
RORD SO-1001 SO1001-4 10002 Software 1 -400 -300

After data collection is done, the Ext. SSP Price is calculated based on the net value of Ext. List Price.

Line Type SO NO SO Line NO SO Line ID Item Qty Ext. List Price Ext. Sell Price SSP % Ext. SSP Price Allocated Carve
SO SO-1001 SO1001-1 10001 Hardware 1 500 400 75

375

(=500*75%)

400.76

(=700*375/655)

0.76
SO SO-1001 SO1001-2 10002 Software 1 400 300 70

280

(=400*70%)

598.47

(=700*280/655)

-0.76
Total 700   655    

SSP based on amount

In this example, the SSP type is set to be Amount. The SO line information is shown in the following table. The Ext. SSP Price is calculated based on the following formula:

Ext. SSP Price = SSP Price * Quantity * Term

SO Line ID Item Qty Ext. List Price Ext. Sell Price Allocatable Start Date End Date Term SSP Price Ext. SSP Price Allocated  Carve
SO20001 Hardware 1 1000 800 800 01/01/2019 01/01/2019 1 900 900

777.78

(1400*900/1620)

-22.22
SO20002 Maintenance 1 720 600 600 01/01/2019 31/12/2019 12 60 720

622.22

(1400*720/1620)

22.22
Total 1400         1620    

Then, the following RORD line is collected to reduce the term of the maintenance line by 3 months from October to December 2019.

Line Type SO Line ID Item Qty Ext. List Price Ext. Sell Price Start Date End Date Term
RORD SO20002 Maintenance 1 -180 -150 01/10/2019 31/12/2019 3

The Ext. SSP Price and Term are changed for the maintenance line. The Allocated Value and Carve are also recalculated as follows:

SO Line ID Item Qty Ext. List Price Ext. Sell Price Allocatable Start Date End Date Term SSP Price Ext. SSP Price Allocated  Carve
SO20001 Hardware 1 1000 800 800 01/01/2019 01/01/2019 1 900 900

781.25

(1250*900/1440)

-18.75
SO20002 Maintenance 1 540 450 450 01/01/2019 31/9/2019 9 60 540

468.25

(1250*540/1440)

18.25
Total 1250         1440    

Accounting entries (before 37.001.00.00)

Examples of accounting entries are provided below to help you understand the RORD processing in Zuora Revenue. The impact of CM-RO transactions is also explained.

In this example, the original SO line is collected with the following key fields.

SO NO Line NO INV NO INV Line NO Item Ext. Sell Price Curr Qty Revenue Start Date Revenue End Date
SO100 SO100-1 INV100 INV100-1 Hardware 1200 USD 1 01/01/2019 01/01/2019
SO100 SO100-2 INV100 INV100-2 Maintenance 600 USD 12 01/01/2019 31/12/2019
SO100 SO100-3 INV100 INV100-3 Support 360 USD 12 01/01/2019 31/12/2019

The hardware line is recognized immediately and the maintenance and support lines are Contract Ratable for one year. The waterfall data for these lines are as follows:

SO NO Line NO Item Curr Jan-19 Feb-19 Mar-19 Apr-19 ... Oct-19 Nov-19 Dec-19
SO100 SO100-1 Hardware USD 1200              
SO100 SO100-2 Maintenance USD 50 50 50 50   50 50 50
SO100 SO100-3 Support USD 30 30 30 30   30 30 30

In the Jan-19 period, the following accounting entries are created:

RC ID Line NO Account Type Currency Debit Credit Comments
1000 SO100-1 Contract Liability USD   1200 Initial Entry
1000 SO100-2 Contract Liability USD   600 Initial Entry
1000 SO100-3 Contract Liability USD   360 Initial Entry
1000 SO100-1 Contract Liability USD 1200   Rev Rec Entry
1000 SO100-1 Revenue USD   1200 Rev Rec Entry
1000 SO100-2 Contract Liability USD 50   Rev Rec Entry
1000 SO100-2 Revenue USD   50 Rev Rec Entry
1000 SO100-3 Contract Liability USD 30   Rev Rec Entry
1000 SO100-3 Revenue USD   30 Rev Rec Entry

The accounting entries for the Feb-19 period are as follows. The same accounting entries will be created for the subsequent periods until Dec-19.

RC ID Line NO Account Type Currency Debit Credit Comments
1000 SO100-2 Contract Liability USD 50   Rev Rec Entry
1000 SO100-2 Revenue USD   50 Rev Rec Entry
1000 SO100-3 Contract Liability USD 30   Rev Rec Entry
1000 SO100-3 Revenue USD   30 Rev Rec Entry

However, in November, the following RORD line is collected to reduce the maintenance line for two months.

Line Type SO NO Line NO Item Ext. Sell Price Qty Curr Revenue Start Date Revenue End Date
RORD SO101 SO100-1 Maintenance -100 12 USD 01/11/2019 31/12/2019

If the CREATE_RORD_CONTRA_ENTRY profile is set to No, it means Contra entry will not be created for the RORD line. The accounting entries for the SO100-2 line during the Nov-19 period are created as follows. The same accounting entries will also be created for the Dec-19 period.

RC ID Line NO Account Type Currency Debit Credit Comments
1000 SO100-2 Contract Liability USD 50   Rev Rec Entry
1000 SO100-2 Revenue USD   50 Rev Rec Entry
1000* SO100-2 Contract Liability USD   50 RORD Entry
1000* SO100-2 Revenue USD 50   RORD Entry
Entries marked with * are created when the RORD line is collected.

The amortization value for the revenue contract is as follows:

SO NO Line NO Item Curr Jan-19 Feb-19 Mar-19 Apr-19 ... Oct-19 Nov-19 Dec-19
SO100 SO100-1 Hardware USD 1200              
SO100 SO100-2 Maintenance USD 50 50 50 50   50 50 50
SO100* SO100-2 Maintenance USD             (50) (50)
SO100 SO100-3 Support USD 30 30 30 30   30 30 30
Entries marked with * are created when the RORD line is collected.

If the CREATE_RORD_CONTRA_ENTRY profile is set to Yes, the Contra entry is created when the RORD line is collected. The contra amount for the period is calculated based on the RORD schedules and/or the invoice schedules.

  • If both the RORD schedules and invoice schedules are present for the period, the contra amount is calculated based on the minimum of the invoice schedules and the RORD schedules.

  • If either of the two is not present in the period, the contra amount is calculated based on the present schedules.

For the above example, the following accounting entries will be created for the SO100-2 line during the Nov-19 period.

RC ID Line NO Account Type Currency Debit Credit Comments
1000 SO100-2 Contract Liability USD 50   Rev Rec Entry
1000 SO100-2 Revenue USD   50 Rev Rec Entry
1000 SO100-2 Contract Liability USD   50 RORD Entry
1000 SO100-2 Revenue USD 50   RORD Entry
1000* SO100-2 Contract Liability USD 100   Contract Revenue Entry
1000* SO100-2 Contra AR USD   100 Contract Revenue Entry
Entries marked with * are created when the RORD line is collected.

In the above example, after the RORD line is collected, the following CM-RO line is input to Zuora Revenue, which reverses the contra revenue that was created for the RORD line.

Line Type SO NO SO Line NO INV NO INV Line NO Item Currency Ext. Sell Price
CM-RO SO101 SO100-1 INV101 INV1001-1 Maintenance USD -100

In the scenario when the CREATE_RORD_CONTRA_ENTRY profile is set to No, the accounting entries for the SO100-2 line will be created during the Nov-19 period as follows:

RC ID Line NO Account Type Currency Debit Credit Comments
1000 SO100-2 Contract Liability USD 50   Rev Rec Entry
1000 SO100-2 Revenue USD   50 Rev Rec Entry
1000 SO100-2 Contract Liability USD   50 RORD Entry
1000 SO100-2 Revenue USD 50   RORD Entry
1000* SO100-2 Contract Liability USD 100   CM-RO Entry
Entries marked with * are created when the CM-RO line is collected.

In the scenario when the CREATE_RORD_CONTRA_ENTRY profile is set to Yes, the accounting entries will be created as follows during the Nov-19 period:

RC ID Line NO Account Type Currency Debit Credit Comments
1000 SO100-2 Contract Liability USD 50   Rev Rec Entry
1000 SO100-2 Revenue USD   50 Rev Rec Entry
1000 SO100-2 Contract Liability USD   50 RORD Entry
1000 SO100-2 Revenue USD 50   RORD Entry
1000 SO100-2 Contract Liability USD 100   RORD Entry
1000 SO100-2 Contra AR USD   100 RORD Entry
1000* SO100-2 Contract Liability USD 100   CM-RO Entry
1000* SO100-2 Contract Liability USD   100 CM-RO Entry
1000* SO100-2 Contra AR USD 100   CM-RO Entry
Entries marked with * are created when the CM-RO line is collected.

The amortization of the revenue contract will not be impacted by the CM-RO line in both scenarios.

Accounting entries (after 37.001.00.00)

In version 37.001.00.00, an enhancement is delivered regarding the RORD processing, which impacts the accounting behaviors of reduction order transactions. If you use the latest version of Zuora Revenue, for accounting examples of RORD transactions, see RORD and CM-RO accounting entries.