Pack contents: The Gambia
In short
Section titled “In short”Two packs are written for The Gambia, in dalasis (GMD). A workspace whose
jurisdiction is The Gambia (gm) sees them first in the rule
library, marked Recommended for its kind of institution:
gm-psp1.0.0 (8 rules): mobile money operators, payment service providers and agent networks.gm-bank1.0.0 (8 rules): banks, microfinance and finance companies.
Two rules, gm.ctr_cash (GM1) and gm.border_region (GM2), are in both, so there are 14 different rules. All are post-event
except gm.sim_swap_payout, which runs in a real-time decision. Every rule
arrives switched off, and every rule has a French name and description, shown in a workspace
using French (see Languages).
Most rules reuse a core, Ghana, Nigerian or UEMOA rule by reference: they run exactly the
same logic with amounts in dalasis. The pages for those base rules explain how they work.
gm.ctr_cash follows your workspace’s cash reporting setting: its comparison parameter defaults to
workspace, so whether a transaction of exactly the threshold counts is decided by Report when
the day’s cash is under Settings → Reporting, and the rule and the drafted cash transaction
reports agree. See At or above, or above only.
gm.border_region needs to know where a transaction took place: send the place in the
transaction’s attributes as region, district, town or branch_region. It matches the
places named in its regions parameter and any you add to a list with the key high_risk_regions
(see Lists).
All rules at a glance
Section titled “All rules at a glance”| Key | Library | Name | Pack | Mode · action | Alert about | Severity · score |
|---|---|---|---|---|---|---|
gm.ctr_cash |
GM1 | Cash transaction at the FIU reporting threshold | gm-psp |
post-event · alert | customer | low · 20 |
gm.structuring_below_ctr |
GM3 | Repeated cash-ins just below the reporting threshold | gm-psp |
post-event · alert | customer | high · 70 |
gm.split_cash_in_agents |
GM4 | Cash-in split across many agents | gm-psp |
post-event · alert | customer | high · 70 |
gm.cash_out_after_cash_in |
GM5 | Cash-out soon after cash-in | gm-psp |
post-event · alert | customer | high · 60 |
gm.sim_swap_payout |
GM6 | Payout soon after a SIM swap | gm-psp |
real-time · block | customer | critical · 85 |
gm.cross_border_wallet |
GM7 | Cross-border mobile money transfer | gm-psp |
post-event · alert | customer | medium · 40 |
gm.collection_wallet_sweep |
GM8 | Collection wallet swept to a bank | gm-psp |
post-event · alert | customer | high · 60 |
gm.border_region |
GM2 | Cash or wallet activity in a border or mining area | gm-psp |
post-event · alert | customer | medium · 40 |
gm.ctr_cash |
GM1 | Cash transaction at the FIU reporting threshold | gm-bank |
post-event · alert | customer | low · 20 |
gmb.deposit_structuring |
GMB1 | Cash deposits just below the reporting threshold | gm-bank |
post-event · alert | customer | high · 70 |
gmb.pep_large |
GMB2 | PEP transaction above GMD 350,000 | gm-bank |
post-event · alert | customer | high · 70 |
gmb.dormant_reactivation |
GMB3 | Dormant account suddenly active | gm-bank |
post-event · alert | customer | medium · 45 |
gmb.new_payee_large |
GMB4 | Large GamSwitch instant transfer to a new payee | gm-bank |
post-event · alert | customer | medium · 50 |
gmb.fx_cash |
GMB5 | Foreign-currency cash of USD 10,000 or more | gm-bank |
post-event · alert | customer | medium · 40 |
gmb.commodity_trade_hubs |
GMB6 | Re-export or timber trader paying or paid from a trading hub | gm-bank |
post-event · alert | customer | medium · 50 |
gm.border_region |
GM2 | Cash or wallet activity in a border or mining area | gm-bank |
post-event · alert | customer | medium · 40 |
The gm-psp pack (8 rules)
Section titled “The gm-psp pack (8 rules)”The Gambia mobile money, PSP and agents (in French: Gambie : mobile money, PSP et agents), version 1.0.0.
Typologies for The Gambia’s mobile money operators, payment service providers, remittance agents and agent networks (Wave, Afrimoney and QMoney), in dalasis: the FIU cash reporting threshold and structuring below it, smurfing through agents, cash moved through a wallet, SIM-swap payouts, cross-border wallet transfers, collection wallets swept to a bank, activity in border and mining areas. Most rules reuse core, Ghana and Nigeria rules by reference with local amounts. Values come from SpeculaPro’s research, not from an official confirmation: to verify with counsel, and confirm each with the Central Bank of The Gambia and the FIU before go-live.
Sources the pack cites:
- Anti-Money Laundering and Combating of Terrorism Financing Act, 2012
- Central Bank of The Gambia: AML/CFT guidelines and mobile money regulations
- GIABA: mutual evaluation report of The Gambia (second round, 2022)
gm.ctr_cash
Section titled “gm.ctr_cash”Cash transaction at the FIU reporting threshold · library GM1 · Cash reporting threshold (CTR) · alert about the customer · severity low, score 20
In French: Opération en espèces au seuil de déclaration de la FIU.
Cash deposits, withdrawals, cash-ins and cash-outs of GMD 450,000 or more for an individual or GMD 2,000,000 or more for a business: a cash transaction report to the FIU is due (AML/CFT Act 2012 and FIU guidelines, as commonly cited). Whether a transaction of exactly the threshold counts follows the workspace’s CTR setting (Settings → Reporting), which starts as “at or above” in The Gambia, so this rule and the CTR drafts always agree. To verify with counsel, and confirm the thresholds and their application with the FIU. Reuses the Nigerian CTR rule with The Gambia’s amounts.
Reuses the logic of ng.ctr_cash (from ng-psp) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
threshold_individual |
Individuals: above (base currency) | 450,000 |
threshold_business |
Businesses: above (base currency) | 2,000,000 |
comparison |
Report when the amount is: what Settings → Reporting says for CTRs (workspace), above the threshold (gt), or at or above it (gte) | "workspace" |
Explanation shown to analysts: Cash {{txn.type}} of {{txn.base_currency}} {{txn.amount}} by {{= customer.type == ‘business’ ? ‘a business’ : ‘an individual’ }} is {{= (params.comparison == ‘workspace’ ? workspace.ctr_comparison : params.comparison) == ‘gte’ ? ‘at or above’ : ‘above’ }} the FIU cash reporting threshold. Confirm with current FIU guidance.
gm.structuring_below_ctr
Section titled “gm.structuring_below_ctr”Repeated cash-ins just below the reporting threshold · library GM3 · Structuring / smurfing · alert about the customer · severity high, score 70
In French: Dépôts d’espèces répétés juste sous le seuil de déclaration.
Cash-ins just below GMD 450,000 repeated within 48 hours and together above it: structuring to avoid a cash transaction report to the FIU. Reuses the core structuring rule with The Gambia’s threshold.
Reuses the logic of core.structuring (from core) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
threshold |
Threshold being avoided | 450,000 |
margin |
Margin below threshold (0.10 = 10%) | 0.1 |
min_count |
Minimum cash-ins in 48h | 3 |
Explanation shown to analysts: {{features.cash_in_count_48h}} cash-ins totalling {{txn.base_currency}} {{features.cash_in_sum_48h}} in 48h; this one ({{txn.base_currency}} {{txn.amount}}) is just below the {{txn.base_currency}} {{params.threshold}} FIU reporting threshold.
gm.split_cash_in_agents
Section titled “gm.split_cash_in_agents”Cash-in split across many agents · library GM4 · Smurfing through agents · alert about the customer · severity high, score 70
In French: Dépôts d’espèces répartis entre de nombreux agents.
Cash-ins through several agents in a day adding up to a large sum: smurfing through the agent network of Wave, Afrimoney and QMoney. Reuses the Ghana rule with an amount in dalasis.
Reuses the logic of gh.split_cash_in_agents (from gh-psp) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
min_agents |
Distinct agents in 24h | 4 |
min_total |
Total cash-in in 24h (base currency) | 75,000 |
Explanation shown to analysts: Cash-ins via {{features.agents_24h}} different agents totalling {{txn.base_currency}} {{features.cash_in_24h}} in 24h.
gm.cash_out_after_cash_in
Section titled “gm.cash_out_after_cash_in”Cash-out soon after cash-in · library GM5 · Wallet used as pass-through · alert about the customer · severity high, score 60
In French: Retrait d’espèces peu après un dépôt.
Most of what was cashed in at an agent is cashed out within two hours, often in another town: the wallet is used to move cash, not to hold or spend it. Reuses the Ghana rule with an amount in dalasis.
Reuses the logic of gh.cash_out_after_cash_in (from gh-psp) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
min_amount |
Minimum cash-in (base currency) | 35,000 |
ratio |
Cash-out as share of cash-in | 0.8 |
Explanation shown to analysts: {{txn.base_currency}} {{features.cash_in_2h}} cashed in and {{txn.base_currency}} {{features.cash_out_2h}} cashed out within 2 hours.
gm.sim_swap_payout
Section titled “gm.sim_swap_payout”Payout soon after a SIM swap · library GM6 · SIM swap · real-time, answers block · about the customer · severity critical, score 85
In French: Paiement peu après un changement de carte SIM.
SIM-swap fraud: the fraudster has the customer’s number moved to another SIM, receives the PIN reset and one-time codes and empties the wallet. Reuses the Ghana rule with an amount in dalasis.
Reuses the logic of gh.sim_swap_payout (from gh-psp) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
sim_change_hours |
Hours since the SIM swap | 48 |
threshold |
Payout at or above (base currency) | 5,000 |
Explanation shown to analysts: SIM swapped {{customer.hours_since.sim_swap}} hours before this payout of {{txn.base_currency}} {{txn.amount}} (rule window: {{params.sim_change_hours}} hours).
gm.cross_border_wallet
Section titled “gm.cross_border_wallet”Cross-border mobile money transfer · library GM7 · Cross-border mobile money · alert about the customer · severity medium, score 40
In French: Transfert mobile money transfrontalier.
A wallet transfer to or from another country at or above the amount. The main corridors are Senegal, which surrounds the country, and Guinea-Bissau; cross-border wallets carry informal trade and remittances, and with them cash-courier and exchange-control risk. Leave the corridor list empty to watch every country, or name the ones to watch.
| Parameter | Meaning | Default |
|---|---|---|
home_country |
Home country (ISO code) | "GM" |
corridors |
Only these countries (ISO codes; empty = every other country) | [] |
min_amount |
Amount at or above (base currency) | 35,000 |
Explanation shown to analysts: {{txn.base_currency}} {{txn.amount}} by mobile money to/from {{txn.counterparty_country}}, outside The Gambia.
Expression
txn.channel == 'momo' && txn.amount >= params.min_amount && txn.counterparty_country != '' && txn.counterparty_country != params.home_country && (size(params.corridors) == 0 || txn.counterparty_country in params.corridors)gm.collection_wallet_sweep
Section titled “gm.collection_wallet_sweep”Collection wallet swept to a bank · library GM8 · Collection wallet · alert about the customer · severity high, score 60
In French: Porte-monnaie de collecte vidé vers une banque.
Many senders pay into one wallet over a week and most of it then leaves to a bank account: a collection point for a scam, an unlicensed deposit-taker or a mule. Reuses the Ghana rule.
Reuses the logic of gh.wallet_sweep_to_bank (from gh-psp) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
min_senders |
Distinct senders in 7 days | 10 |
sweep_ratio |
Transfer as share of 7-day inflow | 0.7 |
Explanation shown to analysts: {{features.senders_7d}} senders paid in {{txn.base_currency}} {{features.in_7d}} over 7 days; {{txn.base_currency}} {{txn.amount}} is now leaving to a bank.
gm.border_region
Section titled “gm.border_region”Cash or wallet activity in a border or mining area · library GM2 · Border / cash courier risk · alert about the customer · severity medium, score 40
In French: Opération en espèces ou par porte-monnaie dans une zone frontalière ou minière.
A cash or mobile money transaction at or above the amount in an area named in the rule or on the workspace’s high_risk_regions list: by default the border crossings with Senegal (Amdallai, Giboro, Farafenni, Soma, Sabi) and the upriver trading town of Basse. Cash couriers, smuggling proceeds and informal cross-border trade concentrate there. Send the place in txn.attributes (region, district, town or branch_region). Reuses the Ghana border-area rule with The Gambia’s places and an amount in dalasis.
Reuses the logic of gh.border_region (from gh-psp) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
regions |
Areas (towns, districts or regions) | ["Farafenni", "Amdallai", "Giboro", "Basse", "Soma", "Sabi", "Kerr Ali", "Brikama", "Barra"] |
channels |
Only these channels (empty = all) | ["cash", "agent", "branch", "momo"] |
min_amount |
Amount at or above (base currency) | 30,000 |
Explanation shown to analysts: {{txn.base_currency}} {{txn.amount}} by {{txn.channel}} in {{= [‘region’, ‘district’, ‘town’, ‘branch_region’].filter(k, k in txn.attributes).map(k, string(txn.attributes[k])).join(’, ’) }}, a border or high-risk area.
The gm-bank pack (8 rules)
Section titled “The gm-bank pack (8 rules)”The Gambia banks (in French: Gambie : banques), version 1.0.0.
Typologies for The Gambia’s commercial banks, microfinance and other deposit-taking institutions, in dalasis: the FIU cash reporting threshold and deposits structured below it, PEP activity, dormant accounts, large transfers to new payees, foreign-currency cash, commodity traders dealing with trading hubs, activity in border and mining areas. Most rules reuse core, Ghana and Nigeria rules by reference with local amounts. Values come from SpeculaPro’s research, not from an official confirmation: to verify with counsel, and confirm each with the Central Bank of The Gambia and the FIU before go-live.
Sources the pack cites:
- Anti-Money Laundering and Combating of Terrorism Financing Act, 2012
- Central Bank of The Gambia: AML/CFT guidelines and mobile money regulations
- GIABA: mutual evaluation report of The Gambia (second round, 2022)
gmb.deposit_structuring
Section titled “gmb.deposit_structuring”Cash deposits just below the reporting threshold · library GMB1 · Structuring / smurfing · alert about the customer · severity high, score 70
In French: Dépôts d’espèces juste sous le seuil de déclaration.
Cash deposits at the counter just below GMD 450,000, repeated within 48 hours and together above it: structuring to avoid a cash transaction report to the FIU. Reuses the Nigerian bank rule with The Gambia’s threshold.
Reuses the logic of ngb.deposit_structuring (from ng-bank) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
threshold |
Threshold being avoided (base currency) | 450,000 |
margin |
Just below = within (0.1 = 10%) | 0.1 |
min_count |
Deposits in 48 hours, at least | 3 |
Explanation shown to analysts: {{features.deposits_48h}} cash deposits totalling {{txn.base_currency}} {{features.deposit_sum_48h}} in 48 hours; this one ({{txn.base_currency}} {{txn.amount}}) is just below the {{txn.base_currency}} {{params.threshold}} threshold.
gmb.pep_large
Section titled “gmb.pep_large”PEP transaction above GMD 350,000 · library GMB2 · Politically exposed person · alert about the customer · severity high, score 70
In French: Opération d’une PPE au-dessus de 350 000 GMD.
A politically exposed person’s transaction at or above the amount: enhanced due diligence and senior management approval apply to PEPs under the Central Bank of The Gambia’s AML/CFT rules and FATF Recommendation 12. The amount is a starting value, not a legal threshold. Reuses the core PEP rule with an amount in dalasis.
Reuses the logic of core.pep_threshold (from core) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
threshold |
Threshold (base currency) | 350,000 |
Explanation shown to analysts: Customer is a PEP; transaction of {{txn.base_currency}} {{txn.amount}} is at or above {{txn.base_currency}} {{params.threshold}}.
gmb.dormant_reactivation
Section titled “gmb.dormant_reactivation”Dormant account suddenly active · library GMB3 · Dormant account reactivation · alert about the customer · severity medium, score 45
In French: Compte dormant redevenu soudainement actif.
An account with no activity for 90 days suddenly moving money: takeover, or reuse as a mule account. Reuses the core rule with an amount in dalasis.
Reuses the logic of core.dormant_reactivation (from core) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
dormant_days |
Minimum account age (days); the quiet period is fixed at 90 days | 90 |
min_amount |
Minimum amount (base currency) | 50,000 |
Explanation shown to analysts: No activity in the 90 days before today on an account {{account.age_days}} days old, then {{txn.base_currency}} {{txn.amount}}.
gmb.new_payee_large
Section titled “gmb.new_payee_large”Large GamSwitch instant transfer to a new payee · library GMB4 · Authorised push-payment fraud · alert about the customer · severity medium, score 50
In French: Virement instantané GamSwitch important vers un nouveau bénéficiaire.
A large GamSwitch instant transfer to a payee the customer has never paid: authorised push payment fraud and account takeover. Reuses the Ghana instant-payment rule with an amount in dalasis.
Reuses the logic of ghb.gip_new_payee_large (from gh-bank) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
threshold |
Amount at or above (base currency) | 200,000 |
Explanation shown to analysts: First instant transfer to this beneficiary: {{txn.base_currency}} {{txn.amount}}.
gmb.fx_cash
Section titled “gmb.fx_cash”Foreign-currency cash of USD 10,000 or more · library GMB5 · Foreign-currency cash reporting · alert about the customer · severity medium, score 40
In French: Espèces en devises de 10 000 USD ou plus.
Cash in a foreign currency of USD 10,000 or more (or the same in euros or pounds), or worth GMD 720,000 or more: dollar and euro cash is how value crosses borders in a cash economy, and USD 10,000 is the cross-border declaration amount used across ECOWAS. A starting value, not a confirmed legal threshold in The Gambia (to verify with counsel). Reuses the Ghana foreign-currency cash rule.
Reuses the logic of ghb.fx_cash (from gh-bank) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
threshold |
Threshold in the transaction’s currency (major units, with that currency’s decimals) | 10,000 |
threshold_base |
Or at or above this in the base currency (0: off) | 720,000 |
currencies |
Currencies | ["USD", "EUR", "GBP"] |
Explanation shown to analysts: Cash {{txn.type}} in {{txn.currency}} worth {{txn.base_currency}} {{txn.amount}}: at or above the {{params.threshold}} foreign-currency cash threshold. Confirm the threshold with current FIU guidance.
gmb.commodity_trade_hubs
Section titled “gmb.commodity_trade_hubs”Re-export or timber trader paying or paid from a trading hub · library GMB6 · Commodity trade / trade-based money laundering · alert about the customer · severity medium, score 50
In French: Négociant en réexportation ou en bois en relation avec une place de négoce.
The Gambia is a re-export hub for its neighbours and has been a transit point for trafficked rosewood (GIABA mutual evaluation 2022; real estate bought with funds from abroad is the other risk it names): a trader in those sectors moving money with China, Dubai, Beirut, India or Turkey outside its declared trade deserves a look. Matches a business whose segment, or customer.attributes.sector, is one of the sectors, on a payment to or from one of the hubs at or above the amount.
| Parameter | Meaning | Default |
|---|---|---|
sectors |
Customer sectors (segment or attributes.sector, lower case; empty = every business) | ["timber", "re-export", "import_export", "real_estate"] |
hubs |
Trading hub countries (ISO codes) | ["CN", "AE", "LB", "IN", "TR"] |
min_amount |
Amount at or above (base currency) | 700,000 |
Explanation shown to analysts: {{txn.base_currency}} {{txn.amount}} {{txn.direction}} with {{txn.counterparty_country}}, a trading hub for this customer’s sector.
Expression
customer.type == 'business' && txn.counterparty_country in params.hubs && txn.amount >= params.min_amount && (size(params.sectors) == 0 || customer.segment.lowerAscii() in params.sectors || ('sector' in customer.attributes && string(customer.attributes.sector).lowerAscii() in params.sectors))Also in this pack, described above:
| Key | Library | Name |
|---|---|---|
gm.ctr_cash |
GM1 | Cash transaction at the FIU reporting threshold |
gm.border_region |
GM2 | Cash or wallet activity in a border or mining area |