Signal recipe · Reviews
A review signal: what 1,120 one and two-star reviews say about 30 UK energy suppliers, and who answers them
A TrustScore tells you how well a company collects reviews. The one and two-star reviews tell you what its customers are actually fighting with this week. Here is how to read them for a whole market, and how to get them every Monday.
Every unhappy customer who writes a review is telling the market something specific: the phone line that never answers, the estimated bill, the smart meter that stopped sending readings, the refund that takes three months. For the company's competitors that is the most useful data there is. It says where the other side is weak right now, in the customers' own words, with a date on it.
If you run marketing or customer experience at a challenger brand, sell to companies in a crowded consumer market, broker contracts, or advise on service quality, that is the signal you want: across a whole category, how many recent reviews are negative, what they are about, and which companies answer them.
We built it for 30 UK energy suppliers on 15 October 2026 with our trustpilot-reviews Actor on Apify. It reads each company's public Trustpilot page the way a logged-out visitor sees it: star rating, title, text, dates, whether the review was invited, and the company's reply with its date. Every number below is from those runs. Reviews are written by members of the public, so this post shows counts only: no reviewer names, and no review text.
The signal, written as two inputs
The 30 suppliers: 16 household suppliers in Great Britain, 4 in Northern Ireland and 10 that sell to businesses, from Octopus Energy and British Gas to Crown Gas & Power. Brands that have closed or moved their customers to another supplier (Shell Energy, Bulb, Boost, Rebel Energy) were left out. The list is recipe-3-companies.txt.
The first run is a snapshot: every review from the last 90 days, newest first, up to 100 per company, plus one business row each with the TrustScore and review counts.
{
"companies": ["octopus.energy", "britishgas.co.uk", "edfenergy.com", "eonnext.com", "ovoenergy.com"],
"maxReviewsPerCompany": 100,
"dateFrom": "90 days",
"sort": "recency",
"includeCompanyInfo": true
}The second run is the complaint pull: only one and two-star reviews from the last 30 days, again up to 100 per company.
{
"companies": ["octopus.energy", "britishgas.co.uk", "edfenergy.com", "eonnext.com", "ovoenergy.com"],
"stars": ["1", "2"],
"maxReviewsPerCompany": 100,
"dateFrom": "30 days",
"sort": "recency",
"includeCompanyInfo": false,
"onlyNew": true
}Three notes on the fields:
companiestakes the website domain or a Trustpilot review link from any country site. We checked the 30 first withmaxReviewsPerCompany: 0, which returns only the business row, so a wrong guess costs next to nothing. 18 of our 72 guessed domains had no Trustpilot page and came back as free rows, and one,eon.co.uk, turned out to be a film production company.dateFromtakes a date or a period like30 days. With newest-first order the Actor stops reading a company at that date, so it only reads the pages it needs.onlyNewremembers which reviews it has already returned for this exact input, in your own Apify account. It is what makes the weekly version below cheap.
What came back
- The snapshot: 2,358 reviews and 30 business rows. At $0.50 per 1,000 rows, a user on the free or Starter plan pays $1.16 for the main run and $0.05 for one retry (E.ON Next's page timed out after 40 reviews, so we ran that company again on its own).
- Only 319 of the 2,358 recent reviews (13.5%) are one or two stars. 1,858 (79%) are five stars.
- But 1,599 of them (68%) were invited by the company, and invited reviews are a different population. 4% of invited reviews are one or two stars. Of the 759 organic reviews, written by people who went to Trustpilot on their own, 34% are.
- The complaint pull: 1,120 one and two-star reviews from the last 30 days, at 28 of the 30 suppliers, in 3 minutes 53 seconds, for $0.56. firmus energy and SEFE Energy had none in the period.
- 43% of the 1,120 are about getting through to someone: hold times, call-backs that never come, emails with no answer. Billing comes second (30%) and smart meters third (28%).
- 86% of the one and two-star reviews that were at least three days old had a reply from the company. 61% of those at least a day old were answered within 24 hours. The median reply came after 15 hours.
Invited and organic reviews are two different signals
Trustpilot shows how each review arrived. Most of these suppliers send customers an invitation after a call or a meter fitting, and those customers are mostly happy. People who go looking for the review page are mostly not.
| Reviews in the snapshot | Reviews | Five stars | One or two stars |
|---|---|---|---|
| Invited by the company | 1,599 | 86.9% | 4.0% |
| Organic | 759 | 61.8% | 33.6% |
| All | 2,358 | 78.8% | 13.5% |
That is why two suppliers with similar service can show very different scores. British Gas has a TrustScore of 4.4; 86 of its 100 newest reviews were invited. British Gas Lite, a separate brand in the same group, has 1.1; 44 of its 45 reviews in the 90 days were organic, and 44 of the 45 were one or two stars. At the business suppliers that invite few customers, the organic reviews are mostly good: Corona Energy (98 organic reviews of 100) and Pozitive Energy (88 of 100) have 5% and 8% one or two-star reviews.
So for a competitor signal, ignore the TrustScore and read two things: the organic reviews, and the one and two-star reviews whichever way they arrived. 37% of the 1,120 one and two-star reviews in the complaint pull came through an invitation, which means the customer was unhappy enough to say so in the company's own survey.
What the unhappy customers write about
We grouped the 1,120 complaint reviews with keyword lists in code: a review counts for a theme when its title or text contains one of the theme's phrases, ignoring case. A review can count for several themes. 146 (13%) matched none, mostly reviews of a line or two that only say the service was bad.
| Complaint theme | Reviews | Share | Example phrases we match |
|---|---|---|---|
| Getting through to someone | 482 | 43% | on hold, call back, no response, chase, live chat |
| Billing and estimated bills | 338 | 30% | bill, estimated, overcharged, statement |
| Smart meters and readings | 308 | 28% | smart meter, meter, readings, in-home display |
| Switching, moving and closing accounts | 293 | 26% | switched, moving home, final bill, cancel |
| Tariffs and prices | 198 | 18% | tariff, unit rate, standing charge, price |
| Engineers and appointments | 182 | 16% | engineer, appointment, installation, no-show |
| Refunds and credit balances | 179 | 16% | refund, credit balance, money back, owed |
| Rude or unhelpful staff | 156 | 14% | rude, unhelpful, attitude, no idea |
| Direct debit and payments | 150 | 13% | direct debit, payment plan, monthly payments |
| Formal complaints and the ombudsman | 131 | 12% | ombudsman, formal complaint, escalated |
| Contracts and renewals | 113 | 10% | contract, renewal, rolled over, deemed, broker |
| Debt collection and court | 91 | 8% | debt, collectors, court, warrant, credit file |
| Broadband, phone and other services | 85 | 8% | broadband, home phone, mobile, boiler |
| Solar, EV and export | 74 | 7% | solar, export, EV, heat pump, battery |
| Prepayment and top-ups | 36 | 3% | prepay, top up, emergency credit |
The full phrase lists are in recipe-3-analysis.py. Change them for your own market; the method is the same.
The mix changes by customer type, and that is where the signal gets specific:
- Business suppliers: billing leads (41% of their 181 complaint reviews), then getting through (40%), contracts and renewals (26%) and formal complaints (21%). A business customer who is unhappy is often in a contract dispute, not just on hold.
- Household suppliers: getting through leads (44% of 924), with smart meters and billing tied at 28%.
- One supplier at a time: British Gas's complaints mention engineers and appointments in 39% of cases, because it also sells boiler cover and repairs. At OVO, direct debits come up in 26%. At Utility Warehouse, which sells broadband and mobile too, 37% are about those other services.
Who answers bad reviews, and how fast
A reply is public, it has a date, and it shows how a company treats an unhappy customer in front of the next one. We measured it on the complaint pull, and only counted reviews that were old enough to have had a fair chance: at least 24 hours old for "answered within a day", at least three days old for "answered at all".
| Supplier | One and two-star reviews a day | Answered within 24 hours | Median time to reply |
|---|---|---|---|
| E.ON Next | 35.9 | 69 of 69 | 4.7 hours |
| Octopus Energy | 26.6 | 21 of 68 | 23.3 hours |
| British Gas | 15.6 | 87 of 87 | 0.5 hours |
| ScottishPower | 15.3 | 47 of 77 | 22.6 hours |
| OVO | 10.3 | 84 of 90 | 17.5 hours |
| Utility Warehouse | 10.3 | 69 of 86 | 2.6 hours |
| EDF | 8.0 | 58 of 86 | 11.3 hours |
| Yü Energy | 3.1 | 13 of 86 | 21.3 hours |
| So Energy | 2.2 | 35 of 60 | 21.5 hours |
| Fuse Energy | 1.7 | 4 of 49 | 96.0 hours |
| SmartestEnergy | 1.0 | 26 of 28 | 2.9 hours |
| Pozitive Energy | 0.4 | 0 of 13 | 108.6 hours |
Reviews a day is over the 30 days, or over the days our 100 reviews covered when a supplier had more than 100 in the month (E.ON Next's 100 covered under three days). The other 18 suppliers and every column are in companies.csv.
Three patterns stand out:
- The big suppliers run reply desks. British Gas answered all 87 of its one and two-star reviews that were a day old within 24 hours, and its median reply came 30 minutes after the review. E.ON Next and Utility Warehouse also reply within hours.
- Some reply to everything, slowly. Pozitive Energy answered all 11 of its older complaint reviews, but none within a day; the median was four and a half days. Fuse Energy took four days at the median and had answered 33 of 48.
- Some don't reply at all. British Gas Lite answered none of its 13 one and two-star reviews that were three days old or more, and Corona Energy none of 5. Yü Energy, with the lowest TrustScore among the active business suppliers (3.7), had answered 25 of 77.
Read the themes once
Keyword grouping is fast and you can check every match, but it is crude, so read a sample before you act on it:
- It finds words, not meaning. "No issues with the meter" counts for smart meters. That is rare in one-star reviews, but check a few per theme.
- Short reviews match nothing. 13% of the complaint reviews fall in no theme. Add phrases when you see a pattern; don't stretch the lists until everything matches.
- Reviews are not a random sample of customers. They are the people who chose to write, plus the ones a company invited. Compare a supplier with itself over time, or one theme across suppliers, rather than reading a share as a fact about all customers.
- A reply date is the date Trustpilot shows for the reply. Some companies edit their replies, which can move the date.
The weekly version: a competitor's unhappy customers, in Slack
The useful form of this signal is a message every Monday: for each competitor, how many one and two-star reviews arrived in the last seven days, what they were about, and how many got a reply, with links to the newest few. It is a view of where each competitor is struggling, for your product, marketing and service teams. It is not a list of people to contact: the Actor's terms ask you not to contact or profile reviewers, and the workflow never touches reviewer names.
We use an n8n workflow with five nodes for it:
- Schedule Trigger, every Monday at 08:00.
- Competitors and filters (a Set node): the companies' domains, one per line, the stars to keep (
1, 2) and the period (7 days). - Apify, Run actor and get dataset: runs trustpilot-reviews with
onlyNew: true, up to 200 reviews per company and 2,000 rows in all, with a $1 cap on the run. - Code: groups the reviews by company, counts the themes with the same phrase lists as this post, works out the reply share, and builds one message with links to the three newest reviews per company (titles only). A quiet week sends nothing.
- Slack: posts it to the channel you pick.
Download review-signal-to-slack.json. It comes with this post's 30 suppliers filled in; replace them with your own competitors.
Setup takes about five minutes:
- In n8n, open Workflows > Import from file and pick the JSON.
- The workflow uses the verified Apify node (
@apify/n8n-nodes-apify). n8n Cloud installs it from the canvas; on self-hosted n8n, add it under Settings > Community nodes. - In the Apify node, create an Apify API credential with your token from the Apify console (Settings > API & Integrations).
- In Post to Slack, pick your Slack credential and the channel.
- Edit Competitors and filters. Run it once by hand: the first run returns the last seven days, and from then on each Monday brings only the new week.
What it costs: across these 30 suppliers, about 136 one and two-star reviews arrive a day, so a weekly run is about 950 rows, or $0.48. A supplier with more than 200 bad reviews a week (E.ON Next had about 250) will hit the per-company limit on a weekly schedule; for those, set the trigger to daily and the period to 2 days, and the same message works as a daily digest. On Apify's free plan a run returns up to 1,000 rows; any paid plan removes the cap.
If you work from Claude Code or another MCP client
With the Apify MCP server connected, this prompt does the same job for your own category and gives you tables:
Use the Apify Actor locaihost/trustpilot-reviews. First run it with maxReviewsPerCompany 0 on these
domains to check each one has a Trustpilot page: [your 10 to 30 competitors]. Then run it on the ones
that exist with stars ["1","2"], dateFrom "30 days", maxReviewsPerCompany 100, includeCompanyInfo false.
The price is $0.50 per 1,000 rows; tell me the expected row count before the second run.
Do not show or store reviewerName. Group the reviews into complaint themes with keyword lists you
show me first, and give me per company: one and two-star reviews a day, the top three themes with
their share, the share of reviews older than 24 hours that got a reply within 24 hours, and the
median hours to reply. List any theme where one company's share is twice the average.More ways to use the review signal
- Positioning and ads. If 43% of a market's complaints are about getting through to someone, "a person answers in two minutes" is a claim worth testing, and the theme counts tell you which competitor to compare yourself with.
- Your own service team. Put your own domain in the list. The themes and reply times sit next to your competitors', in the same format, every week.
- Category research. Any market with busy Trustpilot pages works the same way: banks and fintech apps, broadband, airlines, delivery firms, online retailers, VPNs. Swap the domains and the phrase lists.
- Brokers and switching services. A rise in contract and renewal complaints at one business supplier is a reason to call the customers you placed there before their renewal date.
- Investors and analysts. A sudden jump in one theme (billing after a system migration, say) shows up in reviews within days, long before it shows up in a regulator's complaint figures.
- Score tracking. Keep
includeCompanyInfoon withonlyNew, and a business row comes back only when the TrustScore or review count changed.
Notes
- The sample. 30 UK energy suppliers with an active Trustpilot page, picked by us: 16 household suppliers in Great Britain, 4 in Northern Ireland, 10 business suppliers. It is not every supplier in the market.
- The runs. Snapshot run
MpDPBn28NabBlLoRSon 15 October 2026 at 04:57 UTC (395 seconds, 2,298 reviews and 30 business rows), thenlTXbPzQw9ciFlIYScfor E.ON Next alone (100 reviews), whose rows replace the 40 from the first run. Complaint run2wJfjfHnZ91cXV9M2(233 seconds, 1,120 reviews), thenwU4Q8947iivcb8Jgnwith the same input, which returned nothing and charged nothing becauseonlyNewhad already sent every review. - What "invited" means here. Any review whose source is not Trustpilot's "Organic": invitation emails, invitation links and the links a company shares itself.
- No personal data in the outputs. The run script drops reviewer names before saving anything, and the files next to this post hold counts per company only.
- Reproduce it. The company list, the run script and the analysis script are next to this post, with the computed results.
If you run this on your own category, post two numbers in the comments: the share of one and two-star reviews among organic reviews, and among invited ones. If the gap is as wide as it was here, the next reader will know how little a TrustScore says on its own.
Source: public Trustpilot pages of 30 UK energy suppliers, read by locaihost data on 15 October 2026.