
On the surface, this global payment portfolio looked incredibly healthy: a steady 93.12% approval rate across $20.28M in Total Payment Volume (TPV). But macro-level KPIs often lie. By diving into the raw transaction data, I discovered that these aggregated metrics were masking severe revenue leakage and operational bottlenecks concentrated in just a few key international corridors
The Stack & Scope
β’ Tools Used: SQL Server, SQL, Power BI, Root Cause Analysis
β’ Dataset Scale: 200,000 global transactions totaling $20.28M TPV and $208.58K in processing fee revenue

Executive Insight: This dashboard serves as the operational command center. It highlights how a healthy 93.12% aggregate approval rate completely masks severe performance drops in regional corridors.

--Hypothesis 1--
--Countries may have different approval rates--
SELECT
Country,
COUNT(*) AS Transactions,
ROUND(
100.0 *
SUM(CASE WHEN Status='Approved' THEN 1 ELSE 0 END)
/ COUNT(*),
2
) AS ApprovalRate
FROM Stripe
GROUP BY Country
ORDER BY ApprovalRate ASC;
SELECT
Country,
SUM(Revenue) AS Revenue
FROM Stripe
GROUP BY Country
ORDER BY Revenue DESC;
SELECT
Country,
ROUND(
100.0 *
SUM(CASE WHEN FraudFlag='Yes' THEN 1 ELSE 0 END)
/ COUNT(*),
2
) AS FraudRate
FROM Stripe
GROUP BY Country
ORDER BY FraudRate DESC;
--Hypothesis 2--
--Certain payment methods may perform better than others--
SELECT
PaymentMethod,
COUNT(*) AS Transactions,
ROUND(
100.0 *
SUM(CASE WHEN Status='Approved' THEN 1 ELSE 0 END)
/ COUNT(*),
2
) AS ApprovalRate
FROM Stripe
GROUP BY PaymentMethod
ORDER BY ApprovalRate ASC;
SELECT
PaymentMethod,
SUM(Revenue) AS Revenue
FROM Stripe
GROUP BY PaymentMethod
ORDER BY Revenue DESC;
--Hypothesis 3--
--Fraud controls may be causing additional declines--
SELECT
DeclineReason,
COUNT(*) AS Declines
FROM Stripe
WHERE Status = 'Declined'
GROUP BY DeclineReason
ORDER BY Declines DESC;