Promotion spend · Decision rules
ZaloPay — promotion budget concentration
Where the promotion budget actually goes, and a recommendation scoped to what the data can support.
- My role
- Independent analyst · Sole contributor
- Period
- 2026 · Approximately 1 month
- Engagement
- Self-directed case study; completed individually
Business objective: Prioritise promotion-cost review while balancing investigation workload against customer impact.
My ownership: I completed this project independently from end to end: framed the question, prepared and validated the data, performed the analysis, built the reporting output, and wrote the recommendations and limitations.
A digital wallet runs promotional campaigns. Which users should a limited review team look at first, and what share of the promotion budget does that queue actually cover?
254K transactions and 90.6K users scored on six behavioural signals, built twice — once in T-SQL and once in pandas — and reconciled against each other. 4.26% of scored users are associated with 26.94% of credited promotion cost, a concentration that exists before any rule is applied. The recommendation is a shadow-mode review queue rather than auto-blocking, because the data carries no fraud labels.
- Six behavioural signals. Velocity, shared device and IP, referral patterns, reciprocal transfers — engineered in T-SQL, simulated in pandas, reported in Power BI.
- Reconciled the two implementations independently. The SQL and the Python were written to produce the same numbers and then checked against each other. Two implementations that agree are evidence; one implementation is an assertion.
- Framed it as queue economics, not detection. The question a review team has is not 'who is suspicious' but 'how much cost does an investigator-hour cover'. The output is a five-page decision report trading workload against coverage.
What the evidence says
What it found.
The budget is concentrated before any rule is applied
4.26% of scored users are associated with 26.94% of credited promotion cost. That concentration exists in the data independently of whether any of it is abuse.
A review queue, not a block list
Recommended shadow mode: score, queue, review, and measure. Auto-blocking on an unvalidated rule costs real customers.
What it looks like
The output, not a description of it.



- There are no fraud labels in this data. So the output is a review-priority signal, not confirmed abuse, and it is named that way throughout. An unlabelled score cannot support a fraud claim, whatever it is called.
- No precision or recall can be reported, because there is nothing to measure them against. That is why the recommendation is shadow mode — it generates the labels that would let you measure.
- Concentration is not causation. Heavy promotional users may simply be heavy users.