@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.
- package/LICENSE +35 -35
- package/examples/EXAMPLES_REFERENCE.md +128 -128
- package/examples/{optimization → Optimization}/Conic/AirlineHubConic.json +111 -111
- package/examples/{optimization → Optimization}/Conic/AirlineHubConic2.json +108 -108
- package/examples/{optimization → Optimization}/Conic/AirlineHubConic3.json +111 -111
- package/examples/{optimization → Optimization}/Conic/AirlineHubConic4.json +99 -99
- package/examples/{optimization → Optimization}/Conic/AirlineHubConic5.json +101 -101
- package/examples/{optimization → Optimization}/DataBinding/ProductMixCsv.json +81 -81
- package/examples/{optimization → Optimization}/DataBinding/ProductMixCsv4.json +96 -96
- package/examples/{optimization → Optimization}/DataBinding/ProductMixExcel.json +73 -73
- package/examples/{optimization → Optimization}/DataBinding/ProductMixExcel1.json +86 -86
- package/examples/{optimization → Optimization}/DataBinding/ProductMixExcel11.json +108 -108
- package/examples/{optimization → Optimization}/DataBinding/ProductMixExcel2.json +77 -77
- package/examples/{optimization → Optimization}/DataBinding/ProductMixTab.json +89 -89
- package/examples/{optimization → Optimization}/DataBinding/ProductMixTab1.json +73 -73
- package/examples/{optimization → Optimization}/DataBinding/ProductMixTab2.json +77 -77
- package/examples/{optimization → Optimization}/Linear/Inventory.json +199 -199
- package/examples/{optimization → Optimization}/Linear/Matop.json +119 -119
- package/examples/{optimization → Optimization}/Linear/ProductMix.json +97 -97
- package/examples/{optimization → Optimization}/Linear/ProductMix2.json +72 -72
- package/examples/{optimization → Optimization}/Linear/ProductMix3.json +49 -49
- package/examples/{optimization → Optimization}/Linear/ProductMix4.json +56 -56
- package/examples/{optimization → Optimization}/Linear/ProductMixCsv1.json +106 -106
- package/examples/{optimization → Optimization}/Linear/ProductMixCsv2.json +106 -106
- package/examples/{optimization → Optimization}/Linear/ProductMixSQL11.json +82 -82
- package/examples/{optimization → Optimization}/Linear/Rowop.json +126 -126
- package/examples/{optimization → Optimization}/NonLinear/AirlineHub.json +63 -63
- package/examples/{optimization → Optimization}/NonLinear/AirlineHub2.json +47 -47
- package/examples/{optimization → Optimization}/NonLinear/AirlineHub3.json +47 -47
- package/examples/{optimization → Optimization}/NonSmooth/Inventory2.json +159 -159
- package/examples/{optimization → Optimization}/Quadratic/PortfolioOpt.json +55 -55
- package/examples/{optimization → Optimization}/Quadratic/PortfolioOpt2.json +65 -65
- package/examples/{optimization → Optimization}/WithUncertainty/GasCompanyChance.json +78 -78
- package/examples/{optimization → Optimization}/WithUncertainty/GasCompanyRecourse.json +78 -78
- package/examples/{optimization → Optimization}/WithUncertainty/ProjectSelect.json +77 -77
- package/examples/{optimization → Optimization}/WithUncertainty/ProjectSelect2.json +81 -81
- package/examples/{optimization → Optimization}/WithUncertainty/ProjectSelect3.json +84 -84
- package/examples/{optimization → Optimization}/WithUncertainty/ProjectSelect4.json +74 -74
- package/examples/{simulation → Simulation}/CandyStoreSalesUsingSIP.json +147 -147
- package/examples/{simulation → Simulation}/CollegeFundGrowth1.json +423 -423
- package/examples/{simulation → Simulation}/CollegeFundGrowth1SIPModel.json +27 -27
- package/examples/{simulation → Simulation}/CollegeFundGrowth2.json +415 -415
- package/examples/{simulation → Simulation}/CollegeFundGrowthSIP.json +401 -401
- package/examples/{simulation → Simulation}/GBMSimulationModel.json +236 -236
- package/examples/{simulation → Simulation}/YieldManagement(Sim).json +69 -69
- package/examples/{simulation → Simulation}/YieldManagement2(Sim).json +72 -72
- package/examples/calculation/DMNExamples/DMN Box Fun with typeDef result.json +53 -53
- package/examples/calculation/DMNExamples/DMN Context example.json +69 -69
- package/examples/calculation/DMNExamples/DMN DT with typeDef result.json +43 -43
- package/examples/calculation/DMNExamples/FEEL Date Time example.json +28 -28
- package/examples/calculation/DMNExamples/FEEL For iteration example.json +66 -66
- package/examples/calculation/DMNExamples/FEEL For with two indices.json +15 -15
- package/examples/calculation/DMNExamples/FEEL For with typeDef result.json +88 -88
- package/examples/calculation/DMNExamples/FEEL If Then Else example.json +25 -25
- package/examples/calculation/DMNExamples/FEEL List example.json +37 -37
- package/examples/calculation/DMNExamples/FEEL List operator.json +17 -17
- package/examples/calculation/DMNExamples/FEEL List with typeDef collection.json +36 -36
- package/examples/calculation/DMNExamples/FEEL Some or Every example.json +65 -65
- package/examples/calculation/DecisionTables/DT Datasource example.json +52 -52
- package/examples/calculation/DecisionTables/DT Date and Time examples.json +91 -91
- package/examples/calculation/DecisionTables/DT Expression example.json +32 -32
- package/examples/calculation/DecisionTables/DT Hit Policy examples.json +136 -136
- package/examples/calculation/DecisionTables/DT Loan Recommend model.json +81 -81
- package/examples/calculation/DecisionTables/DT Loan Strategy Model and Predictive CSV-XML.json +218 -218
- package/examples/calculation/DecisionTables/DT Loan Strategy model and Datasource.json +286 -286
- package/examples/calculation/DecisionTables/DT Loan Strategy model and Predictive.json +203 -203
- package/examples/calculation/DecisionTables/DT Loan Strategy model by scratch.json +214 -214
- package/examples/calculation/DecisionTables/DT Output Order example.json +39 -39
- package/examples/calculation/DecisionTables/DT Unique example.json +38 -38
- package/examples/calculation/TypeDefinitions/TypeDefCF.json +64 -64
- package/examples/calculation/TypeDefinitions/TypeDefDT.json +57 -57
- package/examples/datamining/AffinityAnalysis/AssociationRules.json +51 -51
- package/examples/datamining/Classification/DecisionTree.json +90 -90
- package/examples/datamining/Classification/DiscriminantAnalysis.json +81 -81
- package/examples/datamining/Classification/Ensembles/Bagging.json +66 -66
- package/examples/datamining/Classification/Ensembles/Boosting.json +67 -67
- package/examples/datamining/Classification/Ensembles/RandomTrees.json +91 -91
- package/examples/datamining/Classification/FindBestModel.json +86 -86
- package/examples/datamining/Classification/LogisticRegression.json +82 -82
- package/examples/datamining/Classification/NaiveBayes.json +78 -78
- package/examples/datamining/Classification/NearestNeighbors.json +84 -84
- package/examples/datamining/Classification/NeuralNetwork.json +92 -92
- package/examples/datamining/Clustering/Hierarchical.json +54 -54
- package/examples/datamining/Clustering/KMeans.json +71 -71
- package/examples/datamining/DataSources/DelimitedFile.json +49 -49
- package/examples/datamining/DataSources/JSONFile.json +49 -49
- package/examples/datamining/DataSources/MSAccessDatabase.json +49 -49
- package/examples/datamining/DataSources/MSExcelTable.json +50 -50
- package/examples/datamining/DataSources/MSSQLDatabase.json +49 -49
- package/examples/datamining/DataSources/ODATATable.json +49 -49
- package/examples/datamining/DataSources/ODBCDatabase.json +49 -49
- package/examples/datamining/FeatureSelection/LinearWrapping.json +53 -53
- package/examples/datamining/FeatureSelection/LogisticWrapping.json +56 -56
- package/examples/datamining/FeatureSelection/Univariate.json +78 -78
- package/examples/datamining/Regression/DecisionTree.json +82 -82
- package/examples/datamining/Regression/Ensembles/Bagging.json +62 -62
- package/examples/datamining/Regression/Ensembles/Boosting.json +62 -62
- package/examples/datamining/Regression/Ensembles/RandomTrees.json +78 -78
- package/examples/datamining/Regression/FindBestModel.json +86 -86
- package/examples/datamining/Regression/LinearRegression.json +124 -124
- package/examples/datamining/Regression/NearestNeighbors.json +77 -77
- package/examples/datamining/Regression/NeuralNetwork.json +82 -82
- package/examples/datamining/Scoring/JSONClassifier.json +62 -62
- package/examples/datamining/Scoring/JSONClassifierNN.json +62 -62
- package/examples/datamining/Scoring/JSONClusterizer.json +37 -37
- package/examples/datamining/Scoring/JSONForecaster.json +49 -49
- package/examples/datamining/Scoring/JSONLinearRegression.json +56 -56
- package/examples/datamining/Scoring/JSONPCA.json +41 -41
- package/examples/datamining/Scoring/JSONRegressor.json +56 -56
- package/examples/datamining/Scoring/JSONTransformer.json +38 -38
- package/examples/datamining/Scoring/PMMLClassifier.json +42 -42
- package/examples/datamining/Scoring/PMMLForecaster.json +43 -43
- package/examples/datamining/Scoring/PMMLRegressor.json +38 -38
- package/examples/datamining/Scoring/PMMLTransformer.json +38 -38
- package/examples/datamining/Simulation/LinearRegressionSimulation.json +117 -117
- package/examples/datamining/Simulation/SyntheticDataGeneration.json +108 -108
- package/examples/datamining/Simulation/pmml-risk-scoring.json +62 -62
- package/examples/datamining/Summarizer/Summarization.json +54 -54
- package/examples/datamining/TextMining/LatentSemanticAnalysis.json +51 -51
- package/examples/datamining/TextMining/TfIdf-FileData.json +65 -65
- package/examples/datamining/TextMining/TfIdf-InlineData.json +55 -55
- package/examples/datamining/TimeSeries/AddHoltWinters.json +79 -79
- package/examples/datamining/TimeSeries/Arima.json +74 -74
- package/examples/datamining/TimeSeries/DoubleExponential.json +65 -65
- package/examples/datamining/TimeSeries/Exponential.json +64 -64
- package/examples/datamining/TimeSeries/LagAnalysis.json +48 -48
- package/examples/datamining/TimeSeries/MovingAverage.json +65 -65
- package/examples/datamining/TimeSeries/MulHoltWinters.json +65 -65
- package/examples/datamining/TimeSeries/NoTrendHoltWinters.json +65 -65
- package/examples/datamining/Transformation/Binning.json +69 -69
- package/examples/datamining/Transformation/CanonicalVariateAnalysis.json +47 -47
- package/examples/datamining/Transformation/CategoryReduction.json +51 -51
- package/examples/datamining/Transformation/Factorization.json +50 -50
- package/examples/datamining/Transformation/MissingDataHandling.json +83 -83
- package/examples/datamining/Transformation/OneHotEncoding-DataInline.json +54 -54
- package/examples/datamining/Transformation/OneHotEncoding-DatainFile.json +48 -48
- package/examples/datamining/Transformation/PartitionTimeSeries.json +48 -48
- package/examples/datamining/Transformation/Partitioning-DF.json +72 -72
- package/examples/datamining/Transformation/Partitioning.json +46 -46
- package/examples/datamining/Transformation/PartitioningWithOversampling-DF.json +65 -65
- package/examples/datamining/Transformation/PartitioningWithOversampling.json +44 -44
- package/examples/datamining/Transformation/PrincipalComponentsAnalysis.json +52 -52
- package/examples/datamining/Transformation/Rescaling.json +67 -67
- package/examples/datamining/Transformation/Sampling.json +43 -43
- package/examples/datamining/Transformation/StratifiedSampling.json +46 -46
- package/examples/flow/SQLServerTransform.json +260 -260
- package/examples/flow/dm-calc-pipeline.json +277 -277
- package/examples/flow/dm-pipeline-simulation.json +113 -113
- package/examples/flow/opt-sim-pipeline.json +159 -159
- package/examples/flow/sim-dm-pipeline.json +106 -106
- package/examples/flow/sim-sim-pipeline.json +136 -136
- package/examples/index.json +4678 -4678
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/DataFiltering/ListwithFilter.json +52 -52
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/ProductMix5.json +57 -57
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/compoundWhileStatement.json +35 -35
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/ifThenElseStatement.json +33 -33
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/nestedLoop.json +25 -25
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/ParallelArray.json +47 -47
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/indexedArray.json +69 -69
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/nonParallelArray.json +49 -49
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/sumAggregateExample.json +337 -337
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/tsp.json +61 -61
- package/examples/rason-features/BoxIterators/Box_Fun_Loop_Iter_Sim_RASON.json +190 -190
- package/examples/rason-features/BoxIterators/Box_Fun_Loop_Sim_RASON.json +75 -75
- package/examples/rason-features/BoxIterators/Box_Fun_Sim_RASON.json +108 -108
- package/examples/rason-features/BoxIterators/Box_Iter_SIM_RASON.json +68 -68
- package/examples/rason-features/BoxIterators/Box_Iterator_Calc_Loop.json +183 -183
- package/examples/rason-features/BoxIterators/Box_Iterator_with_typeDef_partial.json +79 -79
- package/examples/rason-features/BoxLambdaExamples/BoxFunOptimize.json +154 -154
- package/examples/rason-features/BoxLambdaExamples/BoxFunSimulate.json +118 -118
- package/examples/rason-features/BoxLambdaExamples/LambdaFunOptimize.json +142 -142
- package/examples/rason-features/BoxLambdaExamples/LambdaFunSimulate.json +81 -81
- package/examples/rason-features/ReferenceGuide/RGFirehouseLocation.json +69 -69
- package/examples/rason-features/ReferenceGuide/RGFirehouseLocationConic.json +113 -113
- package/examples/rason-features/ReferenceGuide/RGProductMixCsv1.json +107 -107
- package/examples/rason-features/ReferenceGuide/RGProductMixExcel11.json +117 -117
- package/examples/rason-features/ReferenceGuide/RGProductMixSQL11.json +108 -108
- package/examples/rason-features/UserGuide/UGAirlineHubCSV.json +67 -67
- package/examples/rason-features/UserGuide/UGForecast.json +50 -50
- package/examples/rason-features/UserGuide/UGProductMix1.json +48 -48
- package/examples/rason-features/UserGuide/UGProductMix2.json +48 -48
- package/examples/rason-features/UserGuide/UGProductMixTab1.json +67 -67
- package/examples/rason-features/UserGuide/UGProductMixTab2.json +76 -76
- package/examples/rason-features/UserGuide/UGProductMixTab3.json +66 -66
- package/examples/rason-features/UserGuide/UGProductMixTab4.json +70 -70
- package/examples/rason-features/UserGuide/UGProductMixTab5.json +67 -67
- package/examples/rason-features/UserGuide/UGProjectSelect0.json +91 -91
- package/examples/rason-features/UserGuide/UGProjectSelect1.json +74 -74
- package/examples/rason-features/UserGuide/UGProjectSelect2.json +74 -74
- package/examples/rason-features/UserGuide/UGYieldManagement1.json +61 -61
- package/examples/rason-features/UserGuide/UGYieldManagement2.json +61 -61
- package/examples/rason-features/UserGuide/UGYieldManagement3.json +63 -63
- package/out/index.cjs +1 -1
- package/package.json +3 -2
|
@@ -1,278 +1,278 @@
|
|
|
1
|
-
{
|
|
2
|
-
"flowName": "ds-calc-workflow",
|
|
3
|
-
"flowDescription": "This decision flow contains three stages. In the first stage, mlr-sim-stage, a dataset is imported and partitioned, then a Linear Regression model is fit to the training partition.. The second stage, scoringStage, uses the fitted model from stage 1 to score a new dataset. The third stage, decisionStage, accepts the newly scored data as an input to a decision table. The two imported datasets are loan_applicants_training.txt and loan_applicant_new.txt. Both can be downloaded by clicking the download icon on the Editor ribbon. To attach both datasets to this model, click Choose Files from the Properties pane, then browse to the location of the downloaded files and click Open. Then POST the model to the RASON server using the Post icon and to solve, click the down arrow next to the play icon and select Solve.",
|
|
4
|
-
"modelType": "flow",
|
|
5
|
-
"mlrStage": {
|
|
6
|
-
"comment": "This is the first stage of the decision flow. In this stage, the data is first imported into the RASON Model, then assigned to the training partition. Afterwards, the model is fit to the data using linear regression.",
|
|
7
|
-
"modelName": "mlrModel",
|
|
8
|
-
"datasources": {
|
|
9
|
-
"comment": "Use this section to import/export data.",
|
|
10
|
-
"myTrainSrc": {
|
|
11
|
-
"comment": "Imports data from the file, loan_applicants_training.txt.",
|
|
12
|
-
"type": "csv",
|
|
13
|
-
"connection": "loan_applicants_training.txt",
|
|
14
|
-
"direction": "import"
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
|
-
"datasets": {
|
|
18
|
-
"comment": "Use this section to bind a datasource to a dataset.",
|
|
19
|
-
"myTrainData": {
|
|
20
|
-
"comment": "Binds the datasource, myTrainSrc, to the myTrainData dataset. Score is selected as the output column.",
|
|
21
|
-
"binding": "myTrainSrc",
|
|
22
|
-
"targetCol": "Score"
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
"estimator": {
|
|
26
|
-
"comment": "Use this section to dine a estimator(s), including the type, algorithm and parameters, that will be used to fit a model(s).",
|
|
27
|
-
"mlrEstimator": {
|
|
28
|
-
"comment": "Binds the datasource, myTrainSrc, to the myTrainData dataset. Score is selected as the output column. The option fitIntercept is set to True. To find a full list of options for all supported estimators, see the RASON Reference Guide, downloadable from the Help tab.",
|
|
29
|
-
"type": "regression",
|
|
30
|
-
"algorithm": "linearRegression",
|
|
31
|
-
"parameters": {
|
|
32
|
-
"fitIntercept": true
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
"actions": {
|
|
37
|
-
"comment": "Use this section to define the actions, evaluations, and data to be used by the estimator defined above",
|
|
38
|
-
"mlrModel": {
|
|
39
|
-
"comment": "In this example, the mlrEstimator estimator will be used to fit a model to the data within myTrainData. The fitted model will be saved as fittedModelJSON.",
|
|
40
|
-
"trainData": "myTrainData",
|
|
41
|
-
"estimator": "mlrEstimator",
|
|
42
|
-
"action": "fit",
|
|
43
|
-
"evaluations": [ "fittedModelJson" ]
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
"scoringStage": {
|
|
48
|
-
"comment": "The second stage accepts the fitted model, fittedModelJSON, from the 1st stage and uses this model to score new data imported from loan_applicant_new.txt",
|
|
49
|
-
"modelName": "scoringModel",
|
|
50
|
-
"inputParameters": {
|
|
51
|
-
"comment": "The input for this stage is the fitted model from stage 1, fittedModelJSON",
|
|
52
|
-
"mlrModel": {
|
|
53
|
-
"value": "mlrStage.mlrModel.fittedModelJson"
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
"datasources": {
|
|
57
|
-
"comment": "The input for this stage is the fitted model from stage 1, fittedModelJSON",
|
|
58
|
-
"unlabeledDataSrc": {
|
|
59
|
-
"comment": "Imports data from the loan_applicant_new.txt file",
|
|
60
|
-
"type": "csv",
|
|
61
|
-
"connection": "loan_applicant_new.txt",
|
|
62
|
-
"direction": "import"
|
|
63
|
-
}
|
|
64
|
-
},
|
|
65
|
-
"datasets": {
|
|
66
|
-
"comment": "Binds data from unlabeledDataSrc datasource to the unlabeledData datasets.",
|
|
67
|
-
"unlabeledData": {
|
|
68
|
-
"binding": "unlabeledDataSrc"
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
"actions": {
|
|
72
|
-
"appScore": {
|
|
73
|
-
"comment": "Scores the unlabeledData dataset using the mlrModel from stage 1",
|
|
74
|
-
"data": "unlabeledData",
|
|
75
|
-
"fittedModel": "mlrModel",
|
|
76
|
-
"action": "predict",
|
|
77
|
-
"evaluations": [ "prediction" ]
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
},
|
|
81
|
-
"decisionStage": {
|
|
82
|
-
"comment": "The third stage accepts the newly scored record from stage 2 and uses this value as an input to a decision table.",
|
|
83
|
-
"modelName": "decisionModel",
|
|
84
|
-
"inputParameters": {
|
|
85
|
-
"appScorePrediction": {
|
|
86
|
-
"comment": "This stage accepts the predicted values from the scored data in stage 2.",
|
|
87
|
-
"value": "scoringStage.appScore.prediction"
|
|
88
|
-
}
|
|
89
|
-
},
|
|
90
|
-
"decisionTables": {
|
|
91
|
-
"tblAppRiskScore": {
|
|
92
|
-
"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.",
|
|
93
|
-
"inputs": [ "cust age", "marital status", "employment status" ],
|
|
94
|
-
"outputs": [ "partial score" ],
|
|
95
|
-
"refTypes": [ "", "", "", "" ],
|
|
96
|
-
"inputValues": [
|
|
97
|
-
[ "[18..120]", "s", "unemployed" ],
|
|
98
|
-
[ "", "m", "employed" ],
|
|
99
|
-
[ "", "", "selfemployed" ],
|
|
100
|
-
[ "", "", "student" ]
|
|
101
|
-
],
|
|
102
|
-
"rules": [
|
|
103
|
-
[ "[18..21]", "-", "-", 32 ],
|
|
104
|
-
[ "(21..25]", "-", "-", 35 ],
|
|
105
|
-
[ "(25..35]", "-", "-", 40 ],
|
|
106
|
-
[ "(35..49]", "-", "-", 43 ],
|
|
107
|
-
[ ">49", "-", "-", 48 ],
|
|
108
|
-
[ "-", "s", "-", 25 ],
|
|
109
|
-
[ "-", "m", "-", 45 ],
|
|
110
|
-
[ "-", "-", "unemployed", 15 ],
|
|
111
|
-
[ "-", "-", "student", 18 ],
|
|
112
|
-
[ "-", "-", "employed", 45 ],
|
|
113
|
-
[ "-", "-", "selfemployed", 36 ]
|
|
114
|
-
],
|
|
115
|
-
"hitPolicy": "C+"
|
|
116
|
-
},
|
|
117
|
-
"tblBureauRiskCat": {
|
|
118
|
-
"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.",
|
|
119
|
-
"inputs": [ "cust exist", "app risk score" ],
|
|
120
|
-
"outputs": [ "bureau risk cat" ],
|
|
121
|
-
"refTypes": [ "", "", "" ],
|
|
122
|
-
"rules": [
|
|
123
|
-
[ false, "<100", "high" ],
|
|
124
|
-
[ false, "[100..120]", "medium" ],
|
|
125
|
-
[ false, "[120..130]", "low" ],
|
|
126
|
-
[ false, ">130", "veryLow" ],
|
|
127
|
-
[ true, "<80", "decline" ],
|
|
128
|
-
[ true, "[80..90]", "high" ],
|
|
129
|
-
[ true, "[90..110]", "medium" ],
|
|
130
|
-
[ true, ">110", "low" ]
|
|
131
|
-
],
|
|
132
|
-
"hitPolicy": "U"
|
|
133
|
-
},
|
|
134
|
-
"tblBureauCallType": {
|
|
135
|
-
"comment": "This decision table accepts 1 input, bureau Risk Cat, which is the output of the tblBureauRiskCat decision table.",
|
|
136
|
-
"inputs": [ "bureau risk cat" ],
|
|
137
|
-
"outputs": [ "bureau call type" ],
|
|
138
|
-
"rules": [
|
|
139
|
-
[ "high, medium", "full" ],
|
|
140
|
-
[ "low", "mini" ],
|
|
141
|
-
[ "veryLow, decline", "none" ]
|
|
142
|
-
],
|
|
143
|
-
"hitPolicy": "U"
|
|
144
|
-
},
|
|
145
|
-
"tblEligibility": {
|
|
146
|
-
"comment": "This decision table accepts 3 inputs, bureau Risk Cat (which is the output of the tblAppriskScore decision table), bureau afford (calculated within formulas) 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.",
|
|
147
|
-
"inputs": [ "bureau risk cat", "bureau afford", "cust age" ],
|
|
148
|
-
"outputs": [ "eligibility" ],
|
|
149
|
-
"refTypes": [ "", "", "", "" ],
|
|
150
|
-
"outputValues": [ "ineligible", "eligible" ],
|
|
151
|
-
"rules": [
|
|
152
|
-
[ "decline", "-", "-", "ineligible" ],
|
|
153
|
-
[ "-", false, "-", "ineligible" ],
|
|
154
|
-
[ "-", "-", "<18", "ineligible" ],
|
|
155
|
-
[ "-", "-", "-", "eligible" ]
|
|
156
|
-
],
|
|
157
|
-
"hitPolicy": "P"
|
|
158
|
-
},
|
|
159
|
-
"tblStrategy": {
|
|
160
|
-
"comment": "This decision table accepts 2 inputs, eligibility and bureau Call Type. The strategy will be returned in the result.",
|
|
161
|
-
"inputs": [ "eligibility", "bureau call type" ],
|
|
162
|
-
"outputs": [ "strategy" ],
|
|
163
|
-
"rules": [
|
|
164
|
-
[ "ineligible", "-", "decline" ],
|
|
165
|
-
[ "eligible", "full, mini", "bureau" ],
|
|
166
|
-
[ "eligible", "none", "through" ]
|
|
167
|
-
],
|
|
168
|
-
"hitPolicy": "U"
|
|
169
|
-
},
|
|
170
|
-
"tblCreditContFactor": {
|
|
171
|
-
"comment": "This decision table accepts 1 input, bureau Risk Cat, and returns the creditContFactor.",
|
|
172
|
-
"inputs": [ "bureau risk cat" ],
|
|
173
|
-
"outputs": [ "credit cont factor" ],
|
|
174
|
-
"rules": [
|
|
175
|
-
[ "high, decline", 0.6 ],
|
|
176
|
-
[ "medium", 0.7 ],
|
|
177
|
-
[ "low, veryLow", 0.8 ]
|
|
178
|
-
],
|
|
179
|
-
"hitPolicy": "U"
|
|
180
|
-
}
|
|
181
|
-
},
|
|
182
|
-
"data": {
|
|
183
|
-
"comment": "Use this section to organize your constant model data.",
|
|
184
|
-
"customerAge": {
|
|
185
|
-
"comment": "customer's age",
|
|
186
|
-
"value": 40
|
|
187
|
-
},
|
|
188
|
-
"maritalStatus": {
|
|
189
|
-
"comment": "customer's marital status",
|
|
190
|
-
"value": "s"
|
|
191
|
-
},
|
|
192
|
-
"employmentStatus": {
|
|
193
|
-
"comment": "customer's age",
|
|
194
|
-
"value": "s"
|
|
195
|
-
},
|
|
196
|
-
"customerExists": {
|
|
197
|
-
"comment": "True if the customer has already taken a loan with the bank, false otherwise.",
|
|
198
|
-
"value": false
|
|
199
|
-
},
|
|
200
|
-
"monthlyIncome": {
|
|
201
|
-
"comment": "applicant's monthly income",
|
|
202
|
-
"value": 2500
|
|
203
|
-
},
|
|
204
|
-
"loanRate": {
|
|
205
|
-
"comment": "prospective loan interest rate",
|
|
206
|
-
"value": 5
|
|
207
|
-
},
|
|
208
|
-
"loanTerm": {
|
|
209
|
-
"comment": "prospective loan term, in months",
|
|
210
|
-
"value": 30
|
|
211
|
-
},
|
|
212
|
-
"loanAmount": {
|
|
213
|
-
"comment": "prospective loan amount",
|
|
214
|
-
"value": 100000
|
|
215
|
-
},
|
|
216
|
-
"monthlyExpenses": {
|
|
217
|
-
"comment": "applicant's monthly expenses",
|
|
218
|
-
"value": 1000
|
|
219
|
-
},
|
|
220
|
-
"loanType": {
|
|
221
|
-
"comment": "prospective loan type",
|
|
222
|
-
"value": "standard"
|
|
223
|
-
}
|
|
224
|
-
},
|
|
225
|
-
"formulas": {
|
|
226
|
-
"appRiskScore": {
|
|
227
|
-
"comment": "Calls the tblAppRiskScore decision table",
|
|
228
|
-
"formula": "MIN(appScorePrediction, tblAppRiskScore(, , customerAge, maritalStatus, EmploymentStatus))",
|
|
229
|
-
"finalValue": []
|
|
230
|
-
},
|
|
231
|
-
"bureauRiskCat": {
|
|
232
|
-
"comment": "Calls the tblBureauRiskCat decision table",
|
|
233
|
-
"formula": "tblBureauRiskCat(, , customerExists, appRiskScore)",
|
|
234
|
-
"finalValue": []
|
|
235
|
-
},
|
|
236
|
-
"bureauCallType": {
|
|
237
|
-
"comment": "Calls the tblBureauCallType decision table",
|
|
238
|
-
"formula": "tblBureauCallType(, , bureauRiskCat)",
|
|
239
|
-
"finalValue": []
|
|
240
|
-
},
|
|
241
|
-
"monthlyRepay": {
|
|
242
|
-
"comment": "Calculates the monthly payment",
|
|
243
|
-
"formula": "-PMT(loanRate%/12, loanTerm*12, loanAmount)"
|
|
244
|
-
},
|
|
245
|
-
"disposableIncome": {
|
|
246
|
-
"comment": "Calculates the applicant's disposable income",
|
|
247
|
-
"formula": "monthlyIncome - (monthlyRepay + monthlyExpenses)"
|
|
248
|
-
},
|
|
249
|
-
"monthlyFee": {
|
|
250
|
-
"comment": "Calculates a fee that will be applied to the loan payment depending on the loan type.",
|
|
251
|
-
"formula": "IF(loanType = 'standard', 20, IF(loanType = 'special', 25, 0))"
|
|
252
|
-
},
|
|
253
|
-
"monthlyInstall": {
|
|
254
|
-
"comment": "Calculates the total monthly payment.",
|
|
255
|
-
"formula": "monthlyRepay + monthlyFee"
|
|
256
|
-
},
|
|
257
|
-
"bureauAfford": {
|
|
258
|
-
"comment": "Calls the tblCreditContFactor decision table",
|
|
259
|
-
"formula": "IF(disposableIncome * tblCreditContFactor(,,bureauRiskCat) > monthlyInstall, true, false)"
|
|
260
|
-
},
|
|
261
|
-
"eligibility": {
|
|
262
|
-
"comment": "Calls the tblEligibility decision table. The finalValue of this function will be returned in the results due to the proprety, finalValue.",
|
|
263
|
-
"formula": "tblEligibility(, , bureauRiskCat, bureauAfford, customerAge)",
|
|
264
|
-
"finalValue": []
|
|
265
|
-
},
|
|
266
|
-
"strategy": {
|
|
267
|
-
"comment": "Calls the tblStrategy decision table. The finalValue of this function will be returned in the results due to the proprety, finalValue.",
|
|
268
|
-
"formula": "tblStrategy(, , eligibility, bureauCallType)",
|
|
269
|
-
"finalValue": []
|
|
270
|
-
},
|
|
271
|
-
"creditContFactor": {
|
|
272
|
-
"comment": "Calls the tblCreditContFactor decision table. The finalValue of this function will be returned in the results due to the proprety, finalValue.",
|
|
273
|
-
"formula": "tblCreditContFactor(, , bureauRiskCat)",
|
|
274
|
-
"finalValue": []
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"flowName": "ds-calc-workflow",
|
|
3
|
+
"flowDescription": "This decision flow contains three stages. In the first stage, mlr-sim-stage, a dataset is imported and partitioned, then a Linear Regression model is fit to the training partition.. The second stage, scoringStage, uses the fitted model from stage 1 to score a new dataset. The third stage, decisionStage, accepts the newly scored data as an input to a decision table. The two imported datasets are loan_applicants_training.txt and loan_applicant_new.txt. Both can be downloaded by clicking the download icon on the Editor ribbon. To attach both datasets to this model, click Choose Files from the Properties pane, then browse to the location of the downloaded files and click Open. Then POST the model to the RASON server using the Post icon and to solve, click the down arrow next to the play icon and select Solve.",
|
|
4
|
+
"modelType": "flow",
|
|
5
|
+
"mlrStage": {
|
|
6
|
+
"comment": "This is the first stage of the decision flow. In this stage, the data is first imported into the RASON Model, then assigned to the training partition. Afterwards, the model is fit to the data using linear regression.",
|
|
7
|
+
"modelName": "mlrModel",
|
|
8
|
+
"datasources": {
|
|
9
|
+
"comment": "Use this section to import/export data.",
|
|
10
|
+
"myTrainSrc": {
|
|
11
|
+
"comment": "Imports data from the file, loan_applicants_training.txt.",
|
|
12
|
+
"type": "csv",
|
|
13
|
+
"connection": "loan_applicants_training.txt",
|
|
14
|
+
"direction": "import"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"datasets": {
|
|
18
|
+
"comment": "Use this section to bind a datasource to a dataset.",
|
|
19
|
+
"myTrainData": {
|
|
20
|
+
"comment": "Binds the datasource, myTrainSrc, to the myTrainData dataset. Score is selected as the output column.",
|
|
21
|
+
"binding": "myTrainSrc",
|
|
22
|
+
"targetCol": "Score"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"estimator": {
|
|
26
|
+
"comment": "Use this section to dine a estimator(s), including the type, algorithm and parameters, that will be used to fit a model(s).",
|
|
27
|
+
"mlrEstimator": {
|
|
28
|
+
"comment": "Binds the datasource, myTrainSrc, to the myTrainData dataset. Score is selected as the output column. The option fitIntercept is set to True. To find a full list of options for all supported estimators, see the RASON Reference Guide, downloadable from the Help tab.",
|
|
29
|
+
"type": "regression",
|
|
30
|
+
"algorithm": "linearRegression",
|
|
31
|
+
"parameters": {
|
|
32
|
+
"fitIntercept": true
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"actions": {
|
|
37
|
+
"comment": "Use this section to define the actions, evaluations, and data to be used by the estimator defined above",
|
|
38
|
+
"mlrModel": {
|
|
39
|
+
"comment": "In this example, the mlrEstimator estimator will be used to fit a model to the data within myTrainData. The fitted model will be saved as fittedModelJSON.",
|
|
40
|
+
"trainData": "myTrainData",
|
|
41
|
+
"estimator": "mlrEstimator",
|
|
42
|
+
"action": "fit",
|
|
43
|
+
"evaluations": [ "fittedModelJson" ]
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"scoringStage": {
|
|
48
|
+
"comment": "The second stage accepts the fitted model, fittedModelJSON, from the 1st stage and uses this model to score new data imported from loan_applicant_new.txt",
|
|
49
|
+
"modelName": "scoringModel",
|
|
50
|
+
"inputParameters": {
|
|
51
|
+
"comment": "The input for this stage is the fitted model from stage 1, fittedModelJSON",
|
|
52
|
+
"mlrModel": {
|
|
53
|
+
"value": "mlrStage.mlrModel.fittedModelJson"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"datasources": {
|
|
57
|
+
"comment": "The input for this stage is the fitted model from stage 1, fittedModelJSON",
|
|
58
|
+
"unlabeledDataSrc": {
|
|
59
|
+
"comment": "Imports data from the loan_applicant_new.txt file",
|
|
60
|
+
"type": "csv",
|
|
61
|
+
"connection": "loan_applicant_new.txt",
|
|
62
|
+
"direction": "import"
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"datasets": {
|
|
66
|
+
"comment": "Binds data from unlabeledDataSrc datasource to the unlabeledData datasets.",
|
|
67
|
+
"unlabeledData": {
|
|
68
|
+
"binding": "unlabeledDataSrc"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"actions": {
|
|
72
|
+
"appScore": {
|
|
73
|
+
"comment": "Scores the unlabeledData dataset using the mlrModel from stage 1",
|
|
74
|
+
"data": "unlabeledData",
|
|
75
|
+
"fittedModel": "mlrModel",
|
|
76
|
+
"action": "predict",
|
|
77
|
+
"evaluations": [ "prediction" ]
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"decisionStage": {
|
|
82
|
+
"comment": "The third stage accepts the newly scored record from stage 2 and uses this value as an input to a decision table.",
|
|
83
|
+
"modelName": "decisionModel",
|
|
84
|
+
"inputParameters": {
|
|
85
|
+
"appScorePrediction": {
|
|
86
|
+
"comment": "This stage accepts the predicted values from the scored data in stage 2.",
|
|
87
|
+
"value": "scoringStage.appScore.prediction"
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
"decisionTables": {
|
|
91
|
+
"tblAppRiskScore": {
|
|
92
|
+
"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.",
|
|
93
|
+
"inputs": [ "cust age", "marital status", "employment status" ],
|
|
94
|
+
"outputs": [ "partial score" ],
|
|
95
|
+
"refTypes": [ "", "", "", "" ],
|
|
96
|
+
"inputValues": [
|
|
97
|
+
[ "[18..120]", "s", "unemployed" ],
|
|
98
|
+
[ "", "m", "employed" ],
|
|
99
|
+
[ "", "", "selfemployed" ],
|
|
100
|
+
[ "", "", "student" ]
|
|
101
|
+
],
|
|
102
|
+
"rules": [
|
|
103
|
+
[ "[18..21]", "-", "-", 32 ],
|
|
104
|
+
[ "(21..25]", "-", "-", 35 ],
|
|
105
|
+
[ "(25..35]", "-", "-", 40 ],
|
|
106
|
+
[ "(35..49]", "-", "-", 43 ],
|
|
107
|
+
[ ">49", "-", "-", 48 ],
|
|
108
|
+
[ "-", "s", "-", 25 ],
|
|
109
|
+
[ "-", "m", "-", 45 ],
|
|
110
|
+
[ "-", "-", "unemployed", 15 ],
|
|
111
|
+
[ "-", "-", "student", 18 ],
|
|
112
|
+
[ "-", "-", "employed", 45 ],
|
|
113
|
+
[ "-", "-", "selfemployed", 36 ]
|
|
114
|
+
],
|
|
115
|
+
"hitPolicy": "C+"
|
|
116
|
+
},
|
|
117
|
+
"tblBureauRiskCat": {
|
|
118
|
+
"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.",
|
|
119
|
+
"inputs": [ "cust exist", "app risk score" ],
|
|
120
|
+
"outputs": [ "bureau risk cat" ],
|
|
121
|
+
"refTypes": [ "", "", "" ],
|
|
122
|
+
"rules": [
|
|
123
|
+
[ false, "<100", "high" ],
|
|
124
|
+
[ false, "[100..120]", "medium" ],
|
|
125
|
+
[ false, "[120..130]", "low" ],
|
|
126
|
+
[ false, ">130", "veryLow" ],
|
|
127
|
+
[ true, "<80", "decline" ],
|
|
128
|
+
[ true, "[80..90]", "high" ],
|
|
129
|
+
[ true, "[90..110]", "medium" ],
|
|
130
|
+
[ true, ">110", "low" ]
|
|
131
|
+
],
|
|
132
|
+
"hitPolicy": "U"
|
|
133
|
+
},
|
|
134
|
+
"tblBureauCallType": {
|
|
135
|
+
"comment": "This decision table accepts 1 input, bureau Risk Cat, which is the output of the tblBureauRiskCat decision table.",
|
|
136
|
+
"inputs": [ "bureau risk cat" ],
|
|
137
|
+
"outputs": [ "bureau call type" ],
|
|
138
|
+
"rules": [
|
|
139
|
+
[ "high, medium", "full" ],
|
|
140
|
+
[ "low", "mini" ],
|
|
141
|
+
[ "veryLow, decline", "none" ]
|
|
142
|
+
],
|
|
143
|
+
"hitPolicy": "U"
|
|
144
|
+
},
|
|
145
|
+
"tblEligibility": {
|
|
146
|
+
"comment": "This decision table accepts 3 inputs, bureau Risk Cat (which is the output of the tblAppriskScore decision table), bureau afford (calculated within formulas) 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.",
|
|
147
|
+
"inputs": [ "bureau risk cat", "bureau afford", "cust age" ],
|
|
148
|
+
"outputs": [ "eligibility" ],
|
|
149
|
+
"refTypes": [ "", "", "", "" ],
|
|
150
|
+
"outputValues": [ "ineligible", "eligible" ],
|
|
151
|
+
"rules": [
|
|
152
|
+
[ "decline", "-", "-", "ineligible" ],
|
|
153
|
+
[ "-", false, "-", "ineligible" ],
|
|
154
|
+
[ "-", "-", "<18", "ineligible" ],
|
|
155
|
+
[ "-", "-", "-", "eligible" ]
|
|
156
|
+
],
|
|
157
|
+
"hitPolicy": "P"
|
|
158
|
+
},
|
|
159
|
+
"tblStrategy": {
|
|
160
|
+
"comment": "This decision table accepts 2 inputs, eligibility and bureau Call Type. The strategy will be returned in the result.",
|
|
161
|
+
"inputs": [ "eligibility", "bureau call type" ],
|
|
162
|
+
"outputs": [ "strategy" ],
|
|
163
|
+
"rules": [
|
|
164
|
+
[ "ineligible", "-", "decline" ],
|
|
165
|
+
[ "eligible", "full, mini", "bureau" ],
|
|
166
|
+
[ "eligible", "none", "through" ]
|
|
167
|
+
],
|
|
168
|
+
"hitPolicy": "U"
|
|
169
|
+
},
|
|
170
|
+
"tblCreditContFactor": {
|
|
171
|
+
"comment": "This decision table accepts 1 input, bureau Risk Cat, and returns the creditContFactor.",
|
|
172
|
+
"inputs": [ "bureau risk cat" ],
|
|
173
|
+
"outputs": [ "credit cont factor" ],
|
|
174
|
+
"rules": [
|
|
175
|
+
[ "high, decline", 0.6 ],
|
|
176
|
+
[ "medium", 0.7 ],
|
|
177
|
+
[ "low, veryLow", 0.8 ]
|
|
178
|
+
],
|
|
179
|
+
"hitPolicy": "U"
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
"data": {
|
|
183
|
+
"comment": "Use this section to organize your constant model data.",
|
|
184
|
+
"customerAge": {
|
|
185
|
+
"comment": "customer's age",
|
|
186
|
+
"value": 40
|
|
187
|
+
},
|
|
188
|
+
"maritalStatus": {
|
|
189
|
+
"comment": "customer's marital status",
|
|
190
|
+
"value": "s"
|
|
191
|
+
},
|
|
192
|
+
"employmentStatus": {
|
|
193
|
+
"comment": "customer's age",
|
|
194
|
+
"value": "s"
|
|
195
|
+
},
|
|
196
|
+
"customerExists": {
|
|
197
|
+
"comment": "True if the customer has already taken a loan with the bank, false otherwise.",
|
|
198
|
+
"value": false
|
|
199
|
+
},
|
|
200
|
+
"monthlyIncome": {
|
|
201
|
+
"comment": "applicant's monthly income",
|
|
202
|
+
"value": 2500
|
|
203
|
+
},
|
|
204
|
+
"loanRate": {
|
|
205
|
+
"comment": "prospective loan interest rate",
|
|
206
|
+
"value": 5
|
|
207
|
+
},
|
|
208
|
+
"loanTerm": {
|
|
209
|
+
"comment": "prospective loan term, in months",
|
|
210
|
+
"value": 30
|
|
211
|
+
},
|
|
212
|
+
"loanAmount": {
|
|
213
|
+
"comment": "prospective loan amount",
|
|
214
|
+
"value": 100000
|
|
215
|
+
},
|
|
216
|
+
"monthlyExpenses": {
|
|
217
|
+
"comment": "applicant's monthly expenses",
|
|
218
|
+
"value": 1000
|
|
219
|
+
},
|
|
220
|
+
"loanType": {
|
|
221
|
+
"comment": "prospective loan type",
|
|
222
|
+
"value": "standard"
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
"formulas": {
|
|
226
|
+
"appRiskScore": {
|
|
227
|
+
"comment": "Calls the tblAppRiskScore decision table",
|
|
228
|
+
"formula": "MIN(appScorePrediction, tblAppRiskScore(, , customerAge, maritalStatus, EmploymentStatus))",
|
|
229
|
+
"finalValue": []
|
|
230
|
+
},
|
|
231
|
+
"bureauRiskCat": {
|
|
232
|
+
"comment": "Calls the tblBureauRiskCat decision table",
|
|
233
|
+
"formula": "tblBureauRiskCat(, , customerExists, appRiskScore)",
|
|
234
|
+
"finalValue": []
|
|
235
|
+
},
|
|
236
|
+
"bureauCallType": {
|
|
237
|
+
"comment": "Calls the tblBureauCallType decision table",
|
|
238
|
+
"formula": "tblBureauCallType(, , bureauRiskCat)",
|
|
239
|
+
"finalValue": []
|
|
240
|
+
},
|
|
241
|
+
"monthlyRepay": {
|
|
242
|
+
"comment": "Calculates the monthly payment",
|
|
243
|
+
"formula": "-PMT(loanRate%/12, loanTerm*12, loanAmount)"
|
|
244
|
+
},
|
|
245
|
+
"disposableIncome": {
|
|
246
|
+
"comment": "Calculates the applicant's disposable income",
|
|
247
|
+
"formula": "monthlyIncome - (monthlyRepay + monthlyExpenses)"
|
|
248
|
+
},
|
|
249
|
+
"monthlyFee": {
|
|
250
|
+
"comment": "Calculates a fee that will be applied to the loan payment depending on the loan type.",
|
|
251
|
+
"formula": "IF(loanType = 'standard', 20, IF(loanType = 'special', 25, 0))"
|
|
252
|
+
},
|
|
253
|
+
"monthlyInstall": {
|
|
254
|
+
"comment": "Calculates the total monthly payment.",
|
|
255
|
+
"formula": "monthlyRepay + monthlyFee"
|
|
256
|
+
},
|
|
257
|
+
"bureauAfford": {
|
|
258
|
+
"comment": "Calls the tblCreditContFactor decision table",
|
|
259
|
+
"formula": "IF(disposableIncome * tblCreditContFactor(,,bureauRiskCat) > monthlyInstall, true, false)"
|
|
260
|
+
},
|
|
261
|
+
"eligibility": {
|
|
262
|
+
"comment": "Calls the tblEligibility decision table. The finalValue of this function will be returned in the results due to the proprety, finalValue.",
|
|
263
|
+
"formula": "tblEligibility(, , bureauRiskCat, bureauAfford, customerAge)",
|
|
264
|
+
"finalValue": []
|
|
265
|
+
},
|
|
266
|
+
"strategy": {
|
|
267
|
+
"comment": "Calls the tblStrategy decision table. The finalValue of this function will be returned in the results due to the proprety, finalValue.",
|
|
268
|
+
"formula": "tblStrategy(, , eligibility, bureauCallType)",
|
|
269
|
+
"finalValue": []
|
|
270
|
+
},
|
|
271
|
+
"creditContFactor": {
|
|
272
|
+
"comment": "Calls the tblCreditContFactor decision table. The finalValue of this function will be returned in the results due to the proprety, finalValue.",
|
|
273
|
+
"formula": "tblCreditContFactor(, , bureauRiskCat)",
|
|
274
|
+
"finalValue": []
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
278
|
}
|