Banking, insurance and financeBI, AI and ML for the business
Customer 360 and segmentation
Payments, chargebacks, support and newsletter live in four different systems. Muvia joins them customer by customer, every Monday a Python function sorts customers into segments by recency, frequency and value, with the reason, and Athena says whom to call back and prepares the list for the branches.
Illustrative scenario: it describes a typical case, not a customer project.
Every department knows one piece of the customer. Nobody sees the whole.
Cards see the payments, the back office the chargebacks, support the complaints, marketing who opens the newsletter. A valuable customer whose card was blocked and who stopped spending only shows up when four extracts are put together.
One view, up to date and with the same definitions for everyone, lets you sort customers into segments that make sense and know whom to call this week, not at the end of the quarter.
- Who it's for
- Marketing and CRM, the branch network and relationship managers, customer care, the bank's analysts and data scientists.
In Muvia, step by step
Real product screens, recorded on a project with sample data.
The video · Payments, chargebacks, support and newsletter live in four different systems. Muvia joins them customer by customer, every Monday a Python function sorts customers into segments by recency, frequency and value, with the reason, and Athena says whom to call back and prepares the list for the branches.
What you get
- One customer, one view
- Payments, chargebacks, support and newsletter are read together, with the same definitions for marketing, branches and support.
- Segments that explain themselves
- Every customer has a segment and the reason next to it: the branch knows why to call.
- Whom to call, this week
- Segments refresh every Monday, and valuable customers who stop spending surface before they leave.
- One question, a list ready to use
- Athena answers with the numbers, shows the query it ran and leaves the query and the notebook for the branches in the Lab.
For the technical team
How it is built in Muvia
- 1
Connect the four sources
Databases and connectors become sources copied on a schedule, incrementally and over an encrypted connection. Every source becomes a table.
- 2
Join by customer
A query brings payments, chargebacks, tickets and newsletter together on the customer code and becomes a certified dataset: dashboards and Athena start from it.
- 3
Segment every Monday in Python
A function works out recency, frequency and value and puts each customer in one of eight segments, with the reason spelled out. A flow runs it every Monday and writes the segments to a managed table.
- 4
See the spend at risk
A dashboard shows how much the valuable customers who are slowing down spend, and what happened before the drop, such as a card block.
- 5
Ask Athena whom to call back
Whoever coordinates the branches asks, in their own words, whom to call back and why. Athena answers with the numbers, saves the query in the Lab and writes the notebook with the list. It is a module the company chooses to switch on.
Python function
SEGMENTS = {
(1, 1, 1): "champions", (1, 1, 0): "loyal",
(1, 0, 1): "valuable newcomers", (1, 0, 0): "newcomers",
(0, 1, 1): "champions at risk", (0, 1, 0): "slipping",
(0, 0, 1): "occasional big spenders", (0, 0, 0): "dormant",
}
def transform(inputs, params, ctx):
df = inputs["rows"]
r = (df["days_since_last"] <= params["recent_days"]).astype(int)
f = (df["payments_12m"] >= df["payments_12m"].median()).astype(int)
m = (df["spend_12m"] >= df["spend_12m"].quantile(0.75)).astype(int)
out = df[["customer_code", "spend_12m", "card_blocks_90d"]].copy()
out["segment"] = [SEGMENTS[k] for k in zip(r, f, m)]
out["reason"] = (
r.map({1: "recent", 0: "inactive for a while"})
+ f.map({1: ", frequent", 0: ", infrequent"})
+ m.map({1: ", high spend", 0: ", low spend"})
)
ctx.logger.info("customers segmented: %d", len(out))
return {"rows": out}- The data it needs
- Payments and transactions per customer, from the core banking system on Oracle
- Chargebacks and card blocks, from a SQL Server database
- Support tickets and complaints, from Microsoft Dynamics 365
- Newsletter sign-ups and opens, from HubSpot
More cases in this line
All use cases- Card payment fraudEvery card payment leaves a row: amount, merchant, country, time. In Muvia a Python function written by your team compares each payment with the customer's habits and gives it a score that says why, and an alarm tells the fraud team when suspicious payments start to cluster.
- Motor claims and the black boxThe claim describes a crash, the black box records speed, braking and acceleration. Muvia puts them side by side: every claim second by second, a Python score recomputed every morning, and the claims office knows which claims to send to an adjuster and which to pay right away.
- Portfolio risk and correlationsA diversified portfolio stays diversified only while correlations hold. Muvia reads fund prices minute by minute, a Python function works out volatility and drawdown, Analysis aligns the spikes, and the committee sees the correlation flip sign before the monthly statement does.
Bring us a question you can't answer today.
We start from a real question your business has and walk the path from source to dashboard with your systems, not a demo dataset.