Welcome to Zuora Product Documentation

Explore our rich library of product information

Contract Asset Netting

The accounting entries booked in Zuora Revenue are always on the Contract Liability side unless the Right to Bill flag is set to Yes for the line. In this circumstance, for the balance sheet to be correctly reported, the over-recognized amount needs to be moved from contract liability (CL) to contract asset (CA). To accomplish this goal, you must run the netting process in Zuora Revenue. The netting process can be done at two levels:

  • Transaction line level The netting entries are created against each line for the revenue contract that is eligible for the netting process.
  • Application level The MJE functionality is used to book the entries for the netting amount.
Note:
  • Only the revenue contracts that are not put on hold can participate in the netting process.
  • Revenue contracts that are summarized by Real Time Summarization.

Required system configuration

The netting process requires the following setups in Zuora Revenue:

  • Setups > Application > Profiles

    • The ALLOW_NETTING_PROCESS profile is set to Yes to enable the netting process.
    • The NETTING_PROCESS_LEVEL profile is specified to determine whether the netting process is done at the application level or transaction line level.
    • The NETTING_ON_NEGATIVE_RC profile determines whether to create netting entries for the revenue contract that has all negative lines.
    • The NETTING_RC_MJE profile specifies whether to include MJE lines in the revenue contract for CA/CL netting.
    • Real-time summarization is a prerequisite for the automated netting process, which is applicable from 37.014 and onwards.
Note:
  • 37.014.00.00 onwards, the system automates the run of CACL Netting based on the activities of the RC throughout the period. Previously, CACL Netting determinations were triggered manually during the month-end process through a job for the entire period. The ALLOW_NETTING_PROCESS profile and LTST Enabled radio button must be configured to No if you do not wish to use the automated Netting feature. Contact Zuora Global Support if you cannot configure the setting to No.
  • Setups > Application > Revenue Books

    • clipboard_ee5f04402ec77cecd8a5d0e5ae39ad692.png
  • Setups > Application > Accounting Setup > Account Type

    • The Include In Netting switch is toggled to Yes for each account that will participate in the netting process.
  • Setups > Security > Roles

    • The role of the user who will start the netting process has full access to the Netting Process sub-menu in the role privilege settings.

Procedure

Complete the following steps to start the netting process in the UI:

  1. Navigate to Reports > Schedule Jobs.
  2. Click the add icon (+) . The Schedule Job/Job Groups window is displayed.
  3. In the Schedule Program tab, select RevPro3.0 Netting Process as the program name and specify other fields as necessary.
  4. Click the Program Parameters tab to specify the required parameters.
  5. To start the job, click Submit Job.
  6. (Application level only) If netting is enabled at the application level, after the Rev3.0 Netting Process program is complete, navigate to Accounting > Netting Process and then click Perform Netting.

Processing logic

For the current open period, Zuora Revenue determines whether the revenue contract is in CL or CA position for the account types with netting enabled based on the following rules:

  • If the recognized revenue amount is more than the invoice amount (Cr - Dr < 0), the revenue contract is in CA position.
  • If the recognized revenue amount is less than the invoice amount (Cr - Dr > 0), the revenue contract is in CL position.
  • Whenever all the lines in an RC are 'Negative', such a case is an exception to the CA/CL Calculation formula. In other words, when all the lines in an RC are negative, it will always be in CL status.

Netting currency

When there is more than one transaction currency in the revenue contract, the Lowest Common Currency is identified for all related account types and used for the netting process. The exchange rate of each line is used to identify the value in the lowest common currency, which can be one of the following:

  • Transaction currency
  • Functional currency
  • Reporting currency

Scenario - Netting in transaction currency

In the following scenario, the transaction currency of all lines is the same. The lowest common currency is transaction currency, USD. The net contract liability amount (Cr - Dr) in USD is -1000, which is negative. This revenue contract is eligible for netting.

Company CodeRC IDLine IDAccount TypeCr - DrT.currF.currF.Ex.RateG.Ex.RateEx. Rate DateCr - Dr(T.curr)
1001211

Contract

Liability

-1000USDUSD1.001.0001/01/2019-1000
1001211

Adjustment

Liability

-300USDUSD1.001.0001/01/2019-300
1001212

Adjustment

Liability

300USDUSD1.001.0001/01/2019300

Scenario - Netting in functional currency

In the following scenario, all the lines have the same functional currency. The lowest common currency is the functional currency, USD. The net contract liability amount in USD is -1250, which is negative. This revenue contract is eligible for netting.

Company CodeRC IDLine IDAccount TypeCr - DrT.currF.currF.Ex.RateG.Ex.RateEx. Rate DateCr - Dr(F.curr)
1001221

Contract

Liability

-1000USDUSD1.001.0001/01/2019-1000
1001221

Adjustment

Liability

-300USDUSD1.001.0001/01/2019-300
1001222

Contract

Liability

-1000SGDUSD0.251.0001/01/2019-250
1001222

Adjustment

Liability

300SGDUSD1.001.0001/01/2019300

Scenario - Netting in reporting currency

In the following scenario, the transaction currencies of the lines are all different. As a result, the reporting currency is used in netting. The net contract liability amount in reporting currency is -700, which is negative. This revenue contract is eligible for netting.

Company CodeRC IDLine IDAccount TypeCr - DrT.currF.currF.Ex.RateG.Ex.RateEx. Rate DateCr - Dr(R.curr)
1001231

Contract

Liability

-1000USDUSD1.001.0001/01/2019-1000
1001231

Adjustment

Liability

-300USDUSD1.001.0001/01/2019-300
1001232

Contract

Liability

-1000SGDUSD0.251.0001/01/2019-250
1001232

Adjustment

Liability

300USDUSD1.001.0001/01/2019300
1001233

Contract

Liability

-1000SGDSGD0.251.0001/01/2019-250
1001233

Adjustment

Liability

300SGDSGD1.001.0001/01/2019300

Netting at transaction line level

When netting is done at the transaction line level and the revenue contract is in CA position, different actions are taken on each transaction line, depending on the net CL amount (Cr - Dr) of the line:

  • If Cr - Dr = 0, no accounting entry is created for the line.
  • If Cr - Dr > 0, the CA account gets credited and the balance sheet account type is Debit.
  • If Cr - Dr < 0, the CA account gets debited and the balance sheet account type is Credit.

For example, there is one revenue contract 121 in the system.

RC#Company CodeCA AmountCL AmountT.CurrF.CurrEx.Rate.DateF.Ex.RateG.Ex.Rate
1211001000USDUSD01/01/20191.001.00

After the netting process is run at the transaction line level, the accounting entries are created as follows:

Note: 37.014.00.00 onwards, during the period, the system computes Netting and creates an Accounting schedule. You are only required to run a Netting job to complete activities for applicable revenue contracts. This is applicable if you have configured the system to perform an automated Netting process.
Company CodeRC IDLine IDAccounting TypePeriodDrCr
1001211Contract AssetJAN-1910000
1001211Contract LiabilityJAN-191000
1001211Contract AssetJAN-19 300
1001211Contract LiabilityJAN-19 300
1001212Contract AssetJAN-19 300
1001212Contract LiabilityJAN-19 300

Netting at an application level

When netting is done at the application line, the top-sided journal entries are created for the CA amount.

For example, there is only one revenue contract 121 in the system.

C#Company CodeCA AmountCL AmountT.CurrF.CurrEx.Rate.DateF.Ex.RateG.Ex.Rate
1211001000USDUSD01/01/20191.001.00

Zuora Revenue will book the following MJE:

JE HeaderJE Line#T CurrF CurrEx. Rate DateF. Ex RateG. Ex RateAmount
JE-1251USDUSD01/01/2019111000

After MJE is approved, the following schedules are created.

Company CodeAccounting TypePeriodDrCr
100Contract AssetJAN-1910000
100Contract LiabilityJAN-191000
100Contract AssetFEB-191000
100Contract LiabilityFEB-191000
Note: 37.014.00.00 onwards, during the period, the system computes Netting. You are only required to run a Netting job and create MJE for Netting. This is applicable if you have configured the system to perform an automated Netting process.

FAQs on Automated Netting process

Q : What is the frequency of the automated Netting?

A : The system triggers the automated Netting once a day during non-peak hours of the PST time zone.

Q : Which reports are impacted during the period with the automated Netting process?

A : While there is no impact on the RC RollForward report, the Netting/LTST report will display the output based on the last automation execution.

Q : What is the impact on month-end user steps of automated Netting?

A : You will run the same jobs and processes. The execution time will be faster as it now runs in incremental mode.

Q : How do I validate the completeness of Netting execution?

A : Optionally run the select * from rpro_rtp_wi_header_g where status = 'NEW'; query from Data query utility before closing the period to ensure no RCs are showing up in the queue

Q : During period close & open, will the automation still run?

A : No, the automation is incompatible with the Period Close and Open Summarization. The automation will run only when the period status is Open.

Q : Can I run Netting for an entire period?

A : To run Netting for an entire period, configure Include all RCs parameter to Yes.

Q : What happens if Transfer Accounting is performed daily or on weekly basis?

A : The old netting schedules will be reversed, and new schedules will be created for the new amount