@finsys/core 2.4.0 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,156 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "categories": [
4
+ {
5
+ "id": "telco-carrier",
6
+ "displayName": "Telco Carrier",
7
+ "description": "Mobile carrier bill-payment + account-history signals. Any telco vendor (Celcom, Maxis, DiGi, U-Mobile, etc.) implementing this category produces the same canonical field set.",
8
+ "canonicalTable": "ihs_alt_data_telco",
9
+ "fields": [
10
+ {
11
+ "name": "telcoOnTimePaymentRatio24m",
12
+ "type": "number",
13
+ "unit": "ratio",
14
+ "range": [0, 1],
15
+ "description": "Fraction of bills paid on time over the last 24 months. Strongest single telco predictor; ≥0.95 is the clean-history signal."
16
+ },
17
+ {
18
+ "name": "telcoTenureMonths",
19
+ "type": "number",
20
+ "unit": "months",
21
+ "range": [0, 600],
22
+ "description": "Account age. ≥48 months is the thin-file uplift trigger."
23
+ },
24
+ {
25
+ "name": "telcoSuspensionsCount24m",
26
+ "type": "number",
27
+ "unit": "count",
28
+ "range": [0, 100],
29
+ "description": "Non-payment-driven account suspensions in the last 24 months. ≥3 is a strong distress signal."
30
+ },
31
+ {
32
+ "name": "telcoLateDays24m",
33
+ "type": "number",
34
+ "unit": "days",
35
+ "range": [0, 800],
36
+ "description": "Cumulative days late across all bills in the trailing 24-month window."
37
+ },
38
+ {
39
+ "name": "telcoHandsetFinancingActive",
40
+ "type": "boolean",
41
+ "description": "Has an active handset-EMI account currently. Proxy for financing capacity already extended."
42
+ },
43
+ {
44
+ "name": "telcoHandsetFinancingDelinquent",
45
+ "type": "boolean",
46
+ "description": "Recent handset-EMI delinquency in the last 24 months. Distress signal even with otherwise clean bill payment."
47
+ },
48
+ {
49
+ "name": "telcoArpuMyr",
50
+ "type": "number",
51
+ "unit": "MYR",
52
+ "range": [0, 10000],
53
+ "description": "Average Revenue Per User (monthly) in Malaysian Ringgit. Coarse spending-capacity proxy."
54
+ }
55
+ ]
56
+ },
57
+ {
58
+ "id": "payment-network",
59
+ "displayName": "Payment Network",
60
+ "description": "Merchant-side payment-flow signals from POS / gateway networks (iPay88, GHL, etc.). Captures actual transaction velocity rather than self-reported revenue.",
61
+ "canonicalTable": "ihs_alt_data_payments",
62
+ "fields": [
63
+ {
64
+ "name": "paymentsMonthlyVolumeMyrT3",
65
+ "type": "number",
66
+ "unit": "MYR",
67
+ "range": [0, 100000000],
68
+ "description": "Mean monthly inbound transaction volume (RM) over the trailing 3 months."
69
+ },
70
+ {
71
+ "name": "paymentsMonthlyVolumeMyrT12",
72
+ "type": "number",
73
+ "unit": "MYR",
74
+ "range": [0, 100000000],
75
+ "description": "Mean monthly inbound transaction volume (RM) over the trailing 12 months. Pair with T3 for trend direction."
76
+ },
77
+ {
78
+ "name": "paymentsArpuStability12m",
79
+ "type": "number",
80
+ "unit": "ratio",
81
+ "range": [0, 1],
82
+ "description": "Coefficient-of-variation inverse over monthly ARPU in the trailing 12 months. Closer to 1 = steadier; closer to 0 = volatile."
83
+ },
84
+ {
85
+ "name": "paymentsDisputeRate12m",
86
+ "type": "number",
87
+ "unit": "ratio",
88
+ "range": [0, 1],
89
+ "description": "Fraction of transactions disputed or refunded in the trailing 12 months."
90
+ },
91
+ {
92
+ "name": "paymentsCustomerConcentrationTop5Pct",
93
+ "type": "number",
94
+ "unit": "ratio",
95
+ "range": [0, 1],
96
+ "description": "Revenue share from the top-5 recurring customers. Above ~0.7 is concentration risk."
97
+ },
98
+ {
99
+ "name": "paymentsActiveTenureMonths",
100
+ "type": "number",
101
+ "unit": "months",
102
+ "range": [0, 600],
103
+ "description": "Months since first transaction on the payment network. Establishment / continuity proxy."
104
+ }
105
+ ]
106
+ },
107
+ {
108
+ "id": "bank-statement",
109
+ "displayName": "Bank Statement",
110
+ "description": "Per-month bank-statement extractions. Naturally multi-instance: one statement per (account, month). Eval components typically aggregate across instances (sum closing balance, max debit, count of bounced transactions).",
111
+ "canonicalTable": "ihs_alt_data_bank_statements",
112
+ "fields": [
113
+ {
114
+ "name": "bankStatementMonth",
115
+ "type": "string",
116
+ "description": "Statement period in YYYY-MM format. Used as the instance_key discriminator + by the `latest` aggregation operator."
117
+ },
118
+ {
119
+ "name": "bankClosingBalanceMyr",
120
+ "type": "number",
121
+ "unit": "MYR",
122
+ "range": [-100000000, 100000000],
123
+ "description": "Closing balance for the statement period."
124
+ },
125
+ {
126
+ "name": "bankTotalCreditsMyr",
127
+ "type": "number",
128
+ "unit": "MYR",
129
+ "range": [0, 100000000],
130
+ "description": "Sum of credit transactions during the period."
131
+ },
132
+ {
133
+ "name": "bankTotalDebitsMyr",
134
+ "type": "number",
135
+ "unit": "MYR",
136
+ "range": [0, 100000000],
137
+ "description": "Sum of debit transactions during the period."
138
+ },
139
+ {
140
+ "name": "bankLargestSingleCreditMyr",
141
+ "type": "number",
142
+ "unit": "MYR",
143
+ "range": [0, 100000000],
144
+ "description": "Largest single inbound transaction in the period. Useful for spotting one-off injections vs steady revenue."
145
+ },
146
+ {
147
+ "name": "bankBouncedTransactionsCount",
148
+ "type": "number",
149
+ "unit": "count",
150
+ "range": [0, 1000],
151
+ "description": "Bounced / returned transactions in the period. Distress signal at counts > 0."
152
+ }
153
+ ]
154
+ }
155
+ ]
156
+ }
@@ -6675,7 +6675,6 @@
6675
6675
  "name": "bank_statement_t1",
6676
6676
  "displayName": "Bank Statement (Month T-1)",
6677
6677
  "type": "file",
6678
- "enableIf": "{formOfDisclosure} contains 'consented'",
6679
6678
  "ihs_column_names": [
6680
6679
  "accountHolderNameT1",
6681
6680
  "statementDateT1",
@@ -6692,7 +6691,6 @@
6692
6691
  "name": "bank_statement_t2",
6693
6692
  "displayName": "Bank Statement (Month T-2)",
6694
6693
  "type": "file",
6695
- "enableIf": "{formOfDisclosure} contains 'consented'",
6696
6694
  "ihs_column_names": [
6697
6695
  "accountHolderNameT2",
6698
6696
  "statementDateT2",
@@ -6709,7 +6707,6 @@
6709
6707
  "name": "bank_statement_t3",
6710
6708
  "displayName": "Bank Statement (Month T-3)",
6711
6709
  "type": "file",
6712
- "enableIf": "{formOfDisclosure} contains 'consented'",
6713
6710
  "ihs_column_names": [
6714
6711
  "accountHolderNameT3",
6715
6712
  "statementDateT3",
@@ -6726,7 +6723,6 @@
6726
6723
  "name": "bank_statement_t4",
6727
6724
  "displayName": "Bank Statement (Month T-4)",
6728
6725
  "type": "file",
6729
- "enableIf": "{formOfDisclosure} contains 'consented'",
6730
6726
  "ihs_column_names": [
6731
6727
  "accountHolderNameT4",
6732
6728
  "statementDateT4",
@@ -6743,7 +6739,6 @@
6743
6739
  "name": "bank_statement_t5",
6744
6740
  "displayName": "Bank Statement (Month T-5)",
6745
6741
  "type": "file",
6746
- "enableIf": "{formOfDisclosure} contains 'consented'",
6747
6742
  "ihs_column_names": [
6748
6743
  "accountHolderNameT5",
6749
6744
  "statementDateT5",
@@ -6760,7 +6755,6 @@
6760
6755
  "name": "bank_statement_t6",
6761
6756
  "displayName": "Bank Statement (Month T-6)",
6762
6757
  "type": "file",
6763
- "enableIf": "{formOfDisclosure} contains 'consented'",
6764
6758
  "ihs_column_names": [
6765
6759
  "accountHolderNameT6",
6766
6760
  "statementDateT6",
@@ -6777,7 +6771,6 @@
6777
6771
  "name": "financials",
6778
6772
  "displayName": "Audited Financial Statement",
6779
6773
  "type": "file",
6780
- "enableIf": "{formOfDisclosure} contains 'consented'",
6781
6774
  "ihs_column_names": [
6782
6775
  "shareCapital",
6783
6776
  "totalEquityT1",
@@ -6799,7 +6792,6 @@
6799
6792
  "name": "financials_fincap_t1",
6800
6793
  "displayName": "Audited Financial Statement (T-1) (FinCap)",
6801
6794
  "type": "file",
6802
- "enableIf": "{formOfDisclosure} contains 'consented'",
6803
6795
  "ihs_column_names": [
6804
6796
  "nonCurrentAssetsSubsidiaryCompaniesT1",
6805
6797
  "nonCurrentAssetsAssociatedCompaniesT1",
@@ -7044,7 +7036,6 @@
7044
7036
  "name": "financials_fincap_t2",
7045
7037
  "displayName": "Audited Financial Statement (T-2) (FinCap)",
7046
7038
  "type": "file",
7047
- "enableIf": "{formOfDisclosure} contains 'consented'",
7048
7039
  "ihs_column_names": [
7049
7040
  "nonCurrentAssetsSubsidiaryCompaniesT3",
7050
7041
  "nonCurrentAssetsAssociatedCompaniesT3",
@@ -7171,7 +7162,6 @@
7171
7162
  "name": "form9",
7172
7163
  "displayName": "Form 9 / Section 17 / Form D",
7173
7164
  "type": "file",
7174
- "enableIf": "{formOfDisclosure} contains 'consented'",
7175
7165
  "ihs_column_names": [
7176
7166
  "incorporatedDate",
7177
7167
  "companyName",
@@ -7183,7 +7173,6 @@
7183
7173
  "name": "ssm",
7184
7174
  "displayName": "SSM Company Profile",
7185
7175
  "type": "file",
7186
- "enableIf": "{formOfDisclosure} contains 'consented'",
7187
7176
  "ihs_column_names": [
7188
7177
  "ssmCompanyName",
7189
7178
  "ssmCompanyRegNo",
@@ -7208,7 +7197,6 @@
7208
7197
  "name": "ic",
7209
7198
  "displayName": "Identification Card (Front)",
7210
7199
  "type": "file",
7211
- "enableIf": "{formOfDisclosure} contains 'consented'",
7212
7200
  "ihs_column_names": [
7213
7201
  "icNumber",
7214
7202
  "icName",
@@ -7226,7 +7214,6 @@
7226
7214
  "name": "epf_statement_t1",
7227
7215
  "displayName": "Employees' Provident Fund (T-1)",
7228
7216
  "type": "file",
7229
- "enableIf": "{formOfDisclosure} contains 'consented'",
7230
7217
  "ihs_column_names": [
7231
7218
  "epfAccountHolderNameT1",
7232
7219
  "epfAccountHolderAddressT1",
@@ -7244,7 +7231,6 @@
7244
7231
  "name": "epf_statement_t2",
7245
7232
  "displayName": "Employees' Provident Fund (T-2)",
7246
7233
  "type": "file",
7247
- "enableIf": "{formOfDisclosure} contains 'consented'",
7248
7234
  "ihs_column_names": [
7249
7235
  "epfAccountHolderNameT2",
7250
7236
  "epfAccountHolderAddressT2",
@@ -7262,7 +7248,6 @@
7262
7248
  "name": "payslip_statement_t1",
7263
7249
  "displayName": "Payslip Statement (Month T-1)",
7264
7250
  "type": "file",
7265
- "enableIf": "{formOfDisclosure} contains 'consented'",
7266
7251
  "ihs_column_names": [
7267
7252
  "payslipEmployerNameT1",
7268
7253
  "payslipEmployeeNameT1",
@@ -7286,7 +7271,6 @@
7286
7271
  "name": "payslip_statement_t2",
7287
7272
  "displayName": "Payslip Statement (Month T-2)",
7288
7273
  "type": "file",
7289
- "enableIf": "{formOfDisclosure} contains 'consented'",
7290
7274
  "ihs_column_names": [
7291
7275
  "payslipEmployerNameT2",
7292
7276
  "payslipEmployeeNameT2",
@@ -7310,7 +7294,6 @@
7310
7294
  "name": "payslip_statement_t3",
7311
7295
  "displayName": "Payslip Statement (Month T-3)",
7312
7296
  "type": "file",
7313
- "enableIf": "{formOfDisclosure} contains 'consented'",
7314
7297
  "ihs_column_names": [
7315
7298
  "payslipEmployerNameT3",
7316
7299
  "payslipEmployeeNameT3",
@@ -7334,7 +7317,6 @@
7334
7317
  "name": "payslip_statement_t4",
7335
7318
  "displayName": "Payslip Statement (Month T-4)",
7336
7319
  "type": "file",
7337
- "enableIf": "{formOfDisclosure} contains 'consented'",
7338
7320
  "ihs_column_names": [
7339
7321
  "payslipEmployerNameT4",
7340
7322
  "payslipEmployeeNameT4",
@@ -7358,7 +7340,6 @@
7358
7340
  "name": "payslip_statement_t5",
7359
7341
  "displayName": "Payslip Statement (Month T-5)",
7360
7342
  "type": "file",
7361
- "enableIf": "{formOfDisclosure} contains 'consented'",
7362
7343
  "ihs_column_names": [
7363
7344
  "payslipEmployerNameT5",
7364
7345
  "payslipEmployeeNameT5",
@@ -7382,7 +7363,6 @@
7382
7363
  "name": "payslip_statement_t6",
7383
7364
  "displayName": "Payslip Statement (Month T-6)",
7384
7365
  "type": "file",
7385
- "enableIf": "{formOfDisclosure} contains 'consented'",
7386
7366
  "ihs_column_names": [
7387
7367
  "payslipEmployerNameT6",
7388
7368
  "payslipEmployeeNameT6",