Title: Product Performance Score for WooCommerce
Author: eezznet
Published: <strong>July 21, 2026</strong>
Last modified: July 21, 2026

---

Search plugins

![](https://ps.w.org/product-performance-score-for-woocommerce/assets/icon-256x256.
png?rev=3616378)

# Product Performance Score for WooCommerce

 By [eezznet](https://profiles.wordpress.org/daijianpu/)

[Download](https://downloads.wordpress.org/plugin/product-performance-score-for-woocommerce.1.2.6.zip)

 * [Details](https://wordpress.org/plugins/product-performance-score-for-woocommerce/#description)
 * [Reviews](https://wordpress.org/plugins/product-performance-score-for-woocommerce/#reviews)
 *  [Installation](https://wordpress.org/plugins/product-performance-score-for-woocommerce/#installation)
 * [Development](https://wordpress.org/plugins/product-performance-score-for-woocommerce/#developers)

 [Support](https://wordpress.org/support/plugin/product-performance-score-for-woocommerce/)

## Description

Product Performance Score for WooCommerce helps a store owner see which products
are performing better inside the current store and which products deserve review.

The score uses one fixed formula at every stage:

 * 20% unique product views.
 * 30% carts after a product detail view in the same session.
 * 50% paid order performance.

Every product has its own tracking start date and moves through four data stages:

 * Initial stage: 1 to 6 complete days. A score can appear after at least one valid
   view, with a clear limited-data warning.
 * Building stage: 7 to 13 complete days, requiring at least 10 valid views.
 * Stabilizing stage: 14 to 20 complete days, requiring at least 20 valid views.
 * Standard stage: 21 or more complete days, using the latest 21 complete days and
   requiring at least 30 valid views.

The publication day is not a complete day. Before the first complete day finishes,
the product shows a waiting status rather than a score.

Early, building, stabilizing, and standard scores all use the same PPS formula. 
Only the amount of observed data and the comparison window change. A new product
published long after plugin installation still starts from its own initial stage.

All H, I, and S ranks use the same full, same-window candidate set. Products with
zero carts after view receive I = 0, and products with zero paid orders receive 
S = 0. The plugin does not create separate non-zero ranking pools.

Only current standard-stage scores enter the store average. The store average is
a simple arithmetic mean and does not remove the highest or lowest products.

The plugin supports WooCommerce simple products and variable parent products. Variation
views, carts, and orders are attributed to the parent product.

The Score column includes a WordPress help icon. Hover the score or focus it with
the keyboard to see the product’s saved scoring details without recalculating data.

### Privacy

The plugin uses one short-lived first-party cookie, `eezz_pps_sid`, to deduplicate
product views and carts inside an anonymous session. The database stores only an
HMAC-SHA256 hash of that cookie value.

Product view requests also include a stable HMAC token tied to the product ID. This
reduces blind or cross-site pollution of the public analytics endpoint, but it is
not intended to stop an attacker who can fetch and replay a public product page.

The plugin does not store IP addresses, full user agents, names, emails, phone numbers,
full browsing paths, or order IDs in its custom tables. It does not send data to
third-party services.

## Screenshots

[⌊The Product Scores dashboard with store scoring progress and product metrics.⌉⌊
The Product Scores dashboard with store scoring progress and product metrics.⌉[

The Product Scores dashboard with store scoring progress and product metrics.

[⌊The Score column and scoring detail tooltip in the WooCommerce product list.⌉⌊
The Score column and scoring detail tooltip in the WooCommerce product list.⌉[

The Score column and scoring detail tooltip in the WooCommerce product list.

[⌊Standard product scores compared with the store average.⌉⌊Standard product scores
compared with the store average.⌉[

Standard product scores compared with the store average.

[[

## Installation

 1. Upload the plugin ZIP from the WordPress Plugins screen.
 2. Activate the plugin.
 3. Keep WooCommerce active.
 4. Open Product Scores from the WordPress admin menu.

The plugin starts collecting immediately. A product can first display a score after
its first complete calendar day, provided it has at least one valid view and the
store has at least five comparable products in the same window.

Do not use Network Activate on WordPress Multisite. v1 should be activated per site.

v1 keeps product tracking dates when the plugin is deactivated and later reactivated.
Days while the plugin is inactive are not reconstructed.

## FAQ

### Does the plugin support HPOS?

Yes. Orders are read through WooCommerce CRUD APIs, so the plugin declares compatibility
with WooCommerce custom order tables.

### Does the plugin score variations separately?

No. Variations are attributed to their variable parent product.

### Does the plugin use revenue or profit?

No. v1 scores order count, not revenue, quantity, margin, inventory, or advertising
attribution.

### Are WooCommerce Subscriptions renewal orders counted?

Yes. A paid renewal order is treated like another paid WooCommerce order. v1 does
not add special subscription exclusions.

### How are refunds handled?

PPS does not analyze refunds, returns, disputes, or after-sale outcomes. If an order
has a valid `date_paid`, the product counts once as a paid order for that payment
date. A later full or partial refund does not remove that historical payment event
from PPS.

### Why can Carts after view differ from All cart sessions in a selected window?

Carts after view are attributed to the original unique-view date so that they remain
bounded by Unique product views. All cart sessions are attributed to the actual 
add-to-cart date. At a rolling-window boundary, the two counters can therefore differ
without indicating corrupt data.

### Does it create charts or CSV exports?

No. v1 provides a simple WooCommerce admin page and a PPS column on the product 
list.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Product Performance Score for WooCommerce” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ eezznet ](https://profiles.wordpress.org/daijianpu/)

[Translate “Product Performance Score for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/product-performance-score-for-woocommerce)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/product-performance-score-for-woocommerce/),
check out the [SVN repository](https://plugins.svn.wordpress.org/product-performance-score-for-woocommerce/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/product-performance-score-for-woocommerce/)
by [RSS](https://plugins.trac.wordpress.org/log/product-performance-score-for-woocommerce/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.2.6

 * Preserved the last valid score when a product is paused and restored normal scoring
   when it becomes purchasable again.
 * Added suggested privacy-policy text for the anonymous scoring cookie and short-
   lived session data.
 * Added WooCommerce dependency metadata.
 * Tightened REST token validation and scoped the anonymous cookie to the WordPress
   path.
 * Simplified the Product Scores support link for a cleaner WordPress admin experience.

#### 1.2.5

 * Refined the Product Scores admin layout and support area.
 * Improved responsive admin presentation for desktop, tablet, and mobile screens.

#### 1.2.4

Moves Product Scores to its own WordPress admin menu and improves score-tooltip 
text contrast. No scoring, tracking, order, or database logic changed.

#### 1.2.3

Adds a WordPress help icon beside product scores, simplifies score tooltips so each
product state only shows relevant information, renames admin metrics for clearer
session-based meaning, keeps product phase separate from paused status, and clarifies
the difference between store scoring progress and each product’s own stage.

#### 1.2.2

Adds an always-visible four-stage scoring progress rail and score-detail tooltips.
Fixes pending products being omitted from In Progress counts, prevents business 
anomaly notes from hiding valid scores, distinguishes uncalculated values from real
zero metrics, and improves Product Scores labels.

#### 1.2.1

Simplifies paid-order handling. PPS now treats `date_paid` as the transaction event
and does not inspect refund quantities or refund amounts. Orders remain countable
after later status changes such as full or partial refunds, provided the WooCommerce
order record retains its payment date.

#### 1.2.0

Adds first-week scoring with limited-data warnings and replaces the old stage names
with Initial, Building, Stabilizing, and Standard. Fixes carts-after-view date attribution,
carts-after-view validation, lifecycle resets after stock recovery, phase filters,
anomaly visibility in small candidate pools, subscription renewal handling, and 
the PHP namespace migration to `EEZZPPS`.

Because carts after view now belong to the original unique-view date, upgrading 
from a version earlier than 1.2.0 performs a one-time reset of PPS daily/session
tracking and product score lifecycle data. Existing WooCommerce products and orders
are not modified. Tracking restarts automatically with the corrected metric semantics.

#### 1.1.3

Fixes lifecycle repair retry successor scheduling, schema health-lock safe mode,
owner-safe repair state updates, enrollment-state migration, stale PPS meta self-
healing, and uninstall coverage.

#### 1.1.2

Fixes active-run heartbeat recovery across site timezones, generation-aware Action
Scheduler dedupe, orphan retry marker recovery, install-lock takeover handling, 
and per-product session reset recovery.

#### 1.1.1

Fixes retry successor scheduling, paid-order date range precision, lifecycle dirty
recovery, runtime generation shutdown safety, result meta write amplification, and
stricter schema validation.

#### 1.1.0

Hardens recalculation, schema verification, cleanup retry, install locking, and 
product meta writes for repeat scheduled runs and concurrent workers.

#### 1.0.0

Initial release.

## Meta

 *  Version **1.2.6**
 *  Last updated **4 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.0.2**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [analytics](https://wordpress.org/plugins/tags/analytics/)[performance](https://wordpress.org/plugins/tags/performance/)
   [products](https://wordpress.org/plugins/tags/products/)[woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/product-performance-score-for-woocommerce/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/product-performance-score-for-woocommerce/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/product-performance-score-for-woocommerce/reviews/)

## Contributors

 *   [ eezznet ](https://profiles.wordpress.org/daijianpu/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/product-performance-score-for-woocommerce/)