---
schema_version: "1"
id: 340edbab5b37112e8bd1f731885b4c2ef971cfa7d6c343b196c0bfee4ffa75b0
title: Carry Forward a Negative Balance on a Statement
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/sales/264-0-0/spiff_negative_balance.md
canonical_url: https://help.salesforce.com/s/articleView?id=sales.spiff_negative_balance.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 5885e3de646cf1ae14d5dee7e00fddcaf47deca0f0995e3cbafdcd93ae9aee85
description: If a sales rep's statement in Salesforce Spiff shows a negative balance and you don't want to deduct that amount from the commission payout for the current statement period, you can instead carry the negative balance forward to the next statement period.
products:
  - Sales Cloud
  - Sales Enablement
release: "264"
---
# Carry Forward a Negative Balance on a Statement

If a sales rep's statement in Salesforce Spiff shows a negative balance and you don't want to deduct that amount from the commission payout for the current statement period, you can instead carry the negative balance forward to the next statement period.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience</td></tr><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: <strong>Enterprise</strong>, <strong>Unlimited</strong>, and <strong>Developer</strong> Editions</td></tr><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available for an additional cost in: <strong>Professional</strong> Edition with Web Services API Enabled</td></tr></tbody></table>

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small permission">
        <colgroup>
          <col style="width:50%">
          <col style="width:50%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="colgroup" class="slds-cell-wrap" colspan="2" style="text-align:center;vertical-align:top;" id="d67477e76">User Permissions Needed</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="User Permissions Needed" class="slds-cell-wrap" style="vertical-align:top;" headers="d67477e76 ">To edit worksheets and create payout rules:</td>

            <td class="slds-cell-wrap" style="vertical-align:top;" headers="d67477e76 ">
              <p>A Spiff <a href="https://help.salesforce.com/s/articleView?id=sales.spiff_users_roles_and_permissions.htm&amp;release=264.0.0&amp;type=5" title="Give users the appropriate level of access so they can be successful in Salesforce Spiff, and enforce the principle of least privilege. Assign a default role to each user, or create custom roles with access to specific Spiff functionality.">user role</a> with this permission turned on.</p>
              <p style="margin-bottom:0;">Designer Configuration: Manage</p>
            </td>

          </tr>
        </tbody>
      </table>

You have a few options for handling a negative balance for the current period.

- Show the negative balance as the total statement balance for the current period, and carry the balance forward to the next period.
- Zero-out the negative balance for the current statement period, and carry the balance forward to the next period.
- Zero-out the negative balance for the current statement period but still show the negative amount for transparency, and carry the balance forward to the next period.

## Option 1: Show a Negative Balance on the Current Statement

You can show the negative balance as the total statement balance for the current period, and carry the balance forward to the next period. If you show a show balance on the current statement, there's extra work for your payroll department to ignore or zero-out the negative balance. You can manually zero-out a negative balance before sending the statement to payroll.

1. In Designer, create a worksheet.
2. Create fields that show the start and end of the previous period, so that you have a reference that changes based on the current statement period.
    
    To make sure that the dates update dynamically, use the BeginningOfPeriod and EndOfPeriod helper functions.
    
    ```
    BeginningOfPreviousPeriod = months_ago(BeginningOfPeriod, 1)
    ```
    
    ```
    EndOfPreviousPeriod = end_of_month(end_of_period(months_ago(EndOfPeriod, 1)))
    ```
3. Create a worksheet calculation that references the balance from the previous statement.
    
    ```
    SalesRepAmountFromPreviousPeriod = amounts_from(BeginningOfPreviousPeriod, EndOfPreviousPeriod, "plan_name")
    ```
    
    The `amounts_from()` function references the worksheet fields you created, and the "plan\_name" argument is the name of the plan, enclosed in double quotes.
4. Create a worksheet calculation that shows only negative balances.
    
    ```
    NegativeBalanceCarriedForward = min(SalesRepAmountFromPreviousPeriod, 0)
    ```
    
    The `min()` function references the SalesRepAmountFromPreviousPeriod worksheet calculation, compares it to 0, and returns the smaller of the numbers.
    
    - If the balance of the previous statement period is positive, this calculation returns `0`.
    - If the balance of the previous statement is negative, the negative balance is returned.
5. Create a payout rule from the NegativeBalanceCarriedForward worksheet calculation.
    1. Select the NegativeBalanceCarriedForward field and click **Create Payout Rule** from the right panel.
    2. Add the name of the payout rule that you want to show on statements, and click **Create**.

The payout rule is added to all the plan's payout rules. A negative balance on one statement period is carried forward to the next statement period. All other statements show zero if the previous statement balance is positive.

## Option 2: Zero-out a Negative Balance on the Current Statement

You can exclude the negative balance for the current statement period, and carry the balance forward to the next period. If you exclude a negative balance, there's no extra work you or your payroll department.

1. In Designer, create a worksheet.
2. Create fields that show the start and end of the previous period, so that you have a reference that changes based on the current statement period.
    
    To make sure that the dates update dynamically, use the BeginningOfPeriod and EndOfPeriod helper functions.
    
    ```
    BeginningOfPreviousPeriod = months_ago(BeginningOfPeriod, 1)
    ```
    
    ```
    EndOfPreviousPeriod = end_of_month(end_of_period(months_ago(EndOfPeriod, 1)))
    ```
3. Create a worksheet calculation that sums all of the plan's current payout rules, which determines whether the current statement total is a negative balance that requires an adjustment.
    
    Determine the fields used for calculating each of the plan's current payout rules by hovering over the total amount for each rule. Add the fields together. If the final payout comes from a datasheet field, use the `sum()` function. If the final payout comes from a worksheet field or a summary field on the datasheet, you can reference the field directly.
    
    ```
    StatementTotal = payout_rule_1_amount_field + payout_rule_2_amount_field
    ```
4. Create a worksheet calculation that shows only negative balances.
    
    ```
    CurrentPendingBalance = min(StatementTotal, 0)
    ```
    
    The `min()` function references the StatementTotal worksheet calculation, compares it to 0, and returns the smaller of the numbers.
    
    - If the previous statement balance is positive, this calculation returns `0`.
    - If the previous statement balance is negative, this calculation returns the negative balance.
5. To zero-out the statement balance, invert the negative balance.
    
    ```
    StatementNegativeBalanceAdjustment = CurrentPendingBalance * (-1)
    ```
6. Create a payout rule from the StatementNegativeBalanceAdjustment worksheet calculation.
    1. Select the StatementNegativeBalanceAdjustment field and click **Create Payout Rule** from the right panel.
    2. Add the name of the payout rule that you want to show on statements, such as Statement Negative Balance Adjustment, and click **Create**.
7. Pull the negative balance adjustment from the previous statement period as the negative balance to carry forward.
    
    ```
    PreviousStatementCarryForward = amounts_from(BeginningOfPreviousPeriod, EndOfPreviousPeriod, "plan_name", "Statement Negative Balance Adjustment") *(-1)
    ```
    
    The `amounts_from()` function references the previous period's adjustment that was made to make the amount `0`. Instead of referencing the full plan, the function references only the adjustment payout rule. To return the original balance, multiply the adjustment payout rule by `-1`.
8. To confirm the new statement total, including the negative balance that's carried forward from the previous statement period, verify that the StatementTotal calculation includes the PreviousStatementCarryForward calculation in the current statement total.

When the statement balance is positive, the final statement payout with the two new payout rules returns data normally. When the balance is negative, the balance is zeroed-out and carried forward to the next statement period.

## Option 3: Zero-out a Negative Balance but Show the Negative Amount on the Current Statement

You can zero-out the negative balance for the current statement period but still provide transparency for reps and show the negative amount with a What-If? rule. Carry the balance forward to the next period, but the negative balance doesn't affect statement totals.

1. In Designer, create a worksheet.
2. Create fields that show the start and end of the previous period, so that you have a reference that changes based on the current statement period.
    
    To make sure that the dates update dynamically, use the BeginningOfPeriod and EndOfPeriod helper functions.
    
    ```
    BeginningOfPreviousPeriod = months_ago(BeginningOfPeriod, 1)
    ```
    
    ```
    EndOfPreviousPeriod = end_of_month(end_of_period(months_ago(EndOfPeriod, 1)))
    ```
3. Create a worksheet calculation that sums all of the plan's current payout rules, which determines whether the current statement total is a negative balance that requires an adjustment.
    
    Determine the fields used for calculating each of the plan's current payout rules by hovering over the total amount for each rule. Add the fields together. If the final payout comes from a datasheet field, use the `sum()` function. If the final payout comes from a worksheet field or a summary field on the datasheet, you can reference the field directly.
    
    ```
    StatementTotal = payout_rule_1_amount_field + payout_rule_2_amount_field
    ```
4. Create a worksheet calculation that shows only negative balances.
    
    ```
    CurrentPendingBalance = min(StatementTotal, 0)
    ```
    
    The `min()` function references the StatementTotal worksheet calculation, compares it to 0, and returns the smaller of the numbers.
    
    - If the balance of the previous statement period is positive, this calculation returns `0`.
    - If the balance of the previous statement is negative, this calculation returns the negative balance.
5. Create a What-If? rule from the CurrentPendingBalance worksheet calculation so that the total doesn't account for this balance.
    1. Select the CurrentPendingBalance field and click **Create Payout Rule** from the right panel.
    2. Add the name of the payout rule that you want to show on statements, such as Current Pending Balance, and click **Create**.
    3. On the Plans tab, select the rule and turn on **What-If?**.
6. Create a worksheet calculation that references the previous period's amount from the What-If? rule.
    
    ```
    PreviousStatementCarryForward = amounts_from(BeginningOfPreviousPeriod, EndOfPreviousPeriod, "plan_name", "Current Pending Balance")
    ```
    
    The `amounts_from()` function references the previous period's negative balance.
7. To confirm the new statement total, including the negative balance that's carried forward from the previous statement period, verify that the StatementTotal calculation includes the PreviousStatementCarryForward calculation in the current statement total.
8. Create a worksheet calculation that zeroes-out a negative balance for the current period or allows a positive balance to propagate.
    
    ```
    StatementNegativeBalanceAdjustment = min(StatementTotal, 0) * (-1) + PreviousStatementCarryForward
    ```
    
    - If the current statement balance is positive, the `min()` function returns `0` and adds the previous statement's negative carried-forward balance.
    - If the current statement balance is negative, the `min()` function multiples the balance by `-1` to zero-out the current statement.
9. Create a payout rule from the StatementNegativeBalanceAdjustment worksheet calculation.
    1. Select the StatementNegativeBalanceAdjustment field and click **Create Payout Rule** from the right panel.
    2. Add the name of the payout rule that you want to show on statements, such as Statement Negative Balance Adjustment, and click **Create**.

#### See Also

- [Create a Payout Rule](https://help.salesforce.com/s/articleView?id=sales.spiff_payout_rule_create.htm&release=264.0.0&type=5 "From Salesforce Spiff Designer, create a payout rule for a commission plan.")
- [Create a What-If? Rule](https://help.salesforce.com/s/articleView?id=sales.spiff_rules_what_if.htm&release=264.0.0&type=5 "Motivate reps to close deals with What-If? rules. Show reps potential commission earnings when they meet the criteria you define in your data filter. For example, let reps see the commission they can earn if they close all pipeline deals for the period.")
- [Helper Functions in Salesforce Spiff](https://help.salesforce.com/s/articleView?id=sales.spiff_functions_helper.htm&release=264.0.0&type=5 "Helper functions in Salesforce Spiff save time and provide clarity. A helper function is interchangeable with a standard function, but uses simpler syntax so you can create logic more easily.")
- [amounts\_from](https://help.salesforce.com/s/articleView?id=sales.spiff_function_ref_amounts_from.htm&release=264.0.0&type=5 "Returns a sum of commission amounts for specific payout rules or total commission amounts from previous statement periods in Salesforce Spiff. This function is similar to amount_from() but requires a date range instead of a specific date.")
- [end\_of\_month](https://help.salesforce.com/s/articleView?id=sales.spiff_function_ref_end_of_month.htm&release=264.0.0&type=5 "Returns the last day of the month for a specific date or time value in Salesforce Spiff. The return format is YYYY-MM-DD.")
- [end\_of\_period](https://help.salesforce.com/s/articleView?id=sales.spiff_function_ref_end_of_period.htm&release=264.0.0&type=5 "Returns the last day of the statement period for a specific date or time value in Salesforce Spiff. The return format is YYYY-MM-DD.")
- [months\_ago](https://help.salesforce.com/s/articleView?id=sales.spiff_function_ref_months_ago.htm&release=264.0.0&type=5 "Returns the date that's a specified number of months before another date in Salesforce Spiff.")
- [sum](https://help.salesforce.com/s/articleView?id=sales.spiff_function_ref_sum.htm&release=264.0.0&type=5 "Calculates a total value from a list of numbers in Salesforce Spiff. This function works well with records in a data filter.")