Algorithm & Delivery Execution Plan
Algorithm & Delivery Execution Plan
4 Menganalisa transaksi yang hilang untuk bisa menggerakan rekening menjadi aktif
5 Amount out dan item out yang berasal dari bank bukan BNI
6 Ditambahkan similarity tidak hanya dari transaksi tapi dari service dll atau transaksi ke
In Progress 01/08/2022
In Progress 02/08/2022
In Progress 05/08/2022
mengelompokan
membuat analysisaccount bedasarkan
transaksi kebiasaan
yang dilakukan
5 komunitas transaksi account transaksi kepada account lain
member-member dalam suatu grup seperti :
1. melacak transaksi-transaksi yang dilakukan
member
6 aktifitas anggota grup 2. menghitung jumlah transaksi dan total nilai
transaksi yang menuju non-nasabah
mencari pola-pola
3. menemukan account yang
non-nasabah yangmelakukan
melakukan
7 Explore data credit transaksi kredit dan keterhubungannya dengan CIF
pada grup tersebut paling signifikan
company
Text simmilarity for text description menggolongkan deskripsi transaksi yang sangat
8 beragam dan acak menjadi kategori-kategori
in transaction transaksi
Done
Done Centrality
25/07/2022
Done Similiarity
25/07/2022
Done Centrality
25/07/2022
Done Similiarity
25/07/2022
Community
Done
detecttion
25/07/2022
pathfinding /
Done topologycal
search 28/07/2022
pathfinding /
Done topologycal 01/08/2022 Permintaan dari pihak BN
search
pathfinding /
Done topologycal 29/07/2022 Permintaan dari pihak BNI
search
Done
Entity
DONE
Resolution
Pagerank
Done
Collaborative
Done Filtering
Content Based
Done on Similarity
Done
Done centrality
Done
Done
Done Anomali
Done
Done
Done Anomali
//Set transaction description type based on group
match (g:GROUP)-[]-(c:CIF)-[]-(n1:account)-[r:TRX_TO]-(n2:account)
with apoc.text.sorensenDiceSimilarity(r.trx_desc,"PAJAK") as ls_pajak,r,g,n1,n2,c
///////
with 1. melacak transaksi
apoc.text.sorensenDiceSimilarity(r.trx_desc,"BILL PAYMENT") as ls_bill,ls_pajak,r,g,n1,n2,c
with apoc.text.sorensenDiceSimilarity(r.trx_desc,"TRANSFER") as ls_trf,ls_bill,ls_pajak,r,g,n1,n2,c
MATCH p=(g:GROUP)<-[hg:HAS_GROUP]-(c:CIF)<-
with apoc.text.sorensenDiceSimilarity(r.trx_desc,"PAYROLL") as
[hc:HAS_CIF]-(a1:account)-[ta:TRX_TO]->(a2:account)
ls_payroll,ls_trf,ls_bill,ls_pajak,r,g,n1,n2,c
set r.pajak_score=ls_pajak
WHERE g.group = $neodash_group_group and
set r.bill_score=ls_bill
set r.trf_score=ls_trf
a2.status="NON_NASABAH"
set r.payroll_score=ls_payroll
MATCH
return ()-[i:TRX_TO]->(a:account)
p limit 1000;
return r.pajak_score,r.bill_score,r.trf_score,r.payroll_score
with a.account_no as no_account ,a.pagerank_score as
match (g:GROUP)-[]-(c:CIF)-[]-(n1:account)-[r:TRX_TO]-(n2:account)
page_rank_score,count(i)
Script
where r.pajak_score>r.payroll_score and as total_cash_in,and r.pajak_score>r.trf_score
r.pajak_score>r.bill_score
set r.trx_type = "PAJAK"
sum(toFloat(i.amount))
//// 2. menghitung jumlah astransaksi
amount_cash_in,a
dan total nilai transasksi
match
menuju
match (a)-[r:TRX_TO]->()
non nasabah
(g:GROUP)-[]-(c:CIF)-[]-(n1:account)-[r:TRX_TO]-(n2:account)
where r.payroll_score>r.pajak_score and r.payroll_score>r.bill_score and r.payroll_score>r.trf_score
return
set r.trx_typeno_account
= "PAYROLL" ,page_rank_score, count(r) as total_cash_out
,match
sum(toFloat(r.amount)) as amount_cash_out,
(g:GROUP)-[]-(c:CIF)-[]-(n1:account)-[r:TRX_TO]-(n2:account)
total_cash_in,amount_cash_in
match
where (G:GROUP)--(:CIF)--(n:account)-[r:TRX_TO]-
r.bill_score>r.payroll_score and r.bill_score>r.pajak_score and r.bill_score>r.trf_score
set r.trx_type = "BILL PAYMENT"
order by page_rank_score desc
>(b:account)
limit
where
match
MATCH 10b.status <> "NASABAH" and
(g:GROUP)-[]-(c:CIF)-[]-(n1:account)-[r:TRX_TO]-(n2:account)
(a:account)-[r:ACC_SIMILAR]->(b:account)
where r.trf_score>r.payroll_score and r.trf_score>r.pajak_score and r.trf_score>r.bill_score
G.group=$neodash_group_group
RETURN
set r.trx_type = "TRANSFER"
return
a.account_no
match
n.account_no
as acc_1, as b.account_no
no_acc, count(r) as
as acc_2,
path=(g:GROUP)-[]-(c:CIF)-[]-(n1:account)-[r:TRX_TO]-(n2:account) r.score as
total_to_non_nasabah,
where
acc_similar_score order sum(toFloat(r.amount))
r.pajak_score=r.bill_score=r.payroll_score=r.trf_score=0
by acc_similar_score as total_amount
desc limit 10
set r.trx_type = "UNIDENTIFIED"
order by total_to_non_nasabah desc ;
match path=(g:GROUP)-[]-(c:CIF)-[]-(n1:account)-[r:TRX_TO]->(n2:account)
where r.trx_desc contains "TAX"
set r.trx_type = "PAJAK"
/// 3. menemukan non nasabah
match path=(g:GROUP)-[]-(c:CIF)-[]-(n1:account)-[r:TRX_TO]-(n2:account)
where r.trx_desc contains "PEMBAYARAN"
set r.trx_type = "BILL PAYMENT"
MATCH p=(g:GROUP)<-[hg:HAS_GROUP]-(c:CIF)<-
[hc:HAS_CIF]-(a1:account)-[ta:TRX_TO]->(a2:account)
match path=(g:GROUP)-[]-(c:CIF)-[]-(n1:account)-[r:TRX_TO]-(n2:account)
where r.trx_desc contains "Pembayaran"
WHERE
set r.trx_type = g.group = $neodash_group_group and
"BILL PAYMENT"
match (a)-[r:TRX_TO]-(b)
a2.status="NON_NASABAH"
where
match
return a.community_id=265616=b.community_id
path=(g:GROUP)-[]-(c:CIF)-[]-(n1:account)-[r:TRX_TO]-(n2:account)
a2.account_no
where r.trx_desc contains "JHT" as no_acc, a2.pagerank_score as
return
set a,r,b
page_rank_score
r.trx_type limit
= "BILL 100, sum(toFloat(ta.amount)) as cash_in_amount
PAYMENT"
orderpath=(g:GROUP)-[]-(c:CIF)-[]-(n1:account)-[r:TRX_TO]-(n2:account)
match by cash_in_amount desc ;
where r.trx_desc contains "JP"
set r.trx_type = "BILL PAYMENT"
match (n:account)-[r:TRX_TO]->(b:account)
where b.status <> "NASABAH"
return n.account_no as no_acc, count(r) as
total_to_non_nasabah order by total_to_non_nasabah desc limit
match (g:GROUP)--(c:CIF)--(a:account)
10
return g.group as group, c.cif as cif ,a.account_no as
acc_no ,a.buyer_role_score as
buyer_role_score,a.pagerank_score as supplier_role_score
order by buyer_role_score desc limit 10