@frontlinesystems/rason-mcp-server 2026.5.1 → 2026.5.3

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.
Files changed (194) hide show
  1. package/LICENSE +35 -35
  2. package/examples/EXAMPLES_REFERENCE.md +128 -128
  3. package/examples/{optimization → Optimization}/Conic/AirlineHubConic.json +111 -111
  4. package/examples/{optimization → Optimization}/Conic/AirlineHubConic2.json +108 -108
  5. package/examples/{optimization → Optimization}/Conic/AirlineHubConic3.json +111 -111
  6. package/examples/{optimization → Optimization}/Conic/AirlineHubConic4.json +99 -99
  7. package/examples/{optimization → Optimization}/Conic/AirlineHubConic5.json +101 -101
  8. package/examples/{optimization → Optimization}/DataBinding/ProductMixCsv.json +81 -81
  9. package/examples/{optimization → Optimization}/DataBinding/ProductMixCsv4.json +96 -96
  10. package/examples/{optimization → Optimization}/DataBinding/ProductMixExcel.json +73 -73
  11. package/examples/{optimization → Optimization}/DataBinding/ProductMixExcel1.json +86 -86
  12. package/examples/{optimization → Optimization}/DataBinding/ProductMixExcel11.json +108 -108
  13. package/examples/{optimization → Optimization}/DataBinding/ProductMixExcel2.json +77 -77
  14. package/examples/{optimization → Optimization}/DataBinding/ProductMixTab.json +89 -89
  15. package/examples/{optimization → Optimization}/DataBinding/ProductMixTab1.json +73 -73
  16. package/examples/{optimization → Optimization}/DataBinding/ProductMixTab2.json +77 -77
  17. package/examples/{optimization → Optimization}/Linear/Inventory.json +199 -199
  18. package/examples/{optimization → Optimization}/Linear/Matop.json +119 -119
  19. package/examples/{optimization → Optimization}/Linear/ProductMix.json +97 -97
  20. package/examples/{optimization → Optimization}/Linear/ProductMix2.json +72 -72
  21. package/examples/{optimization → Optimization}/Linear/ProductMix3.json +49 -49
  22. package/examples/{optimization → Optimization}/Linear/ProductMix4.json +56 -56
  23. package/examples/{optimization → Optimization}/Linear/ProductMixCsv1.json +106 -106
  24. package/examples/{optimization → Optimization}/Linear/ProductMixCsv2.json +106 -106
  25. package/examples/{optimization → Optimization}/Linear/ProductMixSQL11.json +82 -82
  26. package/examples/{optimization → Optimization}/Linear/Rowop.json +126 -126
  27. package/examples/{optimization → Optimization}/NonLinear/AirlineHub.json +63 -63
  28. package/examples/{optimization → Optimization}/NonLinear/AirlineHub2.json +47 -47
  29. package/examples/{optimization → Optimization}/NonLinear/AirlineHub3.json +47 -47
  30. package/examples/{optimization → Optimization}/NonSmooth/Inventory2.json +159 -159
  31. package/examples/{optimization → Optimization}/Quadratic/PortfolioOpt.json +55 -55
  32. package/examples/{optimization → Optimization}/Quadratic/PortfolioOpt2.json +65 -65
  33. package/examples/{optimization → Optimization}/WithUncertainty/GasCompanyChance.json +78 -78
  34. package/examples/{optimization → Optimization}/WithUncertainty/GasCompanyRecourse.json +78 -78
  35. package/examples/{optimization → Optimization}/WithUncertainty/ProjectSelect.json +77 -77
  36. package/examples/{optimization → Optimization}/WithUncertainty/ProjectSelect2.json +81 -81
  37. package/examples/{optimization → Optimization}/WithUncertainty/ProjectSelect3.json +84 -84
  38. package/examples/{optimization → Optimization}/WithUncertainty/ProjectSelect4.json +74 -74
  39. package/examples/{simulation → Simulation}/CandyStoreSalesUsingSIP.json +147 -147
  40. package/examples/{simulation → Simulation}/CollegeFundGrowth1.json +423 -423
  41. package/examples/{simulation → Simulation}/CollegeFundGrowth1SIPModel.json +27 -27
  42. package/examples/{simulation → Simulation}/CollegeFundGrowth2.json +415 -415
  43. package/examples/{simulation → Simulation}/CollegeFundGrowthSIP.json +401 -401
  44. package/examples/{simulation → Simulation}/GBMSimulationModel.json +236 -236
  45. package/examples/{simulation → Simulation}/YieldManagement(Sim).json +69 -69
  46. package/examples/{simulation → Simulation}/YieldManagement2(Sim).json +72 -72
  47. package/examples/calculation/DMNExamples/DMN Box Fun with typeDef result.json +53 -53
  48. package/examples/calculation/DMNExamples/DMN Context example.json +69 -69
  49. package/examples/calculation/DMNExamples/DMN DT with typeDef result.json +43 -43
  50. package/examples/calculation/DMNExamples/FEEL Date Time example.json +28 -28
  51. package/examples/calculation/DMNExamples/FEEL For iteration example.json +66 -66
  52. package/examples/calculation/DMNExamples/FEEL For with two indices.json +15 -15
  53. package/examples/calculation/DMNExamples/FEEL For with typeDef result.json +88 -88
  54. package/examples/calculation/DMNExamples/FEEL If Then Else example.json +25 -25
  55. package/examples/calculation/DMNExamples/FEEL List example.json +37 -37
  56. package/examples/calculation/DMNExamples/FEEL List operator.json +17 -17
  57. package/examples/calculation/DMNExamples/FEEL List with typeDef collection.json +36 -36
  58. package/examples/calculation/DMNExamples/FEEL Some or Every example.json +65 -65
  59. package/examples/calculation/DecisionTables/DT Datasource example.json +52 -52
  60. package/examples/calculation/DecisionTables/DT Date and Time examples.json +91 -91
  61. package/examples/calculation/DecisionTables/DT Expression example.json +32 -32
  62. package/examples/calculation/DecisionTables/DT Hit Policy examples.json +136 -136
  63. package/examples/calculation/DecisionTables/DT Loan Recommend model.json +81 -81
  64. package/examples/calculation/DecisionTables/DT Loan Strategy Model and Predictive CSV-XML.json +218 -218
  65. package/examples/calculation/DecisionTables/DT Loan Strategy model and Datasource.json +286 -286
  66. package/examples/calculation/DecisionTables/DT Loan Strategy model and Predictive.json +203 -203
  67. package/examples/calculation/DecisionTables/DT Loan Strategy model by scratch.json +214 -214
  68. package/examples/calculation/DecisionTables/DT Output Order example.json +39 -39
  69. package/examples/calculation/DecisionTables/DT Unique example.json +38 -38
  70. package/examples/calculation/TypeDefinitions/TypeDefCF.json +64 -64
  71. package/examples/calculation/TypeDefinitions/TypeDefDT.json +57 -57
  72. package/examples/datamining/AffinityAnalysis/AssociationRules.json +51 -51
  73. package/examples/datamining/Classification/DecisionTree.json +90 -90
  74. package/examples/datamining/Classification/DiscriminantAnalysis.json +81 -81
  75. package/examples/datamining/Classification/Ensembles/Bagging.json +66 -66
  76. package/examples/datamining/Classification/Ensembles/Boosting.json +67 -67
  77. package/examples/datamining/Classification/Ensembles/RandomTrees.json +91 -91
  78. package/examples/datamining/Classification/FindBestModel.json +86 -86
  79. package/examples/datamining/Classification/LogisticRegression.json +82 -82
  80. package/examples/datamining/Classification/NaiveBayes.json +78 -78
  81. package/examples/datamining/Classification/NearestNeighbors.json +84 -84
  82. package/examples/datamining/Classification/NeuralNetwork.json +92 -92
  83. package/examples/datamining/Clustering/Hierarchical.json +54 -54
  84. package/examples/datamining/Clustering/KMeans.json +71 -71
  85. package/examples/datamining/DataSources/DelimitedFile.json +49 -49
  86. package/examples/datamining/DataSources/JSONFile.json +49 -49
  87. package/examples/datamining/DataSources/MSAccessDatabase.json +49 -49
  88. package/examples/datamining/DataSources/MSExcelTable.json +50 -50
  89. package/examples/datamining/DataSources/MSSQLDatabase.json +49 -49
  90. package/examples/datamining/DataSources/ODATATable.json +49 -49
  91. package/examples/datamining/DataSources/ODBCDatabase.json +49 -49
  92. package/examples/datamining/FeatureSelection/LinearWrapping.json +53 -53
  93. package/examples/datamining/FeatureSelection/LogisticWrapping.json +56 -56
  94. package/examples/datamining/FeatureSelection/Univariate.json +78 -78
  95. package/examples/datamining/Regression/DecisionTree.json +82 -82
  96. package/examples/datamining/Regression/Ensembles/Bagging.json +62 -62
  97. package/examples/datamining/Regression/Ensembles/Boosting.json +62 -62
  98. package/examples/datamining/Regression/Ensembles/RandomTrees.json +78 -78
  99. package/examples/datamining/Regression/FindBestModel.json +86 -86
  100. package/examples/datamining/Regression/LinearRegression.json +124 -124
  101. package/examples/datamining/Regression/NearestNeighbors.json +77 -77
  102. package/examples/datamining/Regression/NeuralNetwork.json +82 -82
  103. package/examples/datamining/Scoring/JSONClassifier.json +62 -62
  104. package/examples/datamining/Scoring/JSONClassifierNN.json +62 -62
  105. package/examples/datamining/Scoring/JSONClusterizer.json +37 -37
  106. package/examples/datamining/Scoring/JSONForecaster.json +49 -49
  107. package/examples/datamining/Scoring/JSONLinearRegression.json +56 -56
  108. package/examples/datamining/Scoring/JSONPCA.json +41 -41
  109. package/examples/datamining/Scoring/JSONRegressor.json +56 -56
  110. package/examples/datamining/Scoring/JSONTransformer.json +38 -38
  111. package/examples/datamining/Scoring/PMMLClassifier.json +42 -42
  112. package/examples/datamining/Scoring/PMMLForecaster.json +43 -43
  113. package/examples/datamining/Scoring/PMMLRegressor.json +38 -38
  114. package/examples/datamining/Scoring/PMMLTransformer.json +38 -38
  115. package/examples/datamining/Simulation/LinearRegressionSimulation.json +117 -117
  116. package/examples/datamining/Simulation/SyntheticDataGeneration.json +108 -108
  117. package/examples/datamining/Simulation/pmml-risk-scoring.json +62 -62
  118. package/examples/datamining/Summarizer/Summarization.json +54 -54
  119. package/examples/datamining/TextMining/LatentSemanticAnalysis.json +51 -51
  120. package/examples/datamining/TextMining/TfIdf-FileData.json +65 -65
  121. package/examples/datamining/TextMining/TfIdf-InlineData.json +55 -55
  122. package/examples/datamining/TimeSeries/AddHoltWinters.json +79 -79
  123. package/examples/datamining/TimeSeries/Arima.json +74 -74
  124. package/examples/datamining/TimeSeries/DoubleExponential.json +65 -65
  125. package/examples/datamining/TimeSeries/Exponential.json +64 -64
  126. package/examples/datamining/TimeSeries/LagAnalysis.json +48 -48
  127. package/examples/datamining/TimeSeries/MovingAverage.json +65 -65
  128. package/examples/datamining/TimeSeries/MulHoltWinters.json +65 -65
  129. package/examples/datamining/TimeSeries/NoTrendHoltWinters.json +65 -65
  130. package/examples/datamining/Transformation/Binning.json +69 -69
  131. package/examples/datamining/Transformation/CanonicalVariateAnalysis.json +47 -47
  132. package/examples/datamining/Transformation/CategoryReduction.json +51 -51
  133. package/examples/datamining/Transformation/Factorization.json +50 -50
  134. package/examples/datamining/Transformation/MissingDataHandling.json +83 -83
  135. package/examples/datamining/Transformation/OneHotEncoding-DataInline.json +54 -54
  136. package/examples/datamining/Transformation/OneHotEncoding-DatainFile.json +48 -48
  137. package/examples/datamining/Transformation/PartitionTimeSeries.json +48 -48
  138. package/examples/datamining/Transformation/Partitioning-DF.json +72 -72
  139. package/examples/datamining/Transformation/Partitioning.json +46 -46
  140. package/examples/datamining/Transformation/PartitioningWithOversampling-DF.json +65 -65
  141. package/examples/datamining/Transformation/PartitioningWithOversampling.json +44 -44
  142. package/examples/datamining/Transformation/PrincipalComponentsAnalysis.json +52 -52
  143. package/examples/datamining/Transformation/Rescaling.json +67 -67
  144. package/examples/datamining/Transformation/Sampling.json +43 -43
  145. package/examples/datamining/Transformation/StratifiedSampling.json +46 -46
  146. package/examples/flow/SQLServerTransform.json +260 -260
  147. package/examples/flow/dm-calc-pipeline.json +277 -277
  148. package/examples/flow/dm-pipeline-simulation.json +113 -113
  149. package/examples/flow/opt-sim-pipeline.json +159 -159
  150. package/examples/flow/sim-dm-pipeline.json +106 -106
  151. package/examples/flow/sim-sim-pipeline.json +136 -136
  152. package/examples/index.json +4678 -4678
  153. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/DataFiltering/ListwithFilter.json +52 -52
  154. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/ProductMix5.json +57 -57
  155. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/compoundWhileStatement.json +35 -35
  156. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/ifThenElseStatement.json +33 -33
  157. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/nestedLoop.json +25 -25
  158. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/ParallelArray.json +47 -47
  159. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/indexedArray.json +69 -69
  160. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/nonParallelArray.json +49 -49
  161. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/sumAggregateExample.json +337 -337
  162. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/tsp.json +61 -61
  163. package/examples/rason-features/BoxIterators/Box_Fun_Loop_Iter_Sim_RASON.json +190 -190
  164. package/examples/rason-features/BoxIterators/Box_Fun_Loop_Sim_RASON.json +75 -75
  165. package/examples/rason-features/BoxIterators/Box_Fun_Sim_RASON.json +108 -108
  166. package/examples/rason-features/BoxIterators/Box_Iter_SIM_RASON.json +68 -68
  167. package/examples/rason-features/BoxIterators/Box_Iterator_Calc_Loop.json +183 -183
  168. package/examples/rason-features/BoxIterators/Box_Iterator_with_typeDef_partial.json +79 -79
  169. package/examples/rason-features/BoxLambdaExamples/BoxFunOptimize.json +154 -154
  170. package/examples/rason-features/BoxLambdaExamples/BoxFunSimulate.json +118 -118
  171. package/examples/rason-features/BoxLambdaExamples/LambdaFunOptimize.json +142 -142
  172. package/examples/rason-features/BoxLambdaExamples/LambdaFunSimulate.json +81 -81
  173. package/examples/rason-features/ReferenceGuide/RGFirehouseLocation.json +69 -69
  174. package/examples/rason-features/ReferenceGuide/RGFirehouseLocationConic.json +113 -113
  175. package/examples/rason-features/ReferenceGuide/RGProductMixCsv1.json +107 -107
  176. package/examples/rason-features/ReferenceGuide/RGProductMixExcel11.json +117 -117
  177. package/examples/rason-features/ReferenceGuide/RGProductMixSQL11.json +108 -108
  178. package/examples/rason-features/UserGuide/UGAirlineHubCSV.json +67 -67
  179. package/examples/rason-features/UserGuide/UGForecast.json +50 -50
  180. package/examples/rason-features/UserGuide/UGProductMix1.json +48 -48
  181. package/examples/rason-features/UserGuide/UGProductMix2.json +48 -48
  182. package/examples/rason-features/UserGuide/UGProductMixTab1.json +67 -67
  183. package/examples/rason-features/UserGuide/UGProductMixTab2.json +76 -76
  184. package/examples/rason-features/UserGuide/UGProductMixTab3.json +66 -66
  185. package/examples/rason-features/UserGuide/UGProductMixTab4.json +70 -70
  186. package/examples/rason-features/UserGuide/UGProductMixTab5.json +67 -67
  187. package/examples/rason-features/UserGuide/UGProjectSelect0.json +91 -91
  188. package/examples/rason-features/UserGuide/UGProjectSelect1.json +74 -74
  189. package/examples/rason-features/UserGuide/UGProjectSelect2.json +74 -74
  190. package/examples/rason-features/UserGuide/UGYieldManagement1.json +61 -61
  191. package/examples/rason-features/UserGuide/UGYieldManagement2.json +61 -61
  192. package/examples/rason-features/UserGuide/UGYieldManagement3.json +63 -63
  193. package/out/index.cjs +1 -1
  194. package/package.json +3 -2
@@ -1,219 +1,219 @@
1
- {
2
- "modelName": "DTLoanStrategyPredictiveCSVXML",
3
- "modelDescription": "RASON Decision Table Example: Loan Strategy Example importing data using CSV and XML files: The difference between this example and the DTLoanStrategyPredictive exammple is that this example imports the predictive model from within the datasources section. The predictive model is then used to score new data. The output from the scoring is used as an input to a decision table.",
4
- "modelType": "calculation",
5
- "datasources": {
6
- "comment": "Use this section to import data from an outside source.",
7
- "score_src": {
8
- "comment": "This data source contains the new data that will be scored by the predictive model. ",
9
- "type": "csv",
10
- "connection": "score_src.txt",
11
- "colIndex": "score_h",
12
- "direction": "import"
13
- },
14
- "pmml_src": {
15
- "comment": "This data source contains the predictive model that will be used to score the new data, imported above.",
16
- "type": "xml",
17
- "connection": "pmml_src.xml",
18
- "content": "pmml-model",
19
- "direction": "import"
20
- }
21
- },
22
- "decisionTables": {
23
- "comment": "There are 8 decision tables in the decisionTables section. Outputs from some tables will be used as inputs for other tables.",
24
- "tblAppRiskScore": {
25
- "comment": "This decision table accepts 3 inputs, customer age, marital status and employment status, and returns a partial risk score. The collection of results will be added together to create the partial score. Note that the inputValues property limits the age to be 18 to 120, inclusive, the marital status to be s for single or m for married, the employment status as unemployed, employed, selfEmployed or student. A 40 yo single self employed person would be assigned a partialScore = 43 (rule 4) + 25 (rule 6) + 45 (rule 10) = 113.",
26
- "inputs": [ "cust age", "marital status", "employment status" ],
27
- "outputs": [ "partial score" ],
28
- "refTypes": [ "", "", "", "" ],
29
- "inputValues": [
30
- [ "[18..120]", "s", "unemployed" ],
31
- [ "", "m", "employed" ],
32
- [ "", "", "selfemployed" ],
33
- [ "", "", "student" ]
34
- ],
35
- "rules": [
36
- [ "[18..21]", "-", "-", 32 ],
37
- [ "(21..25]", "-", "-", 35 ],
38
- [ "(25..35]", "-", "-", 40 ],
39
- [ "(35..49]", "-", "-", 43 ],
40
- [ ">49", "-", "-", 48 ],
41
- [ "-", "s", "-", 25 ],
42
- [ "-", "m", "-", 45 ],
43
- [ "-", "-", "unemployed", 15 ],
44
- [ "-", "-", "student", 18 ],
45
- [ "-", "-", "employed", 45 ],
46
- [ "-", "-", "selfemployed", 36 ]
47
- ],
48
- "hitPolicy": "C+"
49
- },
50
- "tblBureauRiskCat": {
51
- "comment": "This decision table accepts 2 inputs, cust Exist (true if customer already has at least 1 more loans) and app Risk Score (partial score from tblAppRiskScore). With a hit policy of 'unique', only 1 rule, with a unique result, may be returned. ",
52
- "inputs": [ "cust exist", "app risk score" ],
53
- "outputs": [ "bureau risk cat" ],
54
- "inputTypes": [ "", "" ],
55
- "outputTypes": [ "" ],
56
- "rules": [
57
- [ false, "<100", "high" ],
58
- [ false, "[100..120]", "medium" ],
59
- [ false, "[120..130]", "low" ],
60
- [ false, ">130", "veryLow" ],
61
- [ true, "<80", "decline" ],
62
- [ true, "[80..90]", "high" ],
63
- [ true, "[90..110]", "medium" ],
64
- [ true, ">110", "low" ]
65
- ],
66
- "hitPolicy": "U"
67
- },
68
- "tblBureauCallType": {
69
- "comment": "This decision table accepts 1 input, bureau Risk Cat, which is the output of the tblBureauRiskCat decision table.",
70
- "inputs": [ "bureau risk cat" ],
71
- "outputs": [ "bureau call type" ],
72
- "rules": [
73
- [ "high, medium", "full" ],
74
- [ "low", "mini" ],
75
- [ "veryLow, decline", "none" ]
76
- ],
77
- "hitPolicy": "U"
78
- },
79
- "tblEligibility": {
80
- "comment": "This decision table accepts 3 inputs, bureau Risk Cat (which is the output of the tblAppriskScore decision table), bureau afford (a statistic calculated in the formulas section) and the customer's age. The customer's eligibility will be returned in the result. Note that there are only two outputs: 'ineligible' or 'eligible' as given in the outputValues property.",
81
- "inputs": [ "bureau risk cat", "bureau afford", "cust age" ],
82
- "outputs": [ "eligibility" ],
83
- "refTypes": [ "", "", "", "" ],
84
- "outputValues": [ "ineligible", "eligible" ],
85
- "rules": [
86
- [ "decline", "-", "-", "ineligible" ],
87
- [ "-", false, "-", "ineligible" ],
88
- [ "-", "-", "<18", "ineligible" ],
89
- [ "-", "-", "-", "eligible" ]
90
- ],
91
- "hitPolicy": "P"
92
- },
93
- "tblStrategy": {
94
- "comment": "This decision table accepts 2 inputs, eligibility and bureau Call Type. The strategy will be returned in the result.",
95
- "inputs": [ "eligibility", "bureau call type" ],
96
- "outputs": [ "strategy" ],
97
- "rules": [
98
- [ "ineligible", "-", "decline" ],
99
- [ "eligible", "full, mini", "bureau" ],
100
- [ "eligible", "none", "through" ]
101
- ],
102
- "hitPolicy": "U"
103
- },
104
- "tblCreditContFactor": {
105
- "comment": "This decision table accepts 1 input, bureau Risk Cat, and returns the credit Cont Factor.",
106
- "inputs": [ "bureau risk cat" ],
107
- "outputs": [ "credit cont factor" ],
108
- "rules": [
109
- [ "high, decline", 0.6 ],
110
- [ "medium", 0.7 ],
111
- [ "low, veryLow", 0.8 ]
112
- ],
113
- "hitPolicy": "U"
114
- }
115
- },
116
- "data": {
117
- "comment": "Use this section to organize all constant data parameters in the RASON model.",
118
- "scoreData": {
119
- "comment": "Binds the score_src dataSource (importing the new data) to this data parameter.",
120
- "binding": "score_src"
121
- },
122
- "pmodel": {
123
- "binding": "pmml_src",
124
- "comment": "Binds the pmml_src dataSource to pmodel data parameter."
125
- },
126
- "custAge": {
127
- "value": 40,
128
- "comment": "Applicant's age"
129
- },
130
- "maritalStatus": {
131
- "value": "s",
132
- "comment": "The marital statis of the applicant."
133
- },
134
- "employmentStatus": {
135
- "value": "selfemployed",
136
- "comment": "The employment status of the applicant."
137
- },
138
- "custExist": {
139
- "value": false,
140
- "comment": "true is the applicant is an existing customer, false otherwise."
141
- },
142
- "monthIncome": {
143
- "value": 2500,
144
- "comment": "applicant's monthly income"
145
- },
146
- "loanRate": {
147
- "value": 5,
148
- "comment": "loan's interest rate"
149
- },
150
- "loanTerm": {
151
- "value": 30,
152
- "comment": "term of the loan, in months"
153
- },
154
- "loanAmnt": {
155
- "value": 100000,
156
- "comment": "Amount of the loan, in US dollars"
157
- },
158
- "monthExpenses": {
159
- "value": 1000,
160
- "comment": "Applicant's monthly expenses"
161
- },
162
- "loanType": {
163
- "value": "standard",
164
- "comment": "The type of loan being applied for."
165
- }
166
- },
167
- "formulas": {
168
- "appRiskScore": {
169
- "formula": "MIN(PsiPredict(pmodel, scoreData),tblAppRiskScore(, , custAge, maritalStatus, employmentStatus))",
170
- "comment": "Calls the tblAppRiskScore decision table to compute the applicant's risk score.",
171
- "finalValue": []
172
- },
173
- "bureauRiskCat": {
174
- "formula": "tblBureauRiskCat(, , custExist, appRiskScore)",
175
- "comment": "Calls the tblBureauRiskCat decision table. Note that output from the tblAppRiskScore decision table, appRiskScore, is an input to this decision table.",
176
- "finalValue": []
177
- },
178
- "bureauCallType": {
179
- "formula": "tblBureauCallType(, , bureauRiskCat)",
180
- "comment": "Calls the tblBureauCallType decision table to compute the bureau's risk category.",
181
- "finalValue": []
182
- },
183
- "monthRepay": {
184
- "formula": "-PMT(loanRate%/12, loanTerm*12, loanAmnt)",
185
- "comment": "computes the portion of the monthly installment attributable to the loan."
186
- },
187
- "disposIncome": {
188
- "formula": "monthIncome - (monthRepay + monthExpenses)",
189
- "comment": "Computes the applicant's disposable income."
190
- },
191
- "monthFee": {
192
- "formula": "IF(loanType = 'standard', 20, IF(loanType = 'special', 25, 0))",
193
- "comment": "Computes the fee assoicated with the loan."
194
- },
195
- "monthInstall": {
196
- "formula": "monthRepay + monthFee",
197
- "comment": "Computes the total installment payment including loan replayment and fee portions."
198
- },
199
- "bureauAfford": {
200
- "formula": "IF(disposIncome * creditContFactor > monthInstall, TRUE, FALSE)",
201
- "comment": "Determines if the applicant will be able to afford the monthly installment payment."
202
- },
203
- "eligibility": {
204
- "formula": "tblEligibility(, , bureauRiskCat, bureauAfford, custAge)",
205
- "comment": "Determines if the applicant is eligibile to receive a loan from the institution.",
206
- "finalValue": []
207
- },
208
- "strategy": {
209
- "formula": "tblStrategy(, , eligibility, bureauCallType)",
210
- "comment": "Uses outputs from the tblEligibility and tblBureauCallType tables to determine the best strategy for the applicant.",
211
- "finalValue": []
212
- },
213
- "creditContFactor": {
214
- "formula": "tblCreditContFactor(, , bureauRiskCat)",
215
- "comment": "Calls the tblCreditContFactor table using the output from the tblBureauRiskCat decision table. ",
216
- "finalValue": []
217
- }
218
- }
1
+ {
2
+ "modelName": "DTLoanStrategyPredictiveCSVXML",
3
+ "modelDescription": "RASON Decision Table Example: Loan Strategy Example importing data using CSV and XML files: The difference between this example and the DTLoanStrategyPredictive exammple is that this example imports the predictive model from within the datasources section. The predictive model is then used to score new data. The output from the scoring is used as an input to a decision table.",
4
+ "modelType": "calculation",
5
+ "datasources": {
6
+ "comment": "Use this section to import data from an outside source.",
7
+ "score_src": {
8
+ "comment": "This data source contains the new data that will be scored by the predictive model. ",
9
+ "type": "csv",
10
+ "connection": "score_src.txt",
11
+ "colIndex": "score_h",
12
+ "direction": "import"
13
+ },
14
+ "pmml_src": {
15
+ "comment": "This data source contains the predictive model that will be used to score the new data, imported above.",
16
+ "type": "xml",
17
+ "connection": "pmml_src.xml",
18
+ "content": "pmml-model",
19
+ "direction": "import"
20
+ }
21
+ },
22
+ "decisionTables": {
23
+ "comment": "There are 8 decision tables in the decisionTables section. Outputs from some tables will be used as inputs for other tables.",
24
+ "tblAppRiskScore": {
25
+ "comment": "This decision table accepts 3 inputs, customer age, marital status and employment status, and returns a partial risk score. The collection of results will be added together to create the partial score. Note that the inputValues property limits the age to be 18 to 120, inclusive, the marital status to be s for single or m for married, the employment status as unemployed, employed, selfEmployed or student. A 40 yo single self employed person would be assigned a partialScore = 43 (rule 4) + 25 (rule 6) + 45 (rule 10) = 113.",
26
+ "inputs": [ "cust age", "marital status", "employment status" ],
27
+ "outputs": [ "partial score" ],
28
+ "refTypes": [ "", "", "", "" ],
29
+ "inputValues": [
30
+ [ "[18..120]", "s", "unemployed" ],
31
+ [ "", "m", "employed" ],
32
+ [ "", "", "selfemployed" ],
33
+ [ "", "", "student" ]
34
+ ],
35
+ "rules": [
36
+ [ "[18..21]", "-", "-", 32 ],
37
+ [ "(21..25]", "-", "-", 35 ],
38
+ [ "(25..35]", "-", "-", 40 ],
39
+ [ "(35..49]", "-", "-", 43 ],
40
+ [ ">49", "-", "-", 48 ],
41
+ [ "-", "s", "-", 25 ],
42
+ [ "-", "m", "-", 45 ],
43
+ [ "-", "-", "unemployed", 15 ],
44
+ [ "-", "-", "student", 18 ],
45
+ [ "-", "-", "employed", 45 ],
46
+ [ "-", "-", "selfemployed", 36 ]
47
+ ],
48
+ "hitPolicy": "C+"
49
+ },
50
+ "tblBureauRiskCat": {
51
+ "comment": "This decision table accepts 2 inputs, cust Exist (true if customer already has at least 1 more loans) and app Risk Score (partial score from tblAppRiskScore). With a hit policy of 'unique', only 1 rule, with a unique result, may be returned. ",
52
+ "inputs": [ "cust exist", "app risk score" ],
53
+ "outputs": [ "bureau risk cat" ],
54
+ "inputTypes": [ "", "" ],
55
+ "outputTypes": [ "" ],
56
+ "rules": [
57
+ [ false, "<100", "high" ],
58
+ [ false, "[100..120]", "medium" ],
59
+ [ false, "[120..130]", "low" ],
60
+ [ false, ">130", "veryLow" ],
61
+ [ true, "<80", "decline" ],
62
+ [ true, "[80..90]", "high" ],
63
+ [ true, "[90..110]", "medium" ],
64
+ [ true, ">110", "low" ]
65
+ ],
66
+ "hitPolicy": "U"
67
+ },
68
+ "tblBureauCallType": {
69
+ "comment": "This decision table accepts 1 input, bureau Risk Cat, which is the output of the tblBureauRiskCat decision table.",
70
+ "inputs": [ "bureau risk cat" ],
71
+ "outputs": [ "bureau call type" ],
72
+ "rules": [
73
+ [ "high, medium", "full" ],
74
+ [ "low", "mini" ],
75
+ [ "veryLow, decline", "none" ]
76
+ ],
77
+ "hitPolicy": "U"
78
+ },
79
+ "tblEligibility": {
80
+ "comment": "This decision table accepts 3 inputs, bureau Risk Cat (which is the output of the tblAppriskScore decision table), bureau afford (a statistic calculated in the formulas section) and the customer's age. The customer's eligibility will be returned in the result. Note that there are only two outputs: 'ineligible' or 'eligible' as given in the outputValues property.",
81
+ "inputs": [ "bureau risk cat", "bureau afford", "cust age" ],
82
+ "outputs": [ "eligibility" ],
83
+ "refTypes": [ "", "", "", "" ],
84
+ "outputValues": [ "ineligible", "eligible" ],
85
+ "rules": [
86
+ [ "decline", "-", "-", "ineligible" ],
87
+ [ "-", false, "-", "ineligible" ],
88
+ [ "-", "-", "<18", "ineligible" ],
89
+ [ "-", "-", "-", "eligible" ]
90
+ ],
91
+ "hitPolicy": "P"
92
+ },
93
+ "tblStrategy": {
94
+ "comment": "This decision table accepts 2 inputs, eligibility and bureau Call Type. The strategy will be returned in the result.",
95
+ "inputs": [ "eligibility", "bureau call type" ],
96
+ "outputs": [ "strategy" ],
97
+ "rules": [
98
+ [ "ineligible", "-", "decline" ],
99
+ [ "eligible", "full, mini", "bureau" ],
100
+ [ "eligible", "none", "through" ]
101
+ ],
102
+ "hitPolicy": "U"
103
+ },
104
+ "tblCreditContFactor": {
105
+ "comment": "This decision table accepts 1 input, bureau Risk Cat, and returns the credit Cont Factor.",
106
+ "inputs": [ "bureau risk cat" ],
107
+ "outputs": [ "credit cont factor" ],
108
+ "rules": [
109
+ [ "high, decline", 0.6 ],
110
+ [ "medium", 0.7 ],
111
+ [ "low, veryLow", 0.8 ]
112
+ ],
113
+ "hitPolicy": "U"
114
+ }
115
+ },
116
+ "data": {
117
+ "comment": "Use this section to organize all constant data parameters in the RASON model.",
118
+ "scoreData": {
119
+ "comment": "Binds the score_src dataSource (importing the new data) to this data parameter.",
120
+ "binding": "score_src"
121
+ },
122
+ "pmodel": {
123
+ "binding": "pmml_src",
124
+ "comment": "Binds the pmml_src dataSource to pmodel data parameter."
125
+ },
126
+ "custAge": {
127
+ "value": 40,
128
+ "comment": "Applicant's age"
129
+ },
130
+ "maritalStatus": {
131
+ "value": "s",
132
+ "comment": "The marital statis of the applicant."
133
+ },
134
+ "employmentStatus": {
135
+ "value": "selfemployed",
136
+ "comment": "The employment status of the applicant."
137
+ },
138
+ "custExist": {
139
+ "value": false,
140
+ "comment": "true is the applicant is an existing customer, false otherwise."
141
+ },
142
+ "monthIncome": {
143
+ "value": 2500,
144
+ "comment": "applicant's monthly income"
145
+ },
146
+ "loanRate": {
147
+ "value": 5,
148
+ "comment": "loan's interest rate"
149
+ },
150
+ "loanTerm": {
151
+ "value": 30,
152
+ "comment": "term of the loan, in months"
153
+ },
154
+ "loanAmnt": {
155
+ "value": 100000,
156
+ "comment": "Amount of the loan, in US dollars"
157
+ },
158
+ "monthExpenses": {
159
+ "value": 1000,
160
+ "comment": "Applicant's monthly expenses"
161
+ },
162
+ "loanType": {
163
+ "value": "standard",
164
+ "comment": "The type of loan being applied for."
165
+ }
166
+ },
167
+ "formulas": {
168
+ "appRiskScore": {
169
+ "formula": "MIN(PsiPredict(pmodel, scoreData),tblAppRiskScore(, , custAge, maritalStatus, employmentStatus))",
170
+ "comment": "Calls the tblAppRiskScore decision table to compute the applicant's risk score.",
171
+ "finalValue": []
172
+ },
173
+ "bureauRiskCat": {
174
+ "formula": "tblBureauRiskCat(, , custExist, appRiskScore)",
175
+ "comment": "Calls the tblBureauRiskCat decision table. Note that output from the tblAppRiskScore decision table, appRiskScore, is an input to this decision table.",
176
+ "finalValue": []
177
+ },
178
+ "bureauCallType": {
179
+ "formula": "tblBureauCallType(, , bureauRiskCat)",
180
+ "comment": "Calls the tblBureauCallType decision table to compute the bureau's risk category.",
181
+ "finalValue": []
182
+ },
183
+ "monthRepay": {
184
+ "formula": "-PMT(loanRate%/12, loanTerm*12, loanAmnt)",
185
+ "comment": "computes the portion of the monthly installment attributable to the loan."
186
+ },
187
+ "disposIncome": {
188
+ "formula": "monthIncome - (monthRepay + monthExpenses)",
189
+ "comment": "Computes the applicant's disposable income."
190
+ },
191
+ "monthFee": {
192
+ "formula": "IF(loanType = 'standard', 20, IF(loanType = 'special', 25, 0))",
193
+ "comment": "Computes the fee assoicated with the loan."
194
+ },
195
+ "monthInstall": {
196
+ "formula": "monthRepay + monthFee",
197
+ "comment": "Computes the total installment payment including loan replayment and fee portions."
198
+ },
199
+ "bureauAfford": {
200
+ "formula": "IF(disposIncome * creditContFactor > monthInstall, TRUE, FALSE)",
201
+ "comment": "Determines if the applicant will be able to afford the monthly installment payment."
202
+ },
203
+ "eligibility": {
204
+ "formula": "tblEligibility(, , bureauRiskCat, bureauAfford, custAge)",
205
+ "comment": "Determines if the applicant is eligibile to receive a loan from the institution.",
206
+ "finalValue": []
207
+ },
208
+ "strategy": {
209
+ "formula": "tblStrategy(, , eligibility, bureauCallType)",
210
+ "comment": "Uses outputs from the tblEligibility and tblBureauCallType tables to determine the best strategy for the applicant.",
211
+ "finalValue": []
212
+ },
213
+ "creditContFactor": {
214
+ "formula": "tblCreditContFactor(, , bureauRiskCat)",
215
+ "comment": "Calls the tblCreditContFactor table using the output from the tblBureauRiskCat decision table. ",
216
+ "finalValue": []
217
+ }
218
+ }
219
219
  }