Title: Woocommerce Anaytics Bugs
Last modified: March 19, 2026

---

# Woocommerce Anaytics Bugs

 *  [fugglesby](https://wordpress.org/support/users/fugglesby/)
 * (@fugglesby)
 * [3 weeks ago](https://wordpress.org/support/topic/woocommerce-anaytics-bugs/)
 * I’ve recently encountered some large discrepancies in the reported sales totals
   and order totals delivered by analytics and by woocommerce. I’ve spent some time
   cross referencing our actual payments received with analytics exports and can
   now verify that these order counts and sales counts are accurate at least.
   However
   the Summaries that are provided on some of the analytics tabs are not correct.
   Specifically the summaries on the “orders” tab are correct, but the “products”
   tab says I have two phantom orders and additional revenue that I do not have.
   Here are some screenshots:[http://kailashblades.com/wp-content/uploads/2026/03/Screenshot-2026-03-19-214346-scaled.png](http://kailashblades.com/wp-content/uploads/2026/03/Screenshot-2026-03-19-214346-scaled.png)
   [http://kailashblades.com/wp-content/uploads/2026/03/Screenshot-2026-03-19-214403-scaled.png](http://kailashblades.com/wp-content/uploads/2026/03/Screenshot-2026-03-19-214403-scaled.png)
   I feel that potentially the products summary tab is interpreting refund actions
   as new orders and adding the refunded values to the total rather than subtracting
   them. EG $200 order is refunded in full. The tab counts this as $400 and 2 orders
   rather than $200 and 1 order or $0 and 0 orders. Alternatively it could be an
   issue with it being stuck on “date created” while the rest of the analytics tabs
   and exports are going by “date paid”For now I can just run from the exports and
   cleanup manually but it’s less than ideal and will confuse others.This brings
   me to 2 additional issues: Firstly in all analytics tabs and exports that I can
   tell if an order if fully refunded (by changing the order status) then when calculating
   net sales it deducts the cost of shipping. It assumes that the order was shipped,
   hit the customer and was then refunded with the shipping at a loss. Example- 
   an order has a total of 252 with a net sales of 205 and 47 shipping. Analytics
   tracks your net sales as 205 but if you fully refund it tracks that as net sales
   deduction of 252 rather than 205 as it should. A lot of customer refunds are 
   change of mind and no shipping fees have been paid when they are refunded so 
   this throws out analytics majorly. A simple fix here is to swap this behaviour
   to only deduce net sales on full refund rather than net revenue form net sales.
   A more complicated fix would be to update analytics so that this action only 
   occurs when an order is moved from “shipped” to “refunded” and when moved from
   other statuses to refunded it assumes that there are no losses incurred from 
   the refund.The next issue causes issues in analytics but its source is elsewhere.
   Every now and again I encounter an order that needs to be moved out of paid and
   back into pending payment- payment issues, things falling through etc. Similarly
   We place orders “on hold” while they await payment via bank transfer. Both of
   these events result in the paid date being set irreversibly (without manual database
   editing). This is a bit insane. It means that orders that are paid for in february
   show up in january analytics because they checked out in january first even if
   it was unsuccessful. A fix could be updating analytics behaviour when using “
   date paid” to run from when the order was most recently moved into processing
   or shipped if it was never in processing. Potentially there are setting within
   woocommerce that change this behaviour- I can’t find them though.Take care,AndrewSystem
   report is as follows:
 * ` WordPress Environment</p> <p>WordPress address (URL): [http://kailashblades.com<br>Site](http://kailashblades.com<br>Site)
   address (URL): [http://kailashblades.com<br>WC](http://kailashblades.com<br>WC)
   Version: 10.2.2<br>Legacy REST API Package Version: ✔ 1.0.5<br>Action Scheduler
   Version: ✔ 3.9.3<br>Log Directory Writable: ✔<br>WP Version: ❌ 6.9.1 – There
   is a newer version of WordPress available (6.9.4)<br>WP Multisite: –<br>WP Memory
   Limit: 768 MB<br>WP Debug Mode: ✔<br>WP Cron: –<br>Language: en_US<br>External
   object cache: – Server Environment</p> <p>Server Info: Apache<br>Server Architecture:
   Linux 6.6.63-MCIclouder663-c9 x86_64<br>PHP Version: 8.4.19<br>PHP Post Max Size:
   256 MB<br>PHP Time Limit: 3600<br>PHP Max Input Vars: 3000<br>cURL Version: 8.15.0
   <br>OpenSSL/3.5.4</p> <p>SUHOSIN Installed: –<br>MySQL Version: 8.4.6-6<br>Max
   Upload Size: 256 MB<br>Default Timezone is UTC: ✔<br>fsockopen/cURL: ✔<br>SoapClient:
   ✔<br>DOMDocument: ✔<br>GZip: ✔<br>Multibyte String: ✔<br>Remote Post: ✔<br>Remote
   Get: ✔ Database</p> <p>WC Database Version: 10.2.2<br>WC Database Prefix: wp_
   <br>Total Database Size: 394.95MB<br>Database Data Size: 305.76MB<br>Database
   Index Size: 89.19MB<br>wp_woocommerce_sessions: Data: 32.01MB + Index: 0.12MB
   + Engine MyISAM<br>wp_woocommerce_api_keys: Data: 0.00MB + Index: 0.00MB + Engine
   MyISAM<br>wp_woocommerce_attribute_taxonomies: Data: 0.00MB + Index: 0.00MB +
   Engine MyISAM<br>wp_woocommerce_downloadable_product_permissions: Data: 0.00MB
   + Index: 0.00MB + Engine MyISAM<br>wp_woocommerce_order_items: Data: 0.76MB +
   Index: 0.46MB + Engine MyISAM<br>wp_woocommerce_order_itemmeta: Data: 86.74MB
   + Index: 5.37MB + Engine MyISAM<br>wp_woocommerce_tax_rates: Data: 0.00MB + Index:
   0.00MB + Engine MyISAM<br>wp_woocommerce_tax_rate_locations: Data: 0.00MB + Index:
   0.00MB + Engine MyISAM<br>wp_woocommerce_shipping_zones: Data: 0.00MB + Index:
   0.00MB + Engine MyISAM<br>wp_woocommerce_shipping_zone_locations: Data: 0.68MB
   + Index: 1.02MB + Engine MyISAM<br>wp_woocommerce_shipping_zone_methods: Data:
   0.00MB + Index: 0.00MB + Engine MyISAM<br>wp_woocommerce_payment_tokens: Data:
   0.00MB + Index: 0.00MB + Engine MyISAM<br>wp_woocommerce_payment_tokenmeta: Data:
   0.00MB + Index: 0.00MB + Engine MyISAM<br>wp_woocommerce_log: Data: 0.00MB + 
   Index: 0.00MB + Engine MyISAM<br>wp_actionscheduler_actions: Data: 1.03MB + Index:
   0.56MB + Engine InnoDB<br>wp_actionscheduler_claims: Data: 0.02MB + Index: 0.02MB
   + Engine InnoDB<br>wp_actionscheduler_groups: Data: 0.02MB + Index: 0.02MB + 
   Engine InnoDB<br>wp_actionscheduler_logs: Data: 0.36MB + Index: 0.30MB + Engine
   InnoDB<br>wp_aioseo_cache: Data: 0.14MB + Index: 0.03MB + Engine InnoDB<br>wp_aioseo_crawl_cleanup_blocked_args:
   Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wp_aioseo_crawl_cleanup_logs:
   Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wp_aioseo_notifications: Data:
   1.52MB + Index: 0.06MB + Engine InnoDB<br>wp_aioseo_posts: Data: 1.52MB + Index:
   0.09MB + Engine InnoDB<br>wp_aioseo_writing_assistant_keywords: Data: 0.02MB 
   + Index: 0.03MB + Engine InnoDB<br>wp_aioseo_writing_assistant_posts: Data: 0.02MB
   + Index: 0.03MB + Engine InnoDB<br>wp_bv_activities_store: Data: 0.02MB + Index:
   0.00MB + Engine InnoDB<br>wp_commentmeta: Data: 0.02MB + Index: 0.03MB + Engine
   InnoDB<br>wp_comments: Data: 4.52MB + Index: 3.45MB + Engine InnoDB<br>wp_css_js_manager:
   Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wp_ewd_uwpm_email_links_clicked_events:
   Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wp_ewd_uwpm_email_only_users:
   Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wp_ewd_uwpm_email_open_events:
   Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wp_ewd_uwpm_email_send_events:
   Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wp_ewwwio_images: Data: 0.53MB
   + Index: 0.27MB + Engine MyISAM<br>wp_links: Data: 0.02MB + Index: 0.02MB + Engine
   InnoDB<br>wp_mailchimp_carts: Data: 4.52MB + Index: 0.00MB + Engine InnoDB<br
   >wp_mailchimp_jobs: Data: 0.05MB + Index: 0.00MB + Engine InnoDB<br>wp_mgmlp_folders:
   Data: 0.01MB + Index: 0.01MB + Engine MyISAM<br>wp_options: Data: 20.39MB + Index:
   4.30MB + Engine InnoDB<br>wp_pmxe_exports: Data: 0.02MB + Index: 0.00MB + Engine
   MyISAM<br>wp_pmxe_google_cats: Data: 0.26MB + Index: 0.05MB + Engine MyISAM<br
   >wp_pmxe_posts: Data: 0.03MB + Index: 0.01MB + Engine MyISAM<br>wp_pmxe_templates:
   Data: 0.03MB + Index: 0.00MB + Engine MyISAM<br>wp_pmxi_files: Data: 0.00MB +
   Index: 0.00MB + Engine MyISAM<br>wp_pmxi_hash: Data: 0.02MB + Index: 0.00MB +
   Engine InnoDB<br>wp_pmxi_history: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
   <br>wp_pmxi_images: Data: 0.01MB + Index: 0.01MB + Engine MyISAM<br>wp_pmxi_imports:
   Data: 0.06MB + Index: 0.00MB + Engine MyISAM<br>wp_pmxi_posts: Data: 0.00MB +
   Index: 0.00MB + Engine MyISAM<br>wp_pmxi_templates: Data: 0.02MB + Index: 0.00MB
   + Engine MyISAM<br>wp_postmeta: Data: 62.56MB + Index: 28.09MB + Engine InnoDB
   <br>wp_posts: Data: 6.39MB + Index: 2.34MB + Engine InnoDB<br>wp_redirection_404:
   Data: 63.59MB + Index: 36.25MB + Engine InnoDB<br>wp_redirection_groups: Data:
   0.02MB + Index: 0.03MB + Engine InnoDB<br>wp_redirection_items: Data: 0.02MB 
   + Index: 0.09MB + Engine InnoDB<br>wp_redirection_logs: Data: 0.08MB + Index:
   0.05MB + Engine InnoDB<br>wp_sbi_feed_caches: Data: 3.02MB + Index: 0.02MB + 
   Engine InnoDB<br>wp_sbi_feeds: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br
   >wp_sbi_instagram_feed_locator: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<
   br>wp_sbi_instagram_feeds_posts: Data: 0.05MB + Index: 0.03MB + Engine InnoDB
   <br>wp_sbi_instagram_posts: Data: 1.36MB + Index: 0.00MB + Engine InnoDB<br>wp_sbi_sources:
   Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wp_sgs_log_events: Data: 3.52MB
   + Index: 2.52MB + Engine InnoDB<br>wp_sgs_log_visitors: Data: 0.08MB + Index:
   0.09MB + Engine InnoDB<br>wp_shopmagic_automation_outcome: Data: 0.02MB + Index:
   0.00MB + Engine InnoDB<br>wp_shopmagic_automation_outcome_logs: Data: 0.02MB 
   + Index: 0.02MB + Engine InnoDB<br>wp_shopmagic_guest: Data: 0.02MB + Index: 
   0.00MB + Engine InnoDB<br>wp_shopmagic_guest_meta: Data: 0.02MB + Index: 0.02MB
   + Engine InnoDB<br>wp_shopmagic_marketing_lists: Data: 0.02MB + Index: 0.00MB
   + Engine InnoDB<br>wp_shopmagic_optin_email: Data: 0.02MB + Index: 0.00MB + Engine
   InnoDB<br>wp_shopmagic_tracked_emails: Data: 0.02MB + Index: 0.05MB + Engine 
   InnoDB<br>wp_shopmagic_tracked_emails_clicks: Data: 0.02MB + Index: 0.02MB + 
   Engine InnoDB<br>wp_snippets: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br
   >wp_term_relationships: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wp_term_taxonomy:
   Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wp_termmeta: Data: 0.00MB + Index:
   0.01MB + Engine MyISAM<br>wp_terms: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
   <br>wp_tm_taskmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wp_tm_tasks:
   Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wp_usermeta: Data: 1.52MB + Index:
   0.56MB + Engine InnoDB<br>wp_users: Data: 0.05MB + Index: 0.05MB + Engine InnoDB
   <br>wp_wc_admin_note_actions: Data: 0.08MB + Index: 0.02MB + Engine InnoDB<br
   >wp_wc_admin_notes: Data: 0.13MB + Index: 0.00MB + Engine InnoDB<br>wp_wc_category_lookup:
   Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wp_wc_customer_lookup: Data: 
   0.41MB + Index: 0.34MB + Engine InnoDB<br>wp_wc_download_log: Data: 0.00MB + 
   Index: 0.00MB + Engine MyISAM<br>wp_wc_order_coupon_lookup: Data: 0.02MB + Index:
   0.03MB + Engine InnoDB<br>wp_wc_order_product_lookup: Data: 1.52MB + Index: 1.22MB
   + Engine InnoDB<br>wp_wc_order_stats: Data: 1.52MB + Index: 0.56MB + Engine InnoDB
   <br>wp_wc_order_tax_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wp_wc_product_attributes_lookup:
   Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wp_wc_product_download_directories:
   Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wp_wc_product_meta_lookup: Data:
   0.02MB + Index: 0.11MB + Engine InnoDB<br>wp_wc_rate_limits: Data: 0.02MB + Index:
   0.02MB + Engine InnoDB<br>wp_wc_reserved_stock: Data: 0.02MB + Index: 0.00MB 
   + Engine InnoDB<br>wp_wc_tax_rate_classes: Data: 0.02MB + Index: 0.02MB + Engine
   InnoDB<br>wp_wc_webhooks: Data: 0.00MB + Index: 0.00MB + Engine MyISAM<br>wp_wcpdf_invoice_number:
   Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wp_wcpdf_packing_slip_number:
   Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wp_wfpklist_template_data: Data:
   0.02MB + Index: 0.00MB + Engine InnoDB<br>wp_woo_shippment_provider: Data: 0.14MB
   + Index: 0.00MB + Engine InnoDB<br>wp_wpmcleaner: Data: 0.00MB + Index: 0.00MB
   + Engine MyISAM<br>wp_wpml_mails: Data: 3.43MB + Index: 0.01MB + Engine MyISAM
   <br>wp_wt_iew_action_history: Data: 0.16MB + Index: 0.00MB + Engine InnoDB<br
   >wp_wt_iew_mapping_template: Data: 0.02MB + Index: 0.00MB + Engine InnoDB Post
   Type Counts</p> <p>attachment: 588<br>custom_css: 2<br>emailoctopus_form: 5<br
   >fl-builder-history: 16<br>fl-builder-template: 39<br>giftcard: 4<br>mc4wp-form:
   1<br>mgmlp_media_folder: 87<br>nav_menu_item: 73<br>page: 20<br>pi_critical_css:
   1<br>popup: 5<br>popup_theme: 8<br>post: 3<br>product: 45<br>product_variation:
   55<br>revision: 371<br>shop_coupon: 5<br>shop_order: 6736<br>shop_order_refund:
   59<br>sl-insta-account: 1<br>sl-insta-feed: 1<br>sl-insta-media: 1150<br>tm_global_cp:
   1<br>tt_font_control: 4<br>wp_block: 1<br>wp_global_styles: 2<br>wp_navigation:
   3<br>wp_template: 11<br>wp_template_part: 4<br>wpcf7_contact_form: 1 Security
   </p> <p>Secure connection (HTTPS): ✔<br>Hide errors from visitors: ✔ Active Plugins(
   25)</p> <p>Beaver Builder Plugin (Lite Version): by The Beaver Builder Team –
   2.9.0.5<br>Contact Form 7: by Rock Lobster Inc. – 6.1.4<br>Fluent Snippets: by
   Fluent Snippets – 10.51<br>EmailOctopus: by EmailOctopus – 3.1.7<br>Add Himalayan
   Bank Payment In WooCommerce: by Sanjeev Aryal – 2.2.3<br>Smash Balloon Instagram
   Feed: by Smash Balloon – 6.10.0<br>jQuery Updater: by Ramoonus – 3.7.1.3<br>Max
   Mega Menu: by megamenu.com – 3.5<br>Order Export & Order Import for WooCommerce:
   by WebToffee – 2.6.9<br>Popup Maker: by Popup Maker – 1.21.5<br>Redux Framework:
   by Team Redux – 4.5.10<br>Regenerate Thumbnails: by Alex Mills (Viper007Bond)–
   3.1.6<br>Security Optimizer: by SiteGround – 1.5.9<br>Smart Variations Images&
   Swatches for WooCommerce: by David Rosendo – 5.2.16<br>SiteOrigin CSS: by SiteOrigin–
   1.6.5<br>SVG Block: by Phi Phan – 1.2.3<br>WooCommerce Table Rate Shipping by
   Mangohour: by mangohour – 1.2.1<br>Spectra: by Brainstorm Force – 2.19.9<br>CTX
   Feed: by WebAppick – 6.5.69<br>Advanced Shipment Tracking for WooCommerce: by
   zorem – 3.8.9<br>Ultimate Gift Cards For WooCommerce: by WP Swings – 3.2.4<br
   >WooCommerce Legacy REST API: by WooCommerce – 1.0.5<br>PDF Invoices & Packing
   Slips for WooCommerce: by WP Overnight – 4.6.0<br>Extra Product Options & Add-
   Ons for WooCommerce: by ThemeComplete – 7.5.2<br>WooCommerce: by Automattic –
   10.2.2 (update to version 10.6.1 is available) Inactive Plugins (21)</p> <p>Akismet
   Anti-spam: Spam Protection: by Automattic – Anti-spam Team – 5.4<br>All in One
   SEO: by All in One SEO Team – 4.8.4.1<br>Asset CleanUp: Page Speed Booster: by
   Gabe Livan – 1.4.0.3<br>BackWPup: by BackWPup – WordPress Backup & Restore Plugin–
   5.2.3<br>Blackhole for Bad Bots: by Jeff Starr – 3.7.5<br>CSS JS Manager, Async
   JavaScript, Defer Render Blocking CSS: by Pi Websolution – 2.4.49.49<br>LCP Booster
   for WooCommerce: by Slobodan Manic – 1.0.0<br>Mailchimp for WooCommerce: by Mailchimp–
   5.4<br>MC4WP: Mailchimp for WordPress: by ibericode – 4.10.5<br>Redirection: 
   by John Godley – 5.6.1<br>Simple Maintenance: by naa986 – 1.0.4<br>Smart Variations
   Images & Swatches for WooCommerce: by David Rosendo – 5.2.18<br>Speed Optimizer:
   by SiteGround – 7.7.2<br>Volumetric Shipping For Woocommerce: by SunArc – 1.0.10
   <br>WC – APG Weight Shipping: by Art Project Group – 3.4.2<br>WC Speed Repair:
   by WP Fix It – WordPress Experts – 4.5<br>WooCommerce TM Extra Product Options
   Weight addon: by themecomplete – 1.0.4<br>WP All Export Pro: by Soflyy – 1.5.1
   <br>WP All Import: by Soflyy – 4.0.0<br>WP All Import – WooCommerce Add-On Pro:
   by Soflyy – 3.2.4<br>WP All Import Pro: by Soflyy – 4.5.5 Settings</p> <p>Legacy
   API Enabled: ✔<br>Force SSL: –<br>Currency: USD ($)<br>Currency Position: left
   <br>Thousand Separator: ,<br>Decimal Separator: .<br>Number of Decimals: 2<br
   >Taxonomies: Product Types: external (external)<br>grouped (grouped)<br>simple(
   simple)<br>variable (variable)<br>wgm_gift_card (wgm_gift_card)</p> <p>Taxonomies:
   Product Visibility: exclude-from-catalog (exclude-from-catalog)<br>exclude-from-
   search (exclude-from-search)<br>featured (featured)<br>outofstock (outofstock)
   <br>rated-1 (rated-1)<br>rated-2 (rated-2)<br>rated-3 (rated-3)<br>rated-4 (rated-
   4)<br>rated-5 (rated-5)</p> <p>Connected to WooCommerce.com: –<br>Enforce Approved
   Product Download Directories: –<br>HPOS feature enabled: –<br>Order datastore:
   WC_Order_Data_Store_CPT<br>HPOS data sync enabled: –<br>Enabled Features: analytics
   <br>marketplace<br>order_attribution<br>site_visibility_badge<br>remote_logging
   <br>email_improvements<br>blueprint<br>point_of_sale Logging</p> <p>Enabled: 
   ✔<br>Handler: Automattic\WooCommerce\Internal\Admin\Logging\LogHandlerFileV2<
   br>Retention period: 30 days<br>Level threshold: –<br>Log directory size: 6 MB
   WC Pages</p> <p>Shop base: ❌ Page not set<br>Cart: #177 – /cart/ – Contains 
   the woocommerce/cart block<br>Checkout: #178 – /checkout/ – Contains the [woocommerce_checkout]
   shortcode<br>My account: ❌ Page ID is set<br>but the page does not exist</p>
   <p>Terms and conditions: #3775 – /modern/terms-and-conditions/ Theme</p> <p>Name:
   Spectra One<br>Version: 1.1.7 (update to version 1.1.8 is available)<br>Author
   URL: [https://brainstormforce.com/<br>Child](https://brainstormforce.com/<br>Child)
   Theme: ❌ – If you are modifying WooCommerce on a parent theme that you did not
   build personally we recommend using a child theme. See: How to create a child
   theme<br>Theme type: Block theme<br>WooCommerce Support: ❌ Not declared Templates
   </p> <p>Overrides: spectra-one/woocommerce/emails/customer-invoice.php<br>spectra-
   one/woocommerce/emails/customer-on-hold-order.php<br>/home/customer/www/kailashblades.
   com/public_html/wp-content/plugins/woocommerce/templates/block-notices/error.
   php<br>/home/customer/www/kailashblades.com/public_html/wp-content/plugins/woocommerce/
   templates/block-notices/notice.php version 9.5.0 is out of date. The core version
   is 10.2.0<br>/home/customer/www/kailashblades.com/public_html/wp-content/plugins/
   woocommerce/templates/block-notices/success.php</p> <p>Outdated Templates: ❌
   </p> <pre class=”wp-block-code”><code> Learn how to update | Clear system status
   theme info cache</code></pre> <p>Admin</p> <p>Enabled Features: activity-panels
   <br>analytics<br>product-block-editor<br>coupons<br>core-profiler<br>customize-
   store<br>customer-effort-score-tracks<br>import-products-task<br>experimental-
   fashion-sample-products<br>shipping-smart-defaults<br>shipping-setting-tour<br
   >homescreen<br>marketing<br>mobile-app-banner<br>onboarding<br>onboarding-tasks
   <br>pattern-toolkit-full-composability<br>product-custom-fields<br>remote-inbox-
   notifications<br>remote-free-extensions<br>payment-gateway-suggestions<br>printful
   <br>shipping-label-banner<br>subscriptions<br>store-alerts<br>transient-notices
   <br>woo-mobile-welcome<br>wc-pay-promotion<br>wc-pay-welcome-page<br>launch-your-
   store</p> <p>Disabled Features: product-data-views<br>experimental-blocks<br>
   experimental-iapi-mini-cart<br>experimental-iapi-runtime<br>coming-soon-newsletter-
   template<br>minified-js<br>product-pre-publish-modal<br>settings<br>async-product-
   editor-category-field<br>product-editor-template-system<br>use-wp-horizon<br>
   experimental-wc-rest-api</p> <p>Daily Cron: ✔ Next scheduled: 2025-06-30 13:51:
   10 +10:00<br>Options: ✔<br>Notes: 225<br>Onboarding: completed Action Scheduler
   </p> <p>Canceled: 22<br>Oldest: 2026-03-19 21:29:20 +1100<br>Newest: 2026-03-
   19 21:29:20 +1100</p> <p>Complete: 2,598<br>Oldest: 2026-02-17 01:34:59 +1100
   <br>Newest: 2026-03-19 21:31:21 +1100</p> <p>Failed: 27<br>Oldest: 2025-04-12
   14:34:59 +1000<br>Newest: 2025-10-27 23:34:58 +1100</p> <p>Pending: 10<br>Oldest:
   2026-03-20 00:32:33 +1100<br>Newest: 2026-03-30 22:24:54 +1100 Status report 
   information</p> <p>Generated at: 2026-03-19 22:20:02 +11:00<br>`

Viewing 14 replies - 1 through 14 (of 14 total)

 *  Plugin Support [shahzeen(woo-hc)](https://wordpress.org/support/users/shahzeenfarooq/)
 * (@shahzeenfarooq)
 * [3 weeks ago](https://wordpress.org/support/topic/woocommerce-anaytics-bugs/#post-18856943)
 * Hi there!
 * Thank you for sharing the detailed information and screenshots. We completely
   understand your concern regarding the **incorrect net sales reported in the Products
   tab**. Our developers are already aware of this issue and are actively working
   on a fix. You can follow the progress here:
    - [WooCommerce Bug #50480](https://github.com/woocommerce/woocommerce/issues/50480)
    - [WooCommerce Bug #48954](https://github.com/woocommerce/woocommerce/issues/48954)
 * **Regarding your second issue: **
 * Could you please confirm whether the orders for which you changed the status 
   to **Pending Payment** in WooCommerce were appearing as **Paid** when you made
   the change?
 * Also, could you please provide more information about the payment issue that 
   occurred, which required you to manually change the order status?
 * By defualt, you can choose which **date field** Analytics should use for revenue
   and order reports: “Date created, Date paid, or Date completed,”.You can change
   that by going to wordpress dashboard -> Analytics -> Settings.
 * I hope this helps.
 *  Thread Starter [fugglesby](https://wordpress.org/support/users/fugglesby/)
 * (@fugglesby)
 * [2 weeks, 6 days ago](https://wordpress.org/support/topic/woocommerce-anaytics-bugs/#post-18857393)
 * Hey there- thanks very much for the reply 🙂
   Glad to hear you have got eyes on
   this bug already.The second issue is regarding the way that analytics immediately
   assumes that refunded shipping costs are a loss and deducts the net revenue from
   the net sales. it isn’t related to order status change.Yes- the orders were in
   status “processing” which is a paid status. Every now and again we receive a 
   phantom payment error in a plugin that we use for our payment gateway. We are
   a Nepali company working so have very limited legal options for ecommerce aside
   from a few janky plugins. These phantom payment errors themselves are not caused
   by woocommerce, but woocommerce rigidly defining a payment date and then not 
   allowing that to be edited is a woocommerce issue.I’m aware of this analytics
   settings and have it set as date paid- this is the most applicable for finances.
 *  Plugin Support [Frank Remmy (woo-hc)](https://wordpress.org/support/users/frankremmy/)
 * (@frankremmy)
 * [2 weeks, 2 days ago](https://wordpress.org/support/topic/woocommerce-anaytics-bugs/#post-18860659)
 * Hi [@fugglesby](https://wordpress.org/support/users/fugglesby/),
 * Thank you for the clarification and for laying out both issues so clearly. It
   really helps us make sure we’re addressing the right things!
 * I’ve shared the refunded shipping deduction from net sales issue internally with
   our team so we can look into it further. We’ll circle back once we have an update
   for you on that one.
 * In the meantime, hang tight and thanks for your patience!
 *  Plugin Support [Frank Remmy (woo-hc)](https://wordpress.org/support/users/frankremmy/)
 * (@frankremmy)
 * [2 weeks, 2 days ago](https://wordpress.org/support/topic/woocommerce-anaytics-bugs/#post-18861106)
 * Hi [@fugglesby](https://wordpress.org/support/users/fugglesby/),
 * Thanks so much for your patience.
 * To make sure we’re seeing exactly what you’re seeing, could you share full screenshots
   of:
    - The affected order where the shipping cost was refunded,
    - What Analytics is showing for that same order,
    - And, if possible, the payment‑method error you mentioned. If that error is
      related, it would be very helpful for us to review it as well.
 * The initial screenshots were a bit hard to interpret, so having full‑frame captures
   will give us a clearer picture. Be sure to redact any sensitive information.
 * For the error logs, feel free to upload them on pastebin.com and just share the
   link here instead of pasting everything into the editor.
 * Looking forward to your response so we can continue investigating this.
 *  Thread Starter [fugglesby](https://wordpress.org/support/users/fugglesby/)
 * (@fugglesby)
 * [2 weeks, 1 day ago](https://wordpress.org/support/topic/woocommerce-anaytics-bugs/#post-18862017)
 * The initial screenshots where in regards to the product analytics error. There
   weren’t any screenshots regarding the net revenue/net sales refund error. [Here is a screenshot showing what that info looks like in a downloaded report. ](http://kailashblades.com/wp-content/uploads/2026/03/Screenshot-2026-03-25-190025.png)
   
   [Here is a screenshot of the order itself.Note that the sales value is 205 but when refunded it shows up as a net sales value change of -252 (including shipping) rather than -205. All our refunds are manual and performed through the orders page. It is possible that analytics shows different behaviour for orders that have status moved into refunded (and leave wordpress to figure it out) vs have refunds added to the order and then have the status moved into refunded.The payment method error is not related. The plugin is **Add Himalayan Bank Payment In WooCommerce** by Sanjeev Aryal. It’s just janky nepalese e-finance stuff.Some further info on the “move order back into processing but order date remains fixed” error. Other people have encountered the issue and have discussed solutions to it. [I have added this PHP here to my functions.php and that has fixed the issue.](https://stackoverflow.com/questions/55467742/set-back-date-paid-on-paid-order-statuses-change-in-woocommerce) I feel
   that this should be the default behaviour for woocommerce.
 *  Plugin Support [Frank Remmy (woo-hc)](https://wordpress.org/support/users/frankremmy/)
 * (@frankremmy)
 * [2 weeks, 1 day ago](https://wordpress.org/support/topic/woocommerce-anaytics-bugs/#post-18862628)
 * Thanks [@fugglesby](https://wordpress.org/support/users/fugglesby/).
 * I’ve shared it with my team and will circle back once we have an update.
 * Hang in there.
 *  Thread Starter [fugglesby](https://wordpress.org/support/users/fugglesby/)
 * (@fugglesby)
 * [2 weeks ago](https://wordpress.org/support/topic/woocommerce-anaytics-bugs/#post-18863231)
 * As I work my way deeper and deeper into cross referencing these reports I keep
   stumbling across new bugs in analytics.
   I am cross referencing our actual received
   payments from bank accounts both with the analytics export you get from the orders
   tab and an actual export from woocommerce orders itself.The net revenue for all
   3 is correct in all 3 of these sheets.The net sales/ line item costs shown in
   the actual order export unsurprisingly matches up with the information shown 
   in the order page itself. However analytics order export does not! There are 
   seemingly random rounding events all throughout the sheet . The net revenue though
   is correct which means that an inverse rounding error is happening somewhere 
   else- likely in shipping. Not all values are being rounded. Some are being left
   with the 0.5. Some are being changed from a dollar exactly to 1.50. Super strange.
   Here are 4 screenshots showing the same order with various totals in these different
   locations:[Woocommerce orders backend[Woocommerce orders export[Woocommerce analytics orders export (in error)](http://kailashblades.com/wp-content/uploads/2026/03/Screenshot-2026-03-26-190543.png)[Woocommerce analytics orders page (in error) This shows 15176 as an example of a value that SHOULD have $61 as the correct value but is being given 50 cents- presumably from shipping.](http://kailashblades.com/wp-content/uploads/2026/03/Screenshot-2026-03-26-193039-scaled.png)[At this
    stage I cannot trust analytics at all and will be manually exporting orders 
   monthly and resubmitting finance documents for the entire financial year. The
   potential implications of these analytics bugs are serious in terms of tax compliance
   and employee pay calculations and these bugs should be taken as seriously as 
   possible.
 *  Plugin Support [Frank Remmy (woo-hc)](https://wordpress.org/support/users/frankremmy/)
 * (@frankremmy)
 * [1 week, 6 days ago](https://wordpress.org/support/topic/woocommerce-anaytics-bugs/#post-18864206)
 * Hi [@fugglesby](https://wordpress.org/support/users/fugglesby/),
 * Thanks again for the additional details. Before we dig deeper into the discrepancy,
   it would really help to fully understand the exact flow you’re taking when placing
   the order and issuing the refund.
 * At this stage, we’re trying to confirm what is “as designed” versus what might
   be unexpected behavior, so getting clarity on your steps will ensure we’re troubleshooting
   in the right direction.
 * A quick clarification about shipping labels
 * The purchase or refund of a shipping label is a completely separate flow from
   the order → refund → analytics process. Shipping labels are operational costs
   and do not affect Analytics totals. So even if a label is refunded, it should
   not change your revenue or refund numbers in Analytics.
 * Just to make sure we’re aligned, the expected core flow is:
    1. Order placed
    2. Order paid (including shipping cost)
    3. Order moves to Processing
    4. Analytics records the sale
    5. Merchant issues a refund
    6. Analytics records the refund and deducts it from totals
 * This happens regardless of any shipping label purchase. To move forward, could
   you walk us through your exact steps? Specifically:
    - What was the order status before you issued the refund
    - Whether you refunded the full amount or a partial amount
    - Whether the refund included shipping charges
    - Whether you also refunded a shipping label, and if so, how
    - What you expected Analytics to show
    - What Analytics actually showed
 * Once we have that, we can determine whether the behavior matches WooCommerce’s
   design or if something is genuinely off.
 * Looking forward to your response.
 *  Thread Starter [fugglesby](https://wordpress.org/support/users/fugglesby/)
 * (@fugglesby)
 * [1 week, 6 days ago](https://wordpress.org/support/topic/woocommerce-anaytics-bugs/#post-18864268)
 * Thank you for the reply. I have not discussed shipping labels at all in these
   prior messages and am not using them in our operations at all.
   My flow matches
   your expected core flow exactly. I will answer your questions on the exact steps
   with specific reference to the example order 15190 that was provided in these
   prior screenshots.
 * [Here is a screenshot showing what that info looks like in a downloaded report.](http://kailashblades.com/wp-content/uploads/2026/03/Screenshot-2026-03-25-190025.png)
 * [Here is a screenshot of the order itself.](http://kailashblades.com/wp-content/uploads/2026/03/Edit-order-Order-%E2%80%93-January-8-2026-@-06_44-AM-%E2%80%B9-Kailash-Blades-%E2%80%94-WordPress_1-1-scaled.jpg)
    - What was the order status before you issued the refund _**Processing**_
    - Whether you refunded the full amount or a partial amount** _I processed this
      refund by moving the order status from processing to refunded. I moved the
      funds manually from my bank back to the customers account. The amount refunded
      is 100% of the payment._**
    - Whether the refund included shipping charges _**Yes**_
    - Whether you also refunded a shipping label, and if so, how _**I do not use
      shipping labels.**_
    - What you expected Analytics to show **_Net sales gain of 204. On refund a 
      Net sales refund of 204_**
    - What Analytics actually showed **_Net sales gain of 205 (weird rounding error
      described in last message)_**. **_Net sales refund of 252 (this amount corresponds
      to net sales plus shipping AKA net revenue)_**
 *  Thread Starter [fugglesby](https://wordpress.org/support/users/fugglesby/)
 * (@fugglesby)
 * [1 week, 6 days ago](https://wordpress.org/support/topic/woocommerce-anaytics-bugs/#post-18864597)
 * I have been going through things further and have confirmed the refund totals
   issue stems from refunding it by moving the status over to refunded. This just
   dumps a -100% of total revenue at the bottom of the order and analytics then 
   deducts this entire amount from net sales. Incorrect behaviour.
   If instead I 
   go into the totals at the bottom and enter a refund of the full shipping amount
   in the shipping tab and then the Net Payment amount in the “amount to refund”
   tab then analytics displays the correct behaviour of showing a net sales deduction
   that is 100% of net sales rather than 100% of net revenue. It needs the shipping
   box filled in order to make the correct calculation here. I have verified this
   behaviour for both cases.**Fixes: ****-analytics logic side:** You could place
   some logic into the calculator to ensure that the total amount deducted from 
   net sales for a specific order never exceeds 100% of the net sales taken in for
   that order. It seems that net revenue is already calculated separately so maybe
   no issues there? Perhaps some users would prefer to have this reporting take 
   into account lost shipping costs when assessing net sales but I don’t think “
   net sales’ is the right place for that to go. As you have said this is an operational
   cost.**-woocommerce side:** You could change it so that the default behaviour
   when moving an order status from processing to refunded is to fill out the shipping
   refund tab automatically. This would ensure analytics behaves correctly and seems
   a more robust approach anyway. You could keep the current behaviour of not filling
   the shipping refund form when moving status from shipped to refunded as this 
   money would presumably be spent at this point and it would maintain the current
   behaviour for those that find it useful. I think the usefulness is questionable
   though and the capability for confusion is high.
    -  This reply was modified 1 week, 6 days ago by [fugglesby](https://wordpress.org/support/users/fugglesby/).
 *  Plugin Support [Frank Remmy (woo-hc)](https://wordpress.org/support/users/frankremmy/)
 * (@frankremmy)
 * [1 week, 4 days ago](https://wordpress.org/support/topic/woocommerce-anaytics-bugs/#post-18866128)
 * Hi [@fugglesby](https://wordpress.org/support/users/fugglesby/),
 * Thanks again for the detailed write-up. It really helped us understand exactly
   what to look for!
 * I’ve thoroughly tested this on my end by placing a test order with both a product
   and a shipping cost, marking it as paid, then changing the order status to Refunded.
   After the status change, I checked Analytics → Revenue and the results were actually
   correct; net sales decreased only by the product value, and the shipping deduction
   was correctly routed into the Shipping column rather than being dumped into Returns
   or mixed into the net sales calculation. See screen recording: [https://streamable.com/wvk2h9](https://streamable.com/wvk2h9).
 * This suggests the issue may be isolated to your site’s specific setup rather 
   than a universal bug. A couple of things stand out that could explain the difference:
    - You’re on 10.2.2, while the latest is 10.6.1. There have been several fixes
      to refund handling and analytics calculations across those versions, and it’s
      possible this specific behavior was already addressed in a later release.
    - Your store is running with HPOS disabled (legacy CPT order storage), while
      my test used HPOS enabled. The way refund records are written to the database
      can differ between these two datastores, which could affect how analytics 
      calculates the figures.
    - Since you mentioned using a local Nepali payment gateway plugin, it’s possible
      that plugin is writing the refund record differently than a standard gateway
      would, which could affect what Analytics reads and deducts.
 * We’d recommend trying the following:
    - Update WooCommerce to 10.6.1. This is the most impactful step and may resolve
      the issue on its own
    - After updating, test the same scenario (status → Refunded) and check Analytics
      → Revenue again to see if the behavior has changed
    - Try testing with a different payment method like Stripe (test mode) and see.
 * If the issue persists after updating, please do let us know and we’ll continue
   digging. We’re happy to keep investigating once you’ve had a chance to update.
 * I hope that helps. Let us know if you need anything else.
    -  This reply was modified 1 week, 4 days ago by [Frank Remmy (woo-hc)](https://wordpress.org/support/users/frankremmy/).
 *  Thread Starter [fugglesby](https://wordpress.org/support/users/fugglesby/)
 * (@fugglesby)
 * [1 week, 3 days ago](https://wordpress.org/support/topic/woocommerce-anaytics-bugs/#post-18866580)
 * Hey there Frank
    -  as part of earlier troubleshooting I already updates to 10.6.1 and so was
      on that version when providing updated information.
    - I wasn’t aware of HPOS- sounds good but also potentially site breaking. Our
      website is based around custom products made to order with lots and lots of
      options which is not particularly common so it relies on some quite old plugins.
    - For this torubleshooting I have been creating orders, receiving payments manually
      through admin. Zero interaction with this plugin.
 * **Your recommendations:**
    - as part of earlier troubleshooting I already updates to 10.6.1 and so was 
      on that version when providing updated information.
    - See above
    - Payment method shouldn’t be relevant here- these status changes were done 
      by admin from product page.
      Maybe if you try without HPOS you can replicate
      this behaviour?
 *  Plugin Support [shahzeen(woo-hc)](https://wordpress.org/support/users/shahzeenfarooq/)
 * (@shahzeenfarooq)
 * [1 week, 2 days ago](https://wordpress.org/support/topic/woocommerce-anaytics-bugs/#post-18867527)
 * Hi there!
 * Thank you for the update.
 * I am able to replicate the issue you reported regarding refunds when changing
   the order status to “Refunded.”
 * I am currently discussing this internally and will update you as soon as possible
   with any findings or next steps.
 *  Plugin Support [shahzeen(woo-hc)](https://wordpress.org/support/users/shahzeenfarooq/)
 * (@shahzeenfarooq)
 * [2 days, 12 hours ago](https://wordpress.org/support/topic/woocommerce-anaytics-bugs/#post-18873448)
 * Hi there!
 * This is a follow-up to inform you that we have created a bug report here:
   [https://github.com/woocommerce/woocommerce/issues/64035](https://github.com/woocommerce/woocommerce/issues/64035)
 * For further updates, I suggest keeping an eye on this GitHub thread.
 * Thank you.

Viewing 14 replies - 1 through 14 (of 14 total)

You must be [logged in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fwordpress.org%2Fsupport%2Ftopic%2Fwoocommerce-anaytics-bugs%2F%3Foutput_format%3Dmd&locale=en_US)
to reply to this topic.

 * ![](https://ps.w.org/woocommerce/assets/icon.svg?rev=3234504)
 * [WooCommerce](https://wordpress.org/plugins/woocommerce/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/woocommerce/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/woocommerce/)
 * [Active Topics](https://wordpress.org/support/plugin/woocommerce/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/woocommerce/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/woocommerce/reviews/)

 * 14 replies
 * 3 participants
 * Last reply from: [shahzeen(woo-hc)](https://wordpress.org/support/users/shahzeenfarooq/)
 * Last activity: [2 days, 12 hours ago](https://wordpress.org/support/topic/woocommerce-anaytics-bugs/#post-18873448)
 * Status: not resolved