Pack contents: Sierra Leone
In short
Section titled “In short”Two packs are written for Sierra Leone, in new leones (SLE). A workspace whose
jurisdiction is Sierra Leone (sl) sees them first in the rule
library, marked Recommended for its kind of institution:
sl-psp1.0.0 (8 rules): mobile money operators, payment service providers and agent networks.sl-bank1.0.0 (8 rules): banks, community banks and microfinance institutions.
Two rules, sl.ctr_cash (SL1) and sl.border_region (SL2), are in both, so there are 14 different rules. All are post-event
except sl.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 new leones. The pages for those base rules explain how they work.
sl.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.
sl.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 |
|---|---|---|---|---|---|---|
sl.ctr_cash |
SL1 | Cash transaction at the FIA reporting threshold | sl-psp |
post-event · alert | customer | low · 20 |
sl.structuring_below_ctr |
SL3 | Repeated cash-ins just below the reporting threshold | sl-psp |
post-event · alert | customer | high · 70 |
sl.split_cash_in_agents |
SL4 | Cash-in split across many agents | sl-psp |
post-event · alert | customer | high · 70 |
sl.cash_out_after_cash_in |
SL5 | Cash-out soon after cash-in | sl-psp |
post-event · alert | customer | high · 60 |
sl.sim_swap_payout |
SL6 | Payout soon after a SIM swap | sl-psp |
real-time · block | customer | critical · 85 |
sl.cross_border_wallet |
SL7 | Cross-border mobile money transfer | sl-psp |
post-event · alert | customer | medium · 40 |
sl.collection_wallet_sweep |
SL8 | Collection wallet swept to a bank | sl-psp |
post-event · alert | customer | high · 60 |
sl.border_region |
SL2 | Cash or wallet activity in a border or mining area | sl-psp |
post-event · alert | customer | medium · 40 |
sl.ctr_cash |
SL1 | Cash transaction at the FIA reporting threshold | sl-bank |
post-event · alert | customer | low · 20 |
slb.deposit_structuring |
SLB1 | Cash deposits just below the reporting threshold | sl-bank |
post-event · alert | customer | high · 70 |
slb.pep_large |
SLB2 | PEP transaction above SLE 100,000 | sl-bank |
post-event · alert | customer | high · 70 |
slb.dormant_reactivation |
SLB3 | Dormant account suddenly active | sl-bank |
post-event · alert | customer | medium · 45 |
slb.new_payee_large |
SLB4 | Large instant transfer to a new payee | sl-bank |
post-event · alert | customer | medium · 50 |
slb.fx_cash |
SLB5 | Foreign-currency cash of USD 10,000 or more | sl-bank |
post-event · alert | customer | medium · 40 |
slb.commodity_trade_hubs |
SLB6 | Minerals dealer paying or paid from a trading hub | sl-bank |
post-event · alert | customer | medium · 50 |
sl.border_region |
SL2 | Cash or wallet activity in a border or mining area | sl-bank |
post-event · alert | customer | medium · 40 |
The sl-psp pack (8 rules)
Section titled “The sl-psp pack (8 rules)”Sierra Leone mobile money, PSP and agents (in French: Sierra Leone : mobile money, PSP et agents), version 1.0.0.
Typologies for Sierra Leone’s mobile money operators, payment service providers and agent networks (Orange Money, Afrimoney and QMoney), in new leones: the FIA 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 Bank of Sierra Leone and the FIA before go-live.
Sources the pack cites:
- Anti-Money Laundering and Combating of Financing of Terrorism Act, 2012, and the 2024 Act that replaces it (to verify with counsel)
- Bank of Sierra Leone: AML/CFT directives and mobile money guidelines
- GIABA: mutual evaluation report of Sierra Leone (second round)
sl.ctr_cash
Section titled “sl.ctr_cash”Cash transaction at the FIA reporting threshold · library SL1 · 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 FIA.
Cash deposits, withdrawals, cash-ins and cash-outs of SLE 30,000 or more: a cash transaction report to the FIA is due (AML/CFT Act 2012 and FIU directives). Whether a transaction of exactly the threshold counts follows the workspace’s CTR setting (Settings → Reporting), which starts as “at or above” in Sierra Leone, so this rule and the CTR drafts always agree. To verify with counsel, and confirm the thresholds and their application with the FIA. Reuses the Nigerian CTR rule with Sierra Leone’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) | 30,000 |
threshold_business |
Businesses: above (base currency) | 30,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 FIA cash reporting threshold. Confirm with current FIA guidance.
sl.structuring_below_ctr
Section titled “sl.structuring_below_ctr”Repeated cash-ins just below the reporting threshold · library SL3 · 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 SLE 30,000 repeated within 48 hours and together above it: structuring to avoid a cash transaction report to the FIA. Reuses the core structuring rule with Sierra Leone’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 | 30,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}} FIA reporting threshold.
sl.split_cash_in_agents
Section titled “sl.split_cash_in_agents”Cash-in split across many agents · library SL4 · 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 Orange Money, Afrimoney and QMoney. Reuses the Ghana rule with an amount in new leones.
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) | 25,000 |
Explanation shown to analysts: Cash-ins via {{features.agents_24h}} different agents totalling {{txn.base_currency}} {{features.cash_in_24h}} in 24h.
sl.cash_out_after_cash_in
Section titled “sl.cash_out_after_cash_in”Cash-out soon after cash-in · library SL5 · 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 new leones.
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) | 10,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.
sl.sim_swap_payout
Section titled “sl.sim_swap_payout”Payout soon after a SIM swap · library SL6 · 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 new leones.
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) | 1,500 |
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).
sl.cross_border_wallet
Section titled “sl.cross_border_wallet”Cross-border mobile money transfer · library SL7 · 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 Guinea and Liberia (the Mano River corridor); 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) | "SL" |
corridors |
Only these countries (ISO codes; empty = every other country) | [] |
min_amount |
Amount at or above (base currency) | 10,000 |
Explanation shown to analysts: {{txn.base_currency}} {{txn.amount}} by mobile money to/from {{txn.counterparty_country}}, outside Sierra Leone.
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)sl.collection_wallet_sweep
Section titled “sl.collection_wallet_sweep”Collection wallet swept to a bank · library SL8 · 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.
sl.border_region
Section titled “sl.border_region”Cash or wallet activity in a border or mining area · library SL2 · 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 diamond and gold fields of Kono, Tongo and Kenema and the Guinea and Liberia border crossings (Gbalamuya, Kambia, Koindu, Jendema). 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 Sierra Leone’s places and an amount in new leones.
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) | ["Koidu", "Kono", "Tongo", "Kenema", "Kailahun", "Koindu", "Kambia", "Gbalamuya", "Jendema", "Pujehun", "Kabala"] |
channels |
Only these channels (empty = all) | ["cash", "agent", "branch", "momo"] |
min_amount |
Amount at or above (base currency) | 10,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 sl-bank pack (8 rules)
Section titled “The sl-bank pack (8 rules)”Sierra Leone banks (in French: Sierra Leone : banques), version 1.0.0.
Typologies for Sierra Leone’s commercial banks, microfinance and other deposit-taking institutions, in new leones: the FIA 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 Bank of Sierra Leone and the FIA before go-live.
Sources the pack cites:
- Anti-Money Laundering and Combating of Financing of Terrorism Act, 2012, and the 2024 Act that replaces it (to verify with counsel)
- Bank of Sierra Leone: AML/CFT directives and mobile money guidelines
- GIABA: mutual evaluation report of Sierra Leone (second round)
slb.deposit_structuring
Section titled “slb.deposit_structuring”Cash deposits just below the reporting threshold · library SLB1 · 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 SLE 30,000, repeated within 48 hours and together above it: structuring to avoid a cash transaction report to the FIA. Reuses the Nigerian bank rule with Sierra Leone’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) | 30,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.
slb.pep_large
Section titled “slb.pep_large”PEP transaction above SLE 100,000 · library SLB2 · Politically exposed person · alert about the customer · severity high, score 70
In French: Opération d’une PPE au-dessus de 100 000 SLE.
A politically exposed person’s transaction at or above the amount: enhanced due diligence and senior management approval apply to PEPs under the Bank of Sierra Leone’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 new leones.
Reuses the logic of core.pep_threshold (from core) with the parameters below; only the values differ.
| Parameter | Meaning | Default |
|---|---|---|
threshold |
Threshold (base currency) | 100,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}}.
slb.dormant_reactivation
Section titled “slb.dormant_reactivation”Dormant account suddenly active · library SLB3 · 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 new leones.
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) | 15,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}}.
slb.new_payee_large
Section titled “slb.new_payee_large”Large instant transfer to a new payee · library SLB4 · Authorised push-payment fraud · alert about the customer · severity medium, score 50
In French: Virement instantané important vers un nouveau bénéficiaire.
A large 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 new leones.
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) | 70,000 |
Explanation shown to analysts: First instant transfer to this beneficiary: {{txn.base_currency}} {{txn.amount}}.
slb.fx_cash
Section titled “slb.fx_cash”Foreign-currency cash of USD 10,000 or more · library SLB5 · 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 SLE 230,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 Sierra Leone (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) | 230,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 FIA guidance.
slb.commodity_trade_hubs
Section titled “slb.commodity_trade_hubs”Minerals dealer paying or paid from a trading hub · library SLB6 · Commodity trade / trade-based money laundering · alert about the customer · severity medium, score 50
In French: Négociant en minerais en relation avec une place de négoce.
Diamonds and gold are Sierra Leone’s main laundering and smuggling risk (national risk assessment; Kimberley Process controls): a diamond or gold dealer or exporter moving money with Dubai, Antwerp, Mumbai, Tel Aviv or Beirut outside its declared exports 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) | ["mining", "diamonds", "gold", "precious_minerals"] |
hubs |
Trading hub countries (ISO codes) | ["AE", "BE", "IN", "IL", "LB", "CN"] |
min_amount |
Amount at or above (base currency) | 250,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 |
|---|---|---|
sl.ctr_cash |
SL1 | Cash transaction at the FIA reporting threshold |
sl.border_region |
SL2 | Cash or wallet activity in a border or mining area |