Woo Revenue Incident Graph

Privacy

This service is built so that the data it would be embarrassing to hold never arrives in the first place.

What a connected store sends

What is not collected at all

Error logs. A PHP or WooCommerce log line is a strong diagnostic signal and is also the single most dangerous thing to read: third-party gateway plugins write payment identifiers, customer email addresses, absolute paths and whole API responses into them. Normalising arbitrary text from software this project does not control cannot be proven safe, so none of it is read. The field is empty by design and every answer says so, rather than letting an empty list read as "no errors". What that costs.

What is never collected

No customer name, email, phone, address or IP. No order numbers, order contents or purchase history. No card details or payment method information. No payment intent, charge, customer, session or transaction identifiers. No API keys, cookies, nonces or authorization headers. No webhook URLs, secrets or bodies. No log files or database dumps. No wp-config values, absolute paths or table prefixes.

This is enforced twice: the plugin never reads those values, and the service scans every arriving snapshot and refuses the whole request if one is present. A refused snapshot is not cleaned and kept — accepting a scrubbed version would teach the sending plugin that identifiers are acceptable.

The refusal returns a code and nothing else. Telling the sender which field looked like an email address would itself be a description of the merchant's data.

Order notes

Order notes are where a payment failure explains itself, and also where a customer's name or email is most likely to appear. The note text is classified into one of the nine labels above on the store and then discarded. The text never leaves the site, and the snapshot reports how many notes were dropped so the count is not silently lossy.

Buckets, not moments

Counts are aggregated into hourly or quarter-hourly buckets, and a change's timestamp is bucketed rather than exact. A bucket containing one order is a bucket that could be narrowed to one customer; the aggregation is what stops that.

Connecting, and stopping

The plugin makes no outbound request at all until an administrator explicitly connects the store. Disconnecting removes the schedule and the stored secret together, and deleting the plugin removes both as well.

What this service does not do

It does not read your orders, customers or payment records — it has no credential that could. It does not modify anything. It does not sell data.