---
schema_version: "1"
id: c63ddf8f6f7939ef2e2bf893db8a328532a6d362f7d76c03bf36e2c4138892aa
title: Expire Fixed Non-Qualifying Points by Using Aggregation Ledgers and Traceable Ledgers
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/xcloud/264-0-0/loyalty_expire_aggregated_traceable_fixed_nqp_dpe.md
canonical_url: https://help.salesforce.com/s/articleView?id=xcloud.loyalty_expire_aggregated_traceable_fixed_nqp_dpe.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: e03455b48b8631df274a69a8e62dfed0781b76bb547cd76d04a758206d8dd731
description: Use the Expire Fixed Non-Qualifying Points Using Aggregation Ledgers and Traceable Ledgers Data Processing Engine definition to expire fixed-type, non-qualifying points for members and currencies without pending traceability ledgers. Run the definition to expire member points regardless of whether you’re consolidating member points in real time or in batches.
products:
  - Loyalty Management
release: "264"
---
# Expire Fixed Non-Qualifying Points by Using Aggregation Ledgers and Traceable Ledgers

Use the Expire Fixed Non-Qualifying Points Using Aggregation Ledgers and Traceable Ledgers Data Processing Engine definition to expire fixed-type, non-qualifying points for members and currencies without pending traceability ledgers. Run the definition to expire member points regardless of whether you’re consolidating member points in real time or in batches.

### 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: Lightning Experience in&nbsp;<strong>Enterprise</strong>,&nbsp;<strong>Performance</strong>, <strong>Developer</strong>, and&nbsp;<strong>Unlimited</strong>&nbsp;Editions that have Loyalty Management enabled</td></tr></tbody></table>

The definition uses the expiration date of the Loyalty Aggregated Point Expiration Ledger records to determine the number of fixed-model, non-qualifying points to expire. An input variable in the definition lets you specify the loyalty program that you require to expire points for. The definition aggregates expirable points whose expiration date is between the last run date and the current run date for members and currency without pending traceability ledgers.

After calculating the number of points to expire from the members' point balances, the results are written back to these objects:

 
| Object | Writeback Result |
| --- | --- |
| Loyalty Aggregated Point Expiration Ledger | Changes the status of the records that the current run expires points to Inactive. |
| Transaction Journal | Creates a unique record for each member whose points are expiring. |
| Loyalty Ledger | Creates Expiry type records to expire points from members' point balances. The records are associated with the members’ Transaction Journal records. |
| Loyalty Member Currency | Updates members' point balances after deducting the expired points. |

## Input Variables

 
| Input Variable Name | Description |
| --- | --- |
| Loyalty Program Name | The name of the loyalty program for which the Data Processing Engine definition is run. |
| Last Run Date | The date when this Data Processing Engine definition was last run. This date helps determine the number of points that must be expired by a run. This date is updated in the Last Points Aggregation Date field of the Loyalty Member Currency records. |

## Nodes

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:33.33333333333333%">
          <col style="width:33.33333333333333%">
          <col style="width:33.33333333333333%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d29677e190">Node Name</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d29677e193">Node Type</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d29677e196">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">
              <ul>
                <li>Loyalty Aggregated Point Expiration Ledger</li>

                <li>Loyalty Member Currency</li>

                <li>Loyalty Program</li>

                <li>Loyalty Program Currency</li>

                <li>Traceability Loyalty Ledgers</li>

              </ul>
            </td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Data Source</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Objects used as data sources to expire fixed-model non-qualifying points for
              members.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Find Pending Traceable Ledgers</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Formula</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Finds the pending traceable ledgers.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Aggregate Pending Trace Ledgers by Member and Currency</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Group and Aggregate</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Aggregates the pending traceable ledgers that belong to the specified member
              and currency.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Join Loyalty Ledgers and Pending Traceable Ledgers by Member and
              Currency</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Join</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Joins the loyalty ledgers and the pending traceable ledgers that belong to the
              specified member and currency.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Filter Ledgers without Pending Traceable Ledgers by Member and Currency</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Filter</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Filters the ledgers belonging to the specified member and currency that don't
              have any pending traceability ledgers.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Add Loyalty Program Name to Program Currency</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Join</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Adds the loyalty program name to the loyalty program currencies.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Add Loyalty Program Details to Aggregated Point Expiration Ledgers</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Join</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Adds the name and ID of the loyalty program, and the currency type and
              expiration model of the loyalty program currency to the aggregated point expiration
              ledgers.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Filter Active Aggregated Point Expiration Ledgers</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Filter</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Filters active aggregated point expiration ledgers with fixed model
              non-qualifying points for the loyalty program.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Add Loyalty Member Currency Details to Active Aggregated Ledgers</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Join</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Adds the ID, last expiration process run date, points to expire, points
              balance, total points expired, and total points redeemed of the loyalty member
              currency to the active aggregated point expiration ledgers.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Get Active Aggregated Point Expiration Ledgers with Points to Expire</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Formula</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Identifies active aggregated point expiration ledgers that contain points to be
              considered for expiration.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Update Last Run Date</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Formula</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Validates if the last run date is a future date and corrects it by setting any
              future date to the current date.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Compare Points Expiry Date With Updated Run Date</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Formula</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Validates if the points expiry date is earlier than the updated last run
              date.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Filter Active Aggregated Point Expiration Ledgers with Points Yet to
              Expire</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Filter</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Filters active aggregated point expiration ledgers that contain points whose
              expiration date is on or before the run date.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Calculate Points to Expire from Aggregated Ledgers and Update Status</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Formula</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Calculates the number of points that must be expired from the aggregated point
              expiration ledgers and updates their status to Inactive.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Update Loyalty Aggregated Point Expiration Ledgers</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Writeback Object</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Updates the status of existing aggregated point expiration ledgers, for which
              points have expired, to Inactive.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Aggregate Points to Calculating Points for Expiry</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Group and Aggregate</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Aggregates the total ledger points, the points that must be expired, the points
              that have already expired, and the total points redeemed. These aggregated points
              help determine the number of points that must be expired.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Calculate Total Points That Can be Expired</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Formula</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Calculates the total number of points that can be expired.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Calculate Total Expired Points</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Formula</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Calculates the total number of points that have already expired. This node also
              determines other values that must be updated by a run.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Calculate Points to Expire</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Formula</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Calculates the total number of points that must be expired by a run.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Check Whether More Than Zero Points are to Expire</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Filter</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Checks whether one or more points must be expired by a run.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Create Loyalty Ledgers</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Writeback Object</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Creates loyalty ledgers to expire member’s fixed model non-qualifying
              points.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Create Transaction Journals</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Writeback Object</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Creates transaction journals to expire member’s fixed model non-qualifying
              points.</td>

          </tr>
          <tr class="">
            <td data-label="Node Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e190 ">Update Loyalty Member Currency</td>

            <td data-label="Node Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e193 ">Writeback Object</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d29677e196 ">Updates loyalty member currencies with the total number of points that have
              expired and the total number of points that must be expired later based on their
              expiration date. The last expiration process run date is also updated.</td>

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