ES Loyalty 4.6 release notes
These release notes cover features introduced or completed since ES Loyalty 4.5.1.
What's in this release
- Fix for Multiple Accounts Sharing the Same Email Address (hotfix)
- Redemption Fulfillment API Automation Using Tipalti (new feature)
- Tiers — Household Status (new feature)
- Enhancement to Tier History Table for Tier Household Status (enhancement)
- Console — Transaction History Export (new feature)
- Tier Status History and Date Fields (enhancement)
- OpenSearch Deprecation Phase 1 and Phase 2 (infrastructure update)
- Reject Handling for List Targeting in Console (enhancement)
- Display Issuances Data in Console (new feature)
- Member Scoring and Intelligence — Churn Score (new feature)
Hotfixes
Fix for Multiple Accounts Sharing the Same Email Address
This is a hotfix (v4.5.1hotfix a) for the v4.5.1 release, published simultaneously with v4.6.
A pattern was identified where two or more accounts registered using the same email address. This affected a small percentage of loyalty program members and degraded their experience to the point where they risked leaving the program.
The issue was traced to how the email address locking mechanism handled differences in letter case. Email uniqueness enforcement with case-insensitivity has been implemented and applies to the following:
- Member enrollment
- Member profile updates
- Ghost card registration
Data cleansing on existing affected records was also performed as part of this fix.
New features and enhancements
Redemption Fulfillment API Automation Using Tipalti
Overview
This feature integrates ES Loyalty with Tipalti, a global payments platform. It enables clients to set up and manage direct payments to loyalty members worldwide — via methods such as direct deposit, ACH, and PayPal — as a way of fulfilling point redemptions.
Why it's valuable
This integration enables fast, compliant, and scalable loyalty redemptions worldwide, significantly reducing processing times while ensuring full auditability.
What it does
Connects ES Loyalty directly with Tipalti's global payments platform, automating end-to-end redemption flows and supporting multi-currency, multi-jurisdiction payouts with same-day processing.
How you benefit
Members enjoy faster, seamless redemptions that increase satisfaction. Your team gains efficiency, stronger compliance controls, and full transaction visibility in one streamlined system.
Details
This integration addresses the need for an automated, scalable payment solution capable of handling payments across multiple jurisdictions. Key advantages include:
- 85% reduction in processing time — from 3–5 days down to same-day processing (assuming direct deposit runs once a week)
- Enhanced compliance and auditability
- Improved member satisfaction — same-day deposits via direct deposit or ACH, compared to once-a-month cheque deposits
Payment flow:
A loyalty member initiates a redemption through the loyalty program interface (external to Exchange Solutions). The external system sends relevant data to an ES Loyalty (ESL) API endpoint. ESL validates eligibility, redeems the points, creates transaction records, assembles a payment batch, and transmits it to Tipalti for processing. A CSR can view transaction and payment details in both Tipalti and the ESL platform, ensuring a complete audit trail.
Changes to ES Loyalty to support this flow:
- Enhancements to CUX APIs to integrate with the Tipalti API and provide additional information
- Updates to the system processor to support and process payments data
- New messaging capabilities for different payment states:
Submitted,Completed,Deferred,Cancelled, andError - Access to payment audit information from the Transaction view on a member's details page
- Payments included in member transaction histories
- Database changes to support payments-related data
Tipalti documentation:
| Resource | Link |
|---|---|
| REST API Introduction | Introduction |
| Create a payee | Create payee |
| Get a list of payees | Get list of payees |
| Webhook setup | Setup |
| Webhook events | paymentSubmitted, paymentCompleted, paymentDeferred, paymentCancelled, paymentError |
| Webhook testing and copy requests | Test webhooks and copy requests |
Tiers — Household Status
Overview
This feature extends individual member-based tier qualification to the household (or group) level. Marketers can configure their loyalty programs to target and incentivize households of members, rather than only individuals. While "households" is the B2C term used in ES Loyalty, this feature is expected to be of greatest interest to B2B clients.
Why it's valuable
By recognizing collective household value, this feature strengthens loyalty engagement across family or group accounts and drives higher overall program participation.
What it does
Aggregates spend from all household members to determine tier status, applying defined business rules for rollovers, current-period qualification, member departures, returns, and overrides.
How you benefit
You capture more spend by rewarding group loyalty, while members benefit from faster tier advancement and greater program value through shared household contributions.
Details
Tier status qualification is based on aggregated household spend, calculated simply and transparently to reflect total group value. The feature is particularly impactful for clients with large households.
Business rules:
- Past period spend from all household members is considered for tier rollover status, regardless of when they joined.
- Current period spend from all household members is considered for the current period's earned tier status, regardless of when they joined.
- Spend from members who depart a household no longer contributes to that household's past or current period calculations.
- A member departure may result in a downward revision to the household's rolled-over or current tier status. Negative member experiences can be mitigated using manual tier adjustment.
- Returns, adjustments, and overrides to tier contribution trigger recalculations to both the household's tier rollover status and the current period's earned status.
For comprehensive use cases, see the Detailed Design page linked below.
Enhancement to Tier History Table for Tier Household Status
Overview
This feature makes additional audit information available to users of internal data, giving clients full visibility into the historical tier progression of household tier members.
Why it's valuable
It enables loyalty marketers to analyze member tier movement, promotions, and downgrades with precision over time.
What it does
The new dwhf_account_tier_history table records every tier phase for each member with contiguous, non-overlapping date ranges, creating a complete historical view of tier changes.
How you benefit
You gain actionable insights into tier dynamics to refine program design, improve retention strategies, and identify opportunities to maximize member lifetime value.
Details
Previously, only a single (latest) tier record per member was displayed, making it difficult to track tier progression over time. The new dwhf_account_tier_history dynamic table and DWH feed address this by maintaining one record per tier phase per account, with non-overlapping, contiguous date ranges. This structure supports analysis of tier transitions and their timing — for example, member promotions or downgrades within a program year.
Console — Transaction History Export
Overview
This feature enables Console users to download a member's complete transaction history, typically for audit or troubleshooting purposes.
Why it's valuable
It provides instant access to a member's full transaction history, empowering loyalty teams to analyze and respond quickly to member activity.
What it does
With a single click in the Console, users can generate and download a CSV file containing all of a member's transaction records — whether a handful of purchases or tens of thousands — complete with detailed fields and values.
How you benefit
You save time with streamlined data access, gain flexibility to run deeper analysis, and equip your teams to resolve member inquiries and optimize program performance more efficiently.
Details
The export is initiated from the Transactions tab on the member details page. When the job completes, a Download CSV link appears for the user to save the file locally.
The feature supports many transaction types and includes a large number of transaction-related fields and values. It is available to all clients but must be enabled both at the client configuration level and for specific users via permissions.
Tier Status History and Date Fields Available
Overview
This feature makes additional audit information available to clients, giving them a complete view of each member's historical tier progression — including tier start and end dates, and program period dates.
Why it's valuable
It provides loyalty teams with the full account history of tier status records needed to understand how members have progressed through the program over time.
What it does
Displays all tier records for a member, rather than a single (latest) record. Each record includes tier start and end dates as well as program period start and end dates.
Details
Previously, only one record per member was displayed. Following a client request, we now display the full account tier history. Multiple records are generated for members whose tier status has changed. The data is structured as follows:
| EXTERNALIDENTIFIER | TIERCODE | NEXTTIERCODE | TIERSTART | TIEREND |
|---|---|---|---|---|
| XY123456 | TIER1 | TIER2 | 1/1/25 | 6/11/25 |
| XY123456 | TIER2 | TIER3 | 6/12/25 | 12/31/25 |
Infrastructure updates
OpenSearch Deprecation Phase 1 and Phase 2
Overview
This backend update replaces AWS OpenSearch with Snowflake for list targeting, addressing persistent quality issues with the previous technology.
Why it's valuable
Enterprise marketers need fast, scalable, and reliable targeting capabilities to execute high-performance loyalty campaigns with precision and confidence.
What it does
Transitions targeting list file processing from AWS OpenSearch to Snowflake, improving query performance, scalability, and future extensibility.
How you benefit
You get enhanced reliability and speed for profile targeting operations, enabling more responsive and efficient campaign execution — with no changes required to your workflows.
Details
Early in ES Loyalty's development, member targeting was migrated to a SQL interface to standardize member queries, while banner and promotion searching used native queries. As AWS transitioned to offering OpenSearch, the platform adopted it for these operations.
Over time, issues emerged with OpenSearch around complexity, cluster size, cost, data mapping, and data synchronization. As a result, promotion and banner search functionality was transitioned to the Snowflake data warehouse. Once fully implemented and performance tested, OpenSearch was deprecated and its code removed from the codebase.
These changes are not visible to clients — they occur entirely in the backend — but significantly improve scalability, maintainability, and system cost.
Console enhancements
Reject Handling for List Targeting in Console
Overview
This enhancement improves the CSV product upload workflow for list targeting, giving clients immediate visibility into rejected product records during uploads.
Why it's valuable
It reduces errors and eliminates time-consuming manual checks against external systems by showing clients exactly which records were rejected and how many.
What it does
During CSV product uploads, the system now distinguishes between valid and rejected SKUs, providing a clear count of each so clients can quickly identify and resolve data issues.
How you benefit
You get faster, more accurate targeting with fewer errors, saving time and improving confidence in your product data for loyalty campaigns.
Details
Previously, when a client uploaded a list of product SKUs, the Count field on the upload displayed the total number of records — including both valid and rejected entries — without distinguishing between them. This meant a rejected SKU (for example, 80895 entered instead of 89805) would be silently included in the count, requiring the client to manually compare each SKU against internal data to find the discrepancy.
The count now shows a split between valid and rejected records, making data issues immediately apparent.
Display Issuances Data in Console
Overview
This feature adds an Issuances tab to the member details page, giving loyalty marketers and service teams a centralized view of all vouchers and similar issuances tied to a member.
Why it's valuable
It improves transparency and support efficiency by surfacing reward details directly within the member profile.
What it does
The new Issuances tab displays key details for each issuance — including issue date, expiration, type, status, code, value, and notes — in a paginated table with error handling.
How you benefit
You get instant visibility into a member's vouchers and rewards, enabling faster issue resolution, better customer experiences, and more informed loyalty management.
Details
The Issuances tab appears on the member details page, next to the Transactions tab. It only displays if configured to be shown. The table includes the following fields:
| Field | Description |
|---|---|
| Issued Date | The date and time the issuance (such as a voucher) was issued |
| Expiration Date | The date and time the issuance expires |
| Type | The type of issuance, for example, "Voucher" |
| Status | The current status: Available or Expired |
| Code | A unique identifier for the issuance |
| Amount | The value of the issuance in dollars |
| Notes | Any additional short notes about the issuance |
The most recent issuances appear on the first page, with a default display limit of 20 (up to 100 per page). Pagination controls are available for additional pages. If no issuances exist, the tab displays No eligible issuances. Error messages are also shown on this tab if retrieval fails.
Member Scoring and Intelligence
Member Scoring and Intelligence — Churn Score
Overview
This release introduces the first machine learning–derived probabilistic metric in ES Loyalty: a modeled churn score that predicts the likelihood of a member becoming disengaged. This release also includes general quality improvements to the member scoring creation workflow.
Why it's valuable
Your marketing team can instantly segment loyalty members based on churn probability through a guided AI interface, enabling smarter audience targeting and more relevant campaigns.
What it does
This feature helps you create and manage segmentation scores for churn probability. An AI engine guides you through the creation process, including scoring methods, segment options, and saving results.
How you benefit
Member Scoring and Intelligence puts advanced segmentation in the hands of every marketer — no SQL or data science required. You get quick access to meaningful member insights, reusable scoring models, and campaign-ready segments that improve targeting and drive results.
Details
In the context of this loyalty program, churn does not mean a member has formally left the program. It means the member is no longer engaged and has fallen below a threshold of qualifying activities, such as making purchases that earn rewards. The Churn Score model matches a threshold in days without purchase to a minimum activity level to predict which members are at risk.
How the model works:
Generative AI identifies potential churn members through pattern recognition across different member groups. The model combines several AI metrics to balance inherent tradeoffs and improve the accuracy of results:
| Metric | Description |
|---|---|
| Accuracy | The proportion of total predictions that are correct. Simple and intuitive, but can be misleading with imbalanced data — for example, a model that always predicts "not churn" in a dataset that is 95% non-churners would be 95% "accurate." |
| Recall | Of all actual churn cases, how many did the model correctly identify? High recall means the model is effective at catching at-risk members. |
| Precision | Of all members the model predicted as churn risks, how many were actually at risk? High precision means fewer wasted rewards on members who were not going to churn. |
| F1 | The harmonic mean of precision and recall. Balances both metrics when false positives and false negatives both carry a cost — critical for saving members while controlling campaign spend. |
| AUC (Area Under the Curve) | Compares members unlikely to churn against those likely to churn, indicating how well the model ranks members by risk. Enables targeting of the highest-risk segment rather than all members. |
Churn threshold guidance:
When configuring the model, the days-without-purchase threshold determines how the model defines churn. The AI interface provides the following guidance:
| Threshold | Use case |
|---|---|
| 15–20 days | Captures early warning signs; suitable for high-frequency shoppers, but may produce more false positives |
| 25–30 days | Aligned to industry averages; effective for balancing proactive retention and targeting accuracy |
| 45–90 days | Focuses on clearly lapsed members; fewer false positives, but intervention may be less timely |
| 90+ days | Reserved for very infrequent purchase patterns; often too late for preventative retention efforts |
Sample results:
In a sample run using a 195-day inactivity threshold, scoring was based on time since last visit, recent spend, and transaction activity over the prior six months. The model produced the following segmentation:
| Segment | Churn score range | Members |
|---|---|---|
| High Risk | > 65% | 37.5% of members |
| Medium Risk | 40%–65% | 0.8% of members |
| Low Risk | < 40% | 61.7% of members |
The model achieved 93.6% accuracy with an F1 score of 0.95, and an AUC of 0.995 — indicating strong ability to distinguish between members likely and unlikely to churn.
Example targeting strategies using churn scores:
- Exclude members who have purchased within a defined recent window
- Target members who have not purchased recently and are not digitally engaged — with tailored communications and offers to earn or redeem rewards
- Target members who show specific behavioral patterns and hold a particular range of point balances — with offers in product categories they have historically spent in, or with generic offers designed to reinforce or change behavior