How do customers feel about their banking app overall?
Sentiment scored using VADER (a pre-trained NLP model) on each review. Range bars show the 25th-75th percentile of scores; the dot shows the median. Brands sorted by descending median within each group.
Where does each brand win and lose by topic?
Average sentiment score broken down by topic and brand. Darker coral = strongly positive. Blue = negative. Grey = neutral or mixed. Brands ranked by overall sentiment within each group.
Which topics dominate customer reviews by brand?
Percentage of reviews that mention each topic. Note: a single review can mention multiple topics, so percentages do not add to 100. Brands with high 'tagged' totals have more topically specific reviews.
Which brands are improving or declining over time?
Quarterly average sentiment score. Only four brands have sufficient longitudinal data (Atom Bank, HSBC, Kroo, Zopa) - shown in full colour. All other brands were scraped in Q1-Q2 2026 only and are shown as grey dashed lines. This is a data coverage limitation, not a reflection of those brands' trends.
How does sentiment vary within each topic - and which brands are most polarised?
Range bars show the 25th-75th percentile spread of sentiment scores for each brand on the selected topic. A wide bar means polarised reviews - some customers very happy, others very unhappy. Toggle between topics using the buttons above.
Which brands actually respond to their customers?
Percentage of all reviews that received a brand reply on Google Play. The lighter bar shows the reply rate for negative reviews specifically - a key signal of whether brands are prioritising unhappy customers or just managing overall metrics.
Where does one brand win or lose against another - and what does the customer language actually say?
Select two brands and a topic to see the sentiment gap between them. The bar chart breaks down where each brand wins or loses topic by topic. Review quotes below show the verbatim language driving the gap - the raw material for acquisition messaging.
What Starling customers love
"Best bank - 24/7 support, instant notifications. Friendly and always willing to go the extra mile."Customer service
"The staff has been nothing but helpful. Always willing to go the extra mile, help me understand things."Customer service
What Santander customers complain about
"Had to verify due to law changes. App glitched, notification gone. Phoned Santander - told to wait. Three hours on hold."Customer service
"Transfers don't specify which account money went to. Other banks do this. Completely useless."Customer service
How this was built
This started as a personal project to explore how customers actually feel about their banking apps - not through surveys or focus groups, but through the language they use when they think no one important is reading. Reviews were collected using two open-source Python libraries - google-play-scraper and app-store-scraper - pulling the 500 most recent Google Play reviews per brand across 14 UK banking apps. iOS scraping was attempted but the Apple App Store API returned empty results across all brands, likely due to a change in their endpoint. The final dataset contains 7,000 Android reviews spanning June 2024 to June 2026, though most brands are concentrated in Q1-Q2 2026 given how the scraper orders results.
Each review was scored using VADER (Valence Aware Dictionary and sEntiment Reasoner), a lexicon-based sentiment model designed for short social text. VADER returns a compound score between -1 (most negative) and +1 (most positive). It was chosen over transformer-based models for speed and interpretability - the scores are human-readable and the thresholds are consistent. One known limitation is that VADER can misread sarcasm or highly domain-specific language, which is relevant in financial services where terms like "charges" or "blocked" carry negative connotations that may not always reflect negative intent.
Topics were assigned using a keyword matching approach rather than unsupervised modelling. Six topic categories were defined - app performance, customer service, fees & charges, fraud & security, onboarding, and payments - each with a set of associated keywords. Reviews were tagged if any keyword appeared in the text, and a single review could receive multiple topic tags. This approach is transparent and auditable but will miss nuanced mentions where the relevant concept is implied rather than stated directly. A more sophisticated approach using embeddings or fine-tuned classification would improve recall, particularly for short reviews.
The dataset reflects a single scrape in mid-2026 and is not continuously updated. Review volume is uneven across brands - brands with smaller user bases or lower review rates are underrepresented. The longitudinal drift analysis is only meaningful for four brands (Atom Bank, HSBC, Kroo, Zopa) which had sufficient review history in the scraped data. Star ratings and VADER sentiment scores occasionally diverge - a known phenomenon where customers rate generously but write critically, or vice versa. All findings should be treated as directional rather than definitive.