Skip to main content

Points Reporting

Learn how to schedule and download Points Reports in AIQ, understand report contents by type, and use audience-based reporting for loyalty financial data.

Updated this week

Background

Points Reports provide detailed financial data about loyalty point activity across your stores, personas, and individual transactions. These reports help you track point accrual, redemption, expiration, and overall program performance.

ℹ️ Note: Access to Points Reporting requires the Finance permission. Contact your administrator if you do not see this section in your dashboard.


Schedule a Points Report

You can schedule Points Reports to run automatically on a recurring basis. Scheduled reports are delivered to your email or made available for download in the dashboard at the configured interval.

  1. Navigate to Settings > Alerts & Reports > Points Reporting in your AIQ Dashboard.

  2. Select a date, frequency, and input your recipients' emails.

  3. You can optionally toggle the "Report by store" to see the breakdown by each store or the "Report by persona" to see the breakdown by persona.

    1. Note: By store breakdowns do not contain points that are unassignable (meaning no favorite store) to a specific store (e.g. Boosted or manually adjusted points by team members)

  4. Save


Download a Points Report

To download a Points Report on demand:

  1. Navigate to Settings > Alerts & Reports > Points Reporting

  2. Scroll down to the Monthly Financial Report Vault

  3. Locate the report you wish to download and click the link to download.

    1. You can download either the report by Store or by Persona.


Store Report by Month

Points un-assignable to a specific store: Points for customer that don't have a favorite store assigned.

  • Starting Points starting_points: any event prior to the start date of the report is put here

  • Month delta month_delta: the difference between the starting points total of the current month vs the ending points total of the previous month.

    • Why is there a points difference from one month to the next? Loyalty Reports are generated monthly. There may be changes in points totals between the first and last day of the month that cannot be accounted for elsewhere in the report. Examples:

      • Some persona merges and unmerges

      • AIQ loyalty settings adjustments

      • POS/Ecom delays or updates

      • Changes in data mapping to stores

  • Points' liabilities per store are fluid based on a persona's favorite store. Customers can manually assign their favorite store or be auto-assigned based on their purchase history. If a customer's favorite store is updated (manually or automatically) their points total will be un-assigned from the previous store and assigned to the new location.

  • Legacy Points legacy_points: legacy point values (raw file import, pos import)

  • Points Earned points_earned: from sales, collectibles, and visits

  • Points Boosted points_boosted: from boosts and referral sales

  • Points Adjusted points_adjusted: manual adjustments

  • Points Multiplied points_multiplied: points total added from audience transaction multiplier(s)

  • Points Blocked points_blocked: points added to stop customers from becoming points negative

  • Points Redeemed points_redeemed: redemptions

  • Points Expired points_expired: any points that have expired (if there is a point expiration date)

  • Points Net points_net: legacy+earned+boosted+adjusted+multiplied+blocked-redeemed-expired

  • Ending Points ending_points: sum of all points adjustments and updates that occurred during the month, or ending balance of total points

Persona Report by Month

  • First Name first_name: First name of the persona.

  • Last Name last_name: Last name of the persona.

  • Favorte Store fav_store: Favorite store ID for the persona.

  • Favorite Store State fav_store_state: State location of the favorite store.

  • Email email: Email address of the persona.

  • Mobile Phone mobile_phone: Mobile phone number of the persona.

  • Home Phone home_phone: Home phone number of the persona.

  • SRC Ids src_ids: Source identifier for the persona.

  • Age age: Age of the individual.

  • SMS Opt-In allowed_sms: Whether persona is opted into SMS communications.

  • Opt-Out time optout_time: time in: time/date the customer opted out of communications with your store

  • Email Opt-In allowed_email: A boolean indicating if email communication is permitted for the individual.

  • Push (Mobile) Opt-In allowed_push: A boolean indicating if push notifications are permitted for the individual.

  • Direct Mail Opt-In allowed_direct_mail: A boolean indicating if direct mail communication is permitted for the individual.

  • Voice Drop Opt-In allowed_phone: A boolean indicating if phone calls are permitted for the individual.

  • Loyalty Number loyalty_number: The loyalty program number associated with the individual.

  • Loyalty Status loyalty_status: The status of the individual's loyalty program membership.

  • Loyalty Join Date join_date: The date the individual joined the loyalty program.

  • Starting Balance starting_balance: Starting balance of points for the month.

  • Accrued Points accrued: Points accrued for the month.

  • Redeemed Points redeemed: Points redeemed for the month.

  • Expired Points expired: Points expired for the persona this month.

  • Adjusted Points adjustments: Manual and AIQ adjustments made to the personas points balance.

  • Point Modifiers point_modifiers: Audience based points modifiers (boost/mutipliers/etc.) for the month.

  • Spend spent: Amount the persona spent in $.

  • Ending Point Balance ending_balance: Ending balance of points for the month.

  • Date of Last Sale in Range date_of_last_sale_in_range: Date of the last sale made to the persona within the timeframe of the report:

    • If the last sale was within the timeframe of the report, it will show a date in this column

    • If the last sale was prior to the timeframe of the report, it will show as blank.

  • Date of Last Sale All Time date_of_last_sale_all_time: Date of the last sale for this persona all time (not restricted to the timeframe of the report)

  • Merged Ids merged_ids: List of persona IDs merged into the current active persona.

Detailed Report by Month

  • uid: A unique identifier for the AIQ account.

  • contact_id: A unique identifier for the contact.

  • source_id: An identifier indicating the source, which sometimes includes a specific tag (e.g., 43401586:::HelloHigh).

  • platform: The platform from which the data is sourced (e.g., POS, file upload, etc.).

  • receipt_id: A unique identifier for the receipt, applicable for certain transactions.

  • fav_store_id: An identifier for the favorite store attached to the event.

  • event: The type of event recorded (e.g., sale, redemption, legacy).

  • "start" prefix identifies the starting points for the month for the associated contact ID

  • assigned_store_id: The identifier for store the event has been assigned to.

  • point_value: The point value associated with the event.

  • timestamp: The timestamp of the event, which is in Unix epoch time.


Points Reports Generated via Audiences

Points Reports can be pulled for specific Audiences to show points totals for Personas who are currently in the audience at the time the report is run, regardless of the date range ran. This means that Points calculations and reporting generated through the Audience Builder will retroactively change as merges occur.

The logic reflected in the Points Reports generated via Audiences reflects the current logic in the account and does NOT reflect the logic in the account for the time frame in question. Points Reports generated multiple times for a specific audience will vary over time and will not remain consistent.

Because Points Reports generated for audiences will inherently change over time, they are considered dynamic and should NOT be used to determine the financial liability from outstanding loyalty points.

Examples of changes in historical audience Points Reports (and why they should NOT be utilized):

Change in Expiration Logic

  • Loyalty Program begins Jan 1, 2022

  • Expiration Logic is Changed on June 1, 2022 and applied retroactively

  • However, from Jan 1 2022 through May 31st, 2022, that expiration logic was not implemented. Therefore, actual financial liability of usable loyalty points during Jan 1 2022 through May 31st, 2022 should NOT incorporate expiration logic as that logic did not exist at that time.

  • However, Audience Points Report WILL incorporate the expiration logic from Jan 1 2022 through May 31st, 2022 as Audience Points Reports utilize the EXISTING logic for the historical timeframe and NOT the historical logic when reporting on the historical timeframe.

Merges

  • In August 2022, I was incorrectly merged with an unrelated Persona as the staff was using Dummy Contact Information when collecting contact information at check out. This resulted in me having 300 points for August 2022.

  • However, in October, it was discovered that I incorrectly was merged with another unrelated individual. So, in October 2022 I was unmerged resulting in me having a remaining point balance of 200 points (as 100 points were a result of the ‘bad merge’ and were therefore removed once the bad merge was corrected).

  • If the August 2022 report is regenerated after October 2022, my outstanding point balance will reflect my ‘un merged’ account with 200 points instead of the ‘merged account’ with 300 points that was seen the first time the report was generated. This would cause variable financial liability as a result of the variable outstanding point balances seen within the same report, generated at different times (pre Aug 202 VS post Oct 2022).

Points Reporting FAQs

How do members earn points?

  • Transactions: [total spent on transactions] x [point accrual ratio]

  • Visits: [number of visits] x [point per visit]

  • Manual Adjustments: When a staff member manually adds or subtracts points from an account.

  • API-driven Integration Partners: Connected integrations can cause points to be added/subtracted.

How do I verify the points report?

  • IF your POS sends AIQ Transcation IDs:

    • You can access the discounts and the transactions they were applied to via the API.

  • IF your POS does NOT send AIQ transaction IDs - or you use “Groupon style” redemption methods (e.g. The customer shows staff discounts and redeems via phone and not directly in the POS):

    • You will not be able to tie redemptions to exact sales within AIQ.

    • An alternative is to pull discount usage from your POS directly and match it to UTC timestamps from redemptions that occurred within your AIQ ledger. This can be done by downloading the CSV on the Analytics > Members Club tab.


On the points report, why would points multiplied be more than points earned?

Points Earned is from sales, collectibles, and visits only. Points Multiplied is an audience multiplier. So more points were earned and are eligible for multiplication than earned via standard methods (sales, collectibles, visits).

If you are looking for the total, Points Net is the total change from the previous month (including subtracting points redeemed)

points_net: legacy+earned+boosted+adjusted+multiplied+blocked-redeemed-expired


How does the meaning of “Legacy Points” differ between Loyalty Reporting and Expiration settings?

  • In Loyalty Reporting: “Legacy points” here usually means points that existed before the current loyalty tracking period or before a loyalty program changeover. They’re included in the total for historical accuracy but may not behave like new points in terms of expiration.

  • In Expiration / Expire All Logic: In this context, “legacy points” refers to older points carried over from before the current expiration rules were applied. They might be expired in bulk when doing an “expire all” action, or in some setups, they’re excluded from expiration runs depending on your program’s settings.


How are points from campaign giveaways calculated?

These are typically awarded based on the configuration inside the specific campaign setup. In most cases:

  • You set a fixed number of points that each participant (or winner) gets.

  • AIQ then applies those points directly to the contact’s loyalty balance once the campaign ends or when the trigger condition is met.

  • There’s no dynamic calculation (like based on spend or tier) unless you explicitly configure it to use a multiplier.

Need Help?

If you need assistance, reach out to AIQ Support anytime via chat widget within your AIQ Dashboard.

Did this answer your question?