▸ Retail head walkthrough
Opportunity cockpit
Loan growth is a deployment problem · not a demand problem
The customer base already holds the signals. A trigger acted on within 48 hours converts at several times the rate of one acted on after three weeks — the engine makes that visible.
Addressable opportunity
OMR 184m
in existing base · modelled drawdown
Customers with live trigger
14,842
today · unactioned 8,310
Triggers fired · last 30d
24,180
conversion rate 17.4%
Incremental drawdown
OMR 42.1m
last 30d · avg time trigger→decision 2.3d
Opportunity by product
Personal loan
Addressable · modelled conv.
OMR 68m
8,420 cust · 22% modelled
Housing loan
Pre-approvals
OMR 42m
1,208 cust · 18% modelled
Auto loan
Vehicle intent markers
OMR 24m
4,100 cust · 24% modelled
Card limit increase
Utilisation signals
OMR 18m
6,200 cust · 31% modelled
Top-up on existing
Debt-free + life events
OMR 20m
3,180 cust · 26% modelled
Buyout of external debt
Competitor wallet share
OMR 12m
12,840 cust · 14% modelled
Trigger funnel · last 30 days
Leakage point: largest drop between offer made → customer engaged (−45%). Causes rank: wrong channel (31%), timing (24%), framing (18%). Opportunity: Journey Builder & channel optimiser.
Aging decay · conversion by days since trigger
Why time-to-action matters
A trigger acted on within 48 hours converts at 4.2× the rate of one acted on after 3 weeks.
Channel performance · cost per acquisition
Last 30 days
| Channel | Fired | Converted | Rate | Cost / acq. |
|---|---|---|---|---|
| SMS | 8,420 | 984 | 11.7% | OMR 3 |
| App push | 6,200 | 1,340 | 21.6% | OMR 2 |
| Internet banking msg | 3,840 | 720 | 18.8% | OMR 2 |
| Outbound call | 2,120 | 612 | 28.9% | OMR 24 |
| Branch conversation | 1,840 | 672 | 36.5% | OMR 42 |
| Relationship manager | 1,760 | 812 | 46.1% | OMR 86 |
Trigger Studio
Compose · backtest · activate
A business user can build a new trigger live, in under two minutes. Live backtest on every edit.
Rule composer
Would have fired
14,200
last 24m backtest
Modelled conversion
18.4%
base rate
Expected drawdown
OMR 47m
over 12m
Live backtest · last 24 months
ran in 892ms
Backtest window: 2024-08 to 2026-08 · signal: first_school_fee_payment · n=14,200 fires · 2,614 converted to education finance within 90d · modelled conversion 18.4% ± 1.2pp
Sensitivity · threshold moves
| Threshold | Fired | Modelled conv. | Expected OMR | Signal quality |
|---|
Overlap with existing triggers
Prioritisation rule: expected value · if the customer fires this and another together, this takes precedence.
Trigger catalogue · 24 triggers across 5 families
Every trigger detectable from data the bank already holds
Each entry shows the data sources, inference confidence, customer-benefit case, suppression rules, and false-positive rate from backtesting.
Family A · Competitor wallet share Highest-value family in the catalogue
| # | Trigger | Detection logic | Offer | Addressable | Conv. | FP rate | Benefit |
|---|---|---|---|---|---|---|---|
| A1 | External loan maturing | Recurring debit to named bank, consistent amount, declining residual count inferred | Buyout + top-up | 12,840 | 14% | 3.1% | cust better off |
| A2 | External loan instalment identified | Monthly SO matching loan-instalment characteristics | Refinance at better rate | 18,420 | 8% | 5.8% | cust better off |
| A3 | External credit card settlement | Monthly payment to another bank's card entity | Balance transfer | 8,200 | 11% | 2.4% | cust better off |
| A4 | External mortgage detected | Large recurring debit to bank or housing fund, long duration | Mortgage refinance | 4,100 | 6% | 4.2% | bank-only |
| A5 | Salary split | Part of salary immediately transferred to another bank | Full salary transfer + loan incentive | 6,800 | 22% | 1.8% | mutual |
| A6 | Competitor deposit build | Regular outward transfer to another bank's savings | Deposit consolidation + lending headroom | 3,420 | 18% | 7.2% | bank-only |
Family B · Capacity & life events
| # | Trigger | Detection logic | Offer | Addressable | Conv. | FP rate |
|---|---|---|---|---|---|---|
| B1 | Internal loan maturing | Bank Muscat loan with 1-3 instalments remaining | Top-up or new facility | 4,200 | 42% | 1.1% |
| B2 | Salary increment | Salary credit rises 5%+ and sustains two months | Limit increase or new facility | 8,400 | 14% | 3.8% |
| B3 | Promotion step-change | Salary credit rises 15%+ in a single month | Upgrade of product tier + facility | 2,100 | 26% | 2.4% |
| B4 | Bonus or variable credit | Non-salary credit from the employer | Investment, prepayment or deposit | 14,200 | 11% | 4.1% |
| B5 | End-of-service payment | Large one-off credit consistent with gratuity | Deposit and advisory, not lending | 1,840 | 38% | 1.4% |
| B6 | New dependant | Beneficiary added, or school-fee spend appears | Education finance | 6,840 | 22% | 5.2% |
| B7 | Marriage indicators | Joint account opened, cluster of furnishing spend | Personal loan | 1,840 | 31% | 3.1% |
| B8 | Spouse salary arrives | Second salary credit to the household address | Joint affordability reassessment, mortgage | 1,120 | 41% | 1.8% |
| B9 | Debt-free status reached | Last instalment of all external and internal debt paid | Full-capacity new facility | 3,840 | 52% | 0.8% |
Family C · Purchase intent
| # | Trigger | Addressable | Conv. |
|---|---|---|---|
| C1 | Vehicle shopping | 4,100 | 24% |
| C2 | Property shopping | 2,840 | 18% |
| C3 | Home improvement | 3,200 | 16% |
| C4 | Travel booking | 8,420 | 12% |
| C5 | Education enrolment | 5,100 | 28% |
| C6 | Medical expenditure | 2,840 | 22% |
| C7 | Large single purchase | 12,400 | 14% |
Family D · Product gap & cross-sell
| # | Trigger | Addressable | Conv. |
|---|---|---|---|
| D1 | No credit card | 38,200 | 16% |
| D2 | Card limit saturation | 8,400 | 22% |
| D3 | Overdraft dependence | 2,840 | 34% |
| D4 | Cash-advance reliance cust saves | 1,420 | 42% |
| D5 | Islamic preference signal | 6,100 | 18% |
| D6 | Single-product customer | 18,200 | — |
Family E · Retention & defence
| # | Trigger | Detection logic | Offer | Addressable | Conv. |
|---|---|---|---|---|---|
| E1 | Settlement enquiry | Customer requests early settlement quote | Retention offer before refi away | 840 | 38% |
| E2 | Salary diversion risk | Salary credit stops/reduces without resignation markers | Urgent RM contact | 410 | 22% |
| E3 | Competitor onboarding | New outward transfer to another bank's account in customer's own name | Retention contact | 2,100 | 14% |
| E4 | Dormancy onset | Transaction frequency falls below threshold | Reactivation (not lending) | 8,400 | 11% |
| E5 | Maturity without rollover | Term deposit matures and funds leave | Win-back offer | 1,840 | 24% |
| E6 | Complaint followed by inactivity | Complaint logged, engagement drops | Relationship recovery · lending suppressed | 120 | — |
Customer opportunity card
For a two-minute branch conversation
Not an analytics screen. One sentence of plain language, evidence, and three possible actions.
SH
Salim Al Hinai
Teacher · Ministry of Education · Nizwa
Civil ••••0342 · Customer 9y 2m · Products: 3 · Rel. value OMR 4,800
Trigger A1 · Live
Salary day: 25th · Stability: 0.97
"Salim's auto loan with Bank Dhofar matures in two months. His instalment is OMR 182. He has held his salary with us for nine years."
Why now · evidence
| Standing order of OMR 182 to Bank Dhofar | 28th of every month |
| Series duration | 46 months |
| Inferred: 5y auto loan, 14 instalments remaining | matures Dec 2027 |
| Original amount (inferred) | ~OMR 9,400 |
| Residual balance (inferred) | ~OMR 2,548 |
The offer
| Product | Buyout + top-up |
| Buyout residual | OMR 2,548 |
| New personal loan | OMR 12,000 |
| Total facility | OMR 14,548 |
| Tenure | 60 months |
| Indicative rate | 6.75% |
| Monthly instalment | OMR 231 |
| vs current OMR 182 at Bank Dhofar + future borrowing elsewhere | cust better off net |
Affordability · at a glance
| Current debt burden ratio | 15.4% |
| Post-offer DBR | 19.6% |
| Policy ceiling (salaried) | 50% |
| Headroom | 30.4 pp |
Live from Prototype 3's affordability engine · open in Credit Decisioning
Talking points · generated for this customer
Opening
"Mr Al Hinai, I noticed your Bank Dhofar auto instalment of OMR 182 is close to ending. Would you like to look at bringing it to us with better terms?"
Likely objection
"But I'll be paying more per month." Response: "This includes a OMR 12k top-up — the comparable instalment on just the buyout would be OMR 49."
Close
"If you can show two months' Bank Dhofar statements, we can finalise today. Shall I prepare the paperwork?"
Actions
Branch daily list · Ruwi
18 contacts for tomorrow
Ranked by expected value, capped at a workable number per staff member. Walk-in match on card swipe.
Opportunities to call
18
capped from 42 live triggers
Expected drawdown
OMR 142k
if all converted
Walk-in queue
3
live match · action now
| # | Customer | Trigger | Offer | Value | Conv. | Channel | Assigned to |
|---|---|---|---|---|---|---|---|
| 1 | Salim Al Hinai | A1 · External loan maturing | Buyout + top-up · OMR 14,548 | OMR 12,000 | 31% | Branch | Maryam A. |
| 2 | Fatma Al Zadjali | B2 · Salary increment | Limit top-up · OMR 4,500 | OMR 4,500 | 24% | App push | auto |
| 3 | Said Al Harthy | C1 · Vehicle shopping | Pre-approved auto · OMR 14,000 | OMR 14,000 | 28% | Branch | Omar M. |
| 4 | Noor Al Rawahi | E1 · Settlement enquiry | Retention offer · OMR 18,000 | OMR 18,000 | 19% | Call | Branch mgr |
| 5 | Khalid Al Shukaili | B1 · Internal loan maturing | Top-up · OMR 8,000 | OMR 8,000 | 22% | Branch | Maryam A. |
| 6 | Buthaina Al Maskari | B9 · Debt-free reached | Pre-approved OMR 45,000 | OMR 45,000 | 18% | RM | Rel. mgr |
| 7 | Hamad Al Ghafri | D3 · Overdraft dep. | Restructure to term loan · OMR 3,500 | OMR 3,500 | 34% | Branch | Omar M. |
| 8 | Shamsa Al Harthy | C5 · School enrolment | Education finance · OMR 2,400 | OMR 2,400 | 26% | App push | auto |
| 9 | Majid Al Hashmi | D1 · No card | Card at OMR 2,500 limit | OMR 2,500 | 16% | SMS | auto |
| 10 | Thuraya Al Kindi | B5 · End-of-service | Deposit + advisory | OMR 32,000 | 38% | RM | Rel. mgr |
| 11 | Nasser Al Lawati | A2 · Ext loan instalment | Refinance · OMR 6,800 | OMR 6,800 | 14% | Call | Branch mgr |
| 12 | Jokha Al Riyami | C3 · Home improvement | Home improvement · OMR 5,000 | OMR 5,000 | 16% | App push | auto |
Team view · yesterday's performance
| Staff | Contacts | Offers | Conversions | Value | Vs plan |
|---|---|---|---|---|---|
| Maryam Al Lawati | 14 | 11 | 4 | OMR 28,000 | +18% |
| Omar Al Hinai | 12 | 9 | 3 | OMR 22,000 | on plan |
| Nawal Al Rawahi (RM) | 6 | 5 | 3 | OMR 48,000 | +32% |
| Branch manager (walk-in) | 4 | 3 | 1 | OMR 8,000 | −12% |
Journey builder
Multi-step journeys · Trigger A1 example
External loan maturing. Journey adapts to engagement at each step.
Journey · "External loan maturing · buyout"
DAY 1
SMS
"Your Bank Dhofar instalment ends soon. We have an offer."
28% engage
DAY 3
App push
"OMR 14,548 pre-approved. See terms."
22% engage (of remainder)
DAY 7
Branch call
RM-led conversation if still unengaged
41% convert
DAY 14
Suppress
If still unengaged, mark offer dormant, log for 90-day retry
Journey performance · last 90 days
| Step | Sent | Engaged | Converted | Keep? |
|---|---|---|---|---|
| Day 1 SMS | 1,840 | 516 | 142 | keep |
| Day 3 App push | 1,324 | 291 | 98 | keep |
| Day 7 Branch call | 1,033 | 422 | 174 | keep |
| Day 14 Supplementary SMS | 611 | 18 | 3 | drop · fatigue cost |
Language variants · respecting customer preference
Each message exists in Arabic and English. Delivery picks the customer's declared language preference. For customers with no declared preference, language inferred from Arabic-script usage in app and branch activity. Measured: 72% Arabic, 28% English in the sample base.
Day 1 Arabic variant
قسطك الشهري لبنك ظفار على وشك الانتهاء. لدينا عرض لك.
Risk guardrails
Where the engine declines to pursue
Every trigger passes credit policy before an offer is made, not after the customer engages. This panel surfaces the volume of opportunities the engine declined to pursue.
Triggers suppressed · this month
847
cases the engine declined to pursue
Vulnerability stress markers
312
late/short salary · overdraft excess · card advance
Debt-burden ceiling breach
248
would exceed 50% / 60% policy limit
In-arrears / IFRS9 stage 2+
142
suppressed as hard-exclude
Exclusion register · drivers
Vulnerability markers · explicit
- Salary credit arriving late or short in 2 of last 6 months
- Card cash-advance usage
- Overdraft excess days ≥ 5 in a month
- Standing order failure
- Declining end-of-month balance trend over 3 months
Suppresses lending triggers even where policy would allow the loan. Decision captured for audit.
Portfolio drift monitor
Credit quality of trigger-sourced lending vs existing book
Median DBR of trigger-sourced lending 14.2% vs existing book 16.8%. No month-over-month drift. The engine is not loosening standards.
Shared affordability engine · Credit Decisioning
Every trigger-sourced application runs the same affordability engine as a branch-sourced application in Credit Decisioning. The two cannot disagree because they are the same model.
Click any customer in the trigger list → opens their case in the Credit Decisioning Case Workbench.
What-if simulator
Trigger engine · scenario builder
Which triggers active · what sensitivity · what contact capacity. Live recomputation under 2s.
Input controls
Incremental drawdown · 12m
OMR 184m
net new book
Net interest income
OMR 11.2m
net of funding + ECL + acq. cost
IFRS 9 stage-1 ECL at origination
OMR 1.52m
from Credit Decisioning
Customer-impact ledger
OMR 2.14m saved
6,420 cust better off
Contact capacity vs demand
Demand exceeds capacity in weeks 7-12. Prioritisation applies: ranked by expected value. 6,840 lower-ranked triggers deferred — tracked in queue; some will decay.
Cannibalisation estimate
~22% of this incremental volume would have been booked anyway through existing branch and call-centre channels. Net new to Bank Muscat: ~OMR 143m. Finance will ask this question — the answer is pre-computed.
Forecasting
Trigger exhaustion curve
The stock of customers carrying an unactioned trigger depletes as the engine works through it — first-year yields exceed the steady-state run rate.
Unactioned trigger stock
Year-one depletion · steady-state run rate
Stock at launch: 14,842 unactioned triggers · year-one drawdown ~RO 184m · steady-state ~RO 86m/year as new triggers fire at the natural event rate. First-year yields exceed steady state.
Trigger volume forecast · by family
Monthly, with seasonality
Seasonality encoded
Jan · school fees
B6 and C5 triggers up 2.4× monthly avg. Education finance peak.
Eid · bonus credits
B4 trigger spike. Investment and deposit offers prioritised over new credit.
Jul-Aug · summer travel
C4 trigger up 3.1×. Travel instalment plans fire predictably on airline aggregator patterns.
Khareef · Dhofar
Dhofar C3/C7 spike June-September. Visitor spend blurs resident intent — suppression applied.
Pre-Ramadan
C7 large single purchases peak 2w before. Auto triggers (C1) up 1.6×.
Nov-Dec · property handover
Sultan Haitham scheduled handovers drive C2 and B8 clusters.
Backtest
| Metric | Model (Jul25-Jul26) | Actual | MAE |
|---|---|---|---|
| Trigger fires · monthly | 22,400 avg | 24,100 avg | 7.2% |
| Conversion rate · overall | 17.1% | 17.4% | 0.3 pp |
| Drawdown · total | OMR 198m | OMR 210m | 5.7% |
| Average time trigger → decision | 2.1 days | 2.3 days | 8.7% |
Over-prediction concentrated in C4 (Travel) — model under-weighted post-pandemic normalisation of travel spending. Addressed in v2.1.
Conversational analyst
Conversational analyst
Ask a question in natural language and the analyst queries the dataset, runs the trigger and policy models, and answers in numbers with the records traceable in two clicks.
AI
Trigger Lending analyst
Claude · tool access to Trigger, Policy, Suppression engines
Shared platform · one customer across all three apps
From any trigger card…
→ open the same customer in Credit Decisioning to see the credit decision
→ open in Deposit Pricing to see the funding cost of this facility
→ the three screens show the same affordability number because they call the same engine
→ open in Deposit Pricing to see the funding cost of this facility
→ the three screens show the same affordability number because they call the same engine
Automated trigger discovery
The system runs continuously against the dataset to find behavioural patterns that precede borrowing but are not yet encoded as triggers. 3 candidate patterns awaiting human review this month. Never auto-activated.
Current candidates
- "Insurance renewal + 10% vehicle service spend" → auto loan precursor
- "Repeated OMR 50-100 debits to utility aggregator" → cross-sell signal
- "Al Mazyona prize-draw entry during Eid week" → savings behaviour change