Skip to main content

v7.23 — February 2026

Released: February 2026

Points & Calculations

Decimal-Based Point Calculation

Points are now calculated, stored, and reported using decimal values as the standard:
  • Rule engine computes points to 2 decimal places; stored with 1 decimal place (single rounding applied at the second decimal)
  • Ceiling rounding examples: 13.68 → 13.70; 13.35 → 13.40
  • Floor rounding example: 13.32 → 13.30
  • Point spoilage displays up to 2 decimal places (e.g., 0.04)
  • Stored values are used consistently across balances and reports — no additional rounding occurs during display
  • Historical data is not recalculated or migrated
Modules affected: Member balances, Reports, Rule Engine, Approval Workflow (time-bound rules), Dashboard accrual metrics, Transaction Amount, Redeem Points, Peer Transfer, API Transactions (Pay with Rewards, Cashback, BNS), Points Expiry, Communication credit events Excluded modules: Tier Bonus, Campaign Bonus, Manual Add/Remove Points, BNS Upload, Bulk Point Upload, Referral

Accrual Reversal via Bulk Upload

  • Negative values in the upload file are accepted exclusively for accrual reversals
  • All other transaction types continue to require non-negative values
  • File handling updated from “Debit – Accrual Reversal” to “Credit – Accrual Reversal”

Transaction API

Additional Loyalty Transaction Types Parameter

A new AdditionalLoyaltyTxnTypes parameter allows passing multiple loyalty transaction types in a single API call:
  • Values are comma-separated: e.g., "AdditionalLoyaltyTxnTypes": "1,8"
  • The system evaluates both LoyaltyTxnType and AdditionalLoyaltyTxnTypes together
  • Invalid or incorrect combinations return ErrorCode 204: "No Transaction details are available"
  • LoyaltyTxnType continues to accept only a single value

Reports

View All Generated Reports

All report types are now accessible from a unified view — Auto-generated, Manual, Exported, One-time, Custom, and Shared:
  • Pagination adapts based on available data; horizontal scroll enabled when columns exceed viewport width
  • Member search is enabled when the report contains Member ID, Relation Reference, or Relation Reference fields
  • Date filter is enabled when the report contains Processing Date or Enrollment Date

Empty Report Tabs Hidden

  • Report tabs (e.g., Transaction, Members) no longer appear when no data is available for that section
  • Users only see tabs with available report data

Transaction Summary Default View

  • No automatic date range is pre-selected; the system displays the latest 10 transactions by default (most recent first)
  • Helper text shown: “Showing latest 10 transactions. Select a date range to view more”
  • When a date range is applied and results exceed 10 records, pagination activates (10 per page)

Role-Based Report Sharing

  • Reports can now be shared at the role level, giving access to all users in that role
  • Individual user sharing continues to work as before
  • Reports shared to a role without “View Report” permission will only become visible once that permission is granted to the role

Persistent Column Configuration

  • Column preferences in the Member Transaction Summary are saved per user
  • Configuration persists across logouts, browser refreshes, and session timeouts
  • Default columns for first-time users: Transaction Date, Transaction Amount, Transaction Type

Four New Custom Reports

  • Expiry Report — member-level points expiry with columns for Member ID, BIN, Month, Year, Earning, Bonus Rewards, Rewards Expired, and Expiry Status
  • Projected Expiry Report — forward-looking version of the Expiry Report showing points expiring in future months (up to 3 years of schedule data)
  • Detailed Customer Profile Report — customisable profile columns with support for monthly and custom date-range generation
  • Admin User Audit Report — captures User ID (email), Activity, Date, Time, IP, Device, and Browser from the Loyalife audit trail; supports monthly and custom generation

Security

BDI Credential Encryption

  • Client credentials (Client ID, Secret Key, Access Token, Refresh Token) are now encrypted using SHA-256

Access Control

Advanced Configuration Permissions

  • Advanced Configuration is now restricted for default roles: Program Admin, Program Manager, and Customer Executive
  • User-created custom roles continue to show the Advanced Configuration permission

Rule Engine

Dynamic Segment Linkage with Rule Groups

Rule Groups can now be linked to Dynamic (Smart) Segments for automatic member eligibility:
  • When a member attribute changes (e.g., tier upgrade), a MemberProfileUpdated event triggers the Segment Evaluation Service
  • The service re-evaluates members against linked segments and updates membership automatically
  • Members become eligible or ineligible for associated Rule Groups without manual intervention
  • Constraint: Once a segment is configured to a Rule Group, it cannot be changed

Additional Improvements

  • MemberActivation API now returns specific error messages per scenario (e.g., “Member is already active”, “Member is suspended”, “Member is cancelled”) instead of generic errors
  • BNS and CRD email notifications now include an error log link so recipients can view failure reasons directly from the notification
  • Disabled template display in campaigns: disabled templates appear in a locked state with the tooltip “This template is disabled and cannot be selected”
  • Inactive Rule Groups (time-bound, expired): editing is now prevented; groups appear as read-only with an expiry message
  • Cashback requests: no daily limit — multiple cashback requests are allowed per day as long as sufficient points are available; existing Pay with Rewards restriction (one active request at a time) is unchanged
  • Max Points field now enforces integer-only input; decimal values (e.g., 10.50) are rejected
  • Loyalife branding is now optionally hideable at environment and program level via a configuration toggle