{"id":1042,"date":"2026-08-16T09:40:52","date_gmt":"2026-08-16T09:40:52","guid":{"rendered":"https:\/\/themewinter.com\/docs\/?post_type=docs&#038;p=1042"},"modified":"2026-08-16T09:46:26","modified_gmt":"2026-08-16T09:46:26","password":"","slug":"how-do-i-read-the-points-ledger","status":"publish","type":"docs","link":"https:\/\/themewinter.com\/docs\/pointics\/how-do-i-read-the-points-ledger\/","title":{"rendered":"How Do I Read the Points Ledger"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">What is the Transactions Screen?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Transactions<\/strong> is the complete record of every point movement on your site. Each row shows who the transaction belongs to, how many points moved, why the movement happened, and whether it counted toward the customer&#8217;s balance.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This record is the source of truth for Pointics. Every customer&#8217;s balance is calculated from it, and balances and transactions are updated together.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why Do You Need It?<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Points are a liability:<\/strong> Loyalty points represent value, and this screen records every movement.<\/li>\n\n\n\n<li><strong>It resolves disputes:<\/strong> When a customer questions their balance, the Transactions screen provides the full history.<\/li>\n\n\n\n<li><strong>It helps detect problems:<\/strong> Duplicate awards, failed redemptions, reversals, and expiry activity are all visible here.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisites<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>An Administrator account.<\/li>\n\n\n\n<li>No additional setup is required. Transactions are recorded automatically as customers earn, redeem, adjust, expire, or reverse points.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Customers can also view their own transaction history from their account panel.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Where to Find It<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Go to <strong>Pointics \u2192 Transactions<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/wp-admin\/admin.php?page=pointics#\/transactions<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step-by-Step Instructions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Open the Transactions Screen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Go to <strong>Pointics \u2192 Transactions<\/strong>. Every point movement on your site is listed, with the newest transactions shown first.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Read a Row<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Column<\/th><th>Shows<\/th><\/tr><\/thead><tbody><tr><td><strong>ID<\/strong><\/td><td>The transaction reference.<\/td><\/tr><tr><td><strong>Time<\/strong><\/td><td>Relative time in the table and an exact date in the export.<\/td><\/tr><tr><td><strong>Customer<\/strong><\/td><td>The customer&#8217;s email address.<\/td><\/tr><tr><td><strong>Type<\/strong><\/td><td>Earn, Redeem, Adjust, Expire, or Reversal.<\/td><\/tr><tr><td><strong>Points<\/strong><\/td><td>Signed in the table and unsigned in the export.<\/td><\/tr><tr><td><strong>Source<\/strong><\/td><td>Where the transaction originated, such as an integration or an administrator.<\/td><\/tr><tr><td><strong>Status<\/strong><\/td><td>Pending, Completed, Reversed, Failed, or Expired.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The export writes point values as <strong>unsigned numbers<\/strong>. This prevents spreadsheet software from interpreting a leading minus sign as text and breaking calculations.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Narrow the List<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Control<\/th><th>Behaviour<\/th><\/tr><\/thead><tbody><tr><td><strong>Search Transactions<\/strong> \u2014 \u201cSearch by ID, customer, ref..\u201d<\/td><td>Matches the transaction and customer information.<\/td><\/tr><tr><td><strong>Filter by Type<\/strong> \u2014 \u201cAll Type\u201d<\/td><td>Filters by Earn, Redeem, Adjust, Expire, or Reversal.<\/td><\/tr><tr><td><strong>Filter by Status<\/strong> \u2014 \u201cAll Status\u201d<\/td><td>Filters by Pending, Completed, Reversed, Failed, or Expired.<\/td><\/tr><tr><td><strong>Date Range<\/strong><\/td><td>Filters by a start date and end date.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Transactions belonging to deleted user accounts or guest users are still preserved. In those cases, the Customer column is empty.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Sort Transactions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You can sort transactions by <strong>ID<\/strong>, <strong>Time<\/strong>, or <strong>Points<\/strong>. The default order is newest first.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Export Transactions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The export includes every transaction matching the current filters and uses the same columns as the Transactions table.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Key Functionality<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Transaction Types<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Type<\/th><th>Meaning<\/th><\/tr><\/thead><tbody><tr><td><strong>Earn<\/strong><\/td><td>Points awarded by an earning rule.<\/td><\/tr><tr><td><strong>Redeem<\/strong><\/td><td>Points used to redeem a reward.<\/td><\/tr><tr><td><strong>Adjust<\/strong><\/td><td>A manual credit or deduction made by an administrator.<\/td><\/tr><tr><td><strong>Expire<\/strong><\/td><td>Points removed because they reached their expiry date.<\/td><\/tr><tr><td><strong>Reversal<\/strong><\/td><td>An earlier points movement that was undone, such as after a refunded order.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Transaction Statuses<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Status<\/th><th>Counts Toward the Balance?<\/th><th>Meaning<\/th><\/tr><\/thead><tbody><tr><td><strong>Pending<\/strong><\/td><td>No<\/td><td>Points are being held for a redemption that has not settled.<\/td><\/tr><tr><td><strong>Completed<\/strong><\/td><td><strong>Yes<\/strong><\/td><td>The transaction has settled successfully.<\/td><\/tr><tr><td><strong>Reversed<\/strong><\/td><td>No<\/td><td>The original transaction was undone.<\/td><\/tr><tr><td><strong>Failed<\/strong><\/td><td>No<\/td><td>The transaction never completed successfully.<\/td><\/tr><tr><td><strong>Expired<\/strong><\/td><td>No<\/td><td>The transaction aged out.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Only <strong>Completed<\/strong> transactions count toward a customer&#8217;s available balance. Pending, Reversed, Failed, and Expired rows do not count.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How Points Move<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Point movements follow these main paths:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Earning Rule:<\/strong> An earning rule awards points \u2192 an <strong>Earn<\/strong> transaction is completed \u2192 the balance updates.<\/li>\n\n\n\n<li><strong>Admin Credit:<\/strong> An administrator adds points \u2192 an <strong>Adjust<\/strong> transaction is completed \u2192 the balance updates.<\/li>\n\n\n\n<li><strong>Reward Redemption:<\/strong> A customer redeems a reward \u2192 a <strong>Redeem<\/strong> transaction becomes Pending \u2192 points are held.<\/li>\n\n\n\n<li><strong>Paid Order:<\/strong> If the related order is paid, the pending redemption becomes Completed and the points are permanently spent.<\/li>\n\n\n\n<li><strong>Cancelled or Expired Reward:<\/strong> If the redemption is cancelled or the coupon expires, the hold is reversed and the points return.<\/li>\n\n\n\n<li><strong>Point Expiry:<\/strong> Expired points create an <strong>Expire<\/strong> transaction and the balance is reduced.<\/li>\n\n\n\n<li><strong>Refund:<\/strong> A refunded order creates a <strong>Reversal<\/strong> transaction and eligible points are removed.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Validation Rules<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Type<\/strong> and <strong>Status<\/strong> filters accept only the supported values listed above.<\/li>\n\n\n\n<li><strong>Search<\/strong> accepts up to 191 characters.<\/li>\n\n\n\n<li><strong>Date filters<\/strong> must use a valid calendar date in <code>YYYY-MM-DD<\/code> format, optionally including a time.<\/li>\n\n\n\n<li>Impossible dates, such as 30 February, are rejected.<\/li>\n\n\n\n<li>Leaving either date field empty means there is no limit on that side of the date range.<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><em>&#8220;date_from must be a date as YYYY-MM-DD, optionally with HH:MM:SS.&#8221;<\/em><\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">What Pointics Guarantees<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Every points movement and the balance it changes are recorded together.<\/li>\n\n\n\n<li>The same event cannot be recorded twice, which protects retries and frequency-limited rules from duplicate awards.<\/li>\n\n\n\n<li>Plugin updates do not destroy transaction data.<\/li>\n\n\n\n<li>Deactivating Pointics does not remove transaction history.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Limitations<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Transactions cannot be edited or deleted.<\/strong> Corrections must be made with a new adjustment so the original record remains visible.<\/li>\n\n\n\n<li>You can sort by only <strong>ID<\/strong>, <strong>Time<\/strong>, and <strong>Points<\/strong>.<\/li>\n\n\n\n<li>The customer profile history supports search only. Use the Transactions screen for date and type filters.<\/li>\n\n\n\n<li>There is no separate detail page for individual transactions.<\/li>\n\n\n\n<li>Deleting a WordPress user does not remove their transactions. The Customer column becomes empty instead.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Troubleshooting<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Problem<\/th><th>Solution<\/th><\/tr><\/thead><tbody><tr><td><em>&#8220;date_from must be a date as YYYY-MM-DD, optionally with HH:MM:SS.&#8221;<\/em><\/td><td>Correct the date format and make sure the date actually exists.<\/td><\/tr><tr><td>A filter returns no results.<\/td><td>Check that the selected transaction type and status are valid.<\/td><\/tr><tr><td>The Points column does not sum correctly in a spreadsheet.<\/td><td>Use the CSV export instead of copying the visible table. The export uses unsigned numeric values.<\/td><\/tr><tr><td>A balance does not match a quick sum of all rows.<\/td><td>Only <strong>Completed<\/strong> transactions count toward the balance.<\/td><\/tr><tr><td>Duplicate award rows appear.<\/td><td>This should not normally happen. Check the earning rule&#8217;s frequency configuration.<\/td><\/tr><tr><td>A redemption remains <strong>Pending<\/strong>.<\/td><td>The related order has not been paid. Check its WooCommerce order status.<\/td><\/tr><tr><td>A row has no customer.<\/td><td>The WordPress user was deleted, or the transaction belongs to a guest.<\/td><\/tr><tr><td>No <strong>Expire<\/strong> transactions appear even though expiry is enabled.<\/td><td>Expiry runs on a schedule. Confirm that WordPress scheduled tasks are running.<\/td><\/tr><tr><td>Sorting by Source or Status does nothing.<\/td><td>Only ID, Time, and Points can be sorted.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Notes<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>An <strong>Earn<\/strong> transaction also tracks how much of the awarded amount remains unspent and when it expires.<\/li>\n\n\n\n<li>This tracking allows Pointics to support point expiry and oldest-points-first spending.<\/li>\n\n\n\n<li>A refund can only reverse points the customer still has available. Points that have already been spent cannot be clawed back.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Was This Article Helpful?<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\">Related Articles<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"06-customers.md\">How Do I Manage Customers and Adjust Their Points?<\/a><\/li>\n\n\n\n<li><a href=\"14-points-expiry.md\">How Do Points Expire?<\/a><\/li>\n\n\n\n<li><a href=\"08-analytics.md\">How Do I Read the Analytics Dashboard?<\/a><\/li>\n\n\n\n<li><a href=\"03-points-program.md\">How Do I Create Point Earning Rules?<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>What is the Transactions Screen? Transactions is the complete record of every point movement on your site. Each row shows who the transaction belongs to, how many points moved, why the movement happened, and whether it counted toward the customer&#8217;s balance. This record is the source of truth for Pointics. Every customer&#8217;s balance is calculated [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"_eb_attr":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"doc_category":[79],"doc_tag":[],"class_list":["post-1042","docs","type-docs","status-publish","hentry","doc_category-transactions"],"year_month":"2026-08","word_count":1032,"total_views":0,"reactions":{"happy":0,"normal":0,"sad":0},"author_info":{"name":"nafila","author_nicename":"nafila","author_url":"https:\/\/themewinter.com\/docs\/author\/nafila\/"},"doc_category_info":[{"term_name":"Transactions","term_url":"https:\/\/themewinter.com\/docs\/docs\/transactions\/"}],"doc_tag_info":[],"knowledge_base_info":[],"knowledge_base_slug":[],"_links":{"self":[{"href":"https:\/\/themewinter.com\/docs\/wp-json\/wp\/v2\/docs\/1042","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewinter.com\/docs\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/themewinter.com\/docs\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/themewinter.com\/docs\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/themewinter.com\/docs\/wp-json\/wp\/v2\/comments?post=1042"}],"version-history":[{"count":1,"href":"https:\/\/themewinter.com\/docs\/wp-json\/wp\/v2\/docs\/1042\/revisions"}],"predecessor-version":[{"id":1043,"href":"https:\/\/themewinter.com\/docs\/wp-json\/wp\/v2\/docs\/1042\/revisions\/1043"}],"wp:attachment":[{"href":"https:\/\/themewinter.com\/docs\/wp-json\/wp\/v2\/media?parent=1042"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/themewinter.com\/docs\/wp-json\/wp\/v2\/doc_category?post=1042"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/themewinter.com\/docs\/wp-json\/wp\/v2\/doc_tag?post=1042"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}