@frontlinesystems/rason-mcp-server 2026.5.1 → 2026.5.2

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,73 +1,73 @@
1
- {
2
- "modelName": "YieldManagement2SimExample",
3
- "modelDescription": "RASON Simulation example runs multi-simulations with simulation parameter, PsiSimParam(). The price for a flight ticket from San Francisco to Seattle is $200. Each plane can hold no more than 100 passengers. Usually, some passengers who have purchased a ticket are 'no-shows'. To protect against such no-shows, the airline would like to sell more than 100 tickets for each flight. Federal regulations require that any ticketed customer who is unable to board the plane due to overbooking is entitled to a compensation of 125% of the ticket value paid by the customer. Any no-show customer is refunded 50% of the ticket value paid by the customer. The number of no-shows is randomly distributed with a Lognormal distribution with mean of 10% of the Number of Tickets Sold and standard deviation of 6% of the Number of Tickets Sold. As in the simpler example, YieldManagementModel1, the only uncertainty is the number of no-shows, 'no_shows', depends on the parameter 'sold' which represents the number of tickets sold. However, in this example, we use the PsiSimParam() function to observe how the Expected Total Revenue (the uncertain function) varies as the number of tickets sold varies from 110 to 120. When you run multiple simulations at once, you can use the PsiSimParam() function to specify a list of values for a cell, one per simulation, where the value is held constant for all trials in a simulation. The PsiSimParam() function is located within the 'parameters' section. This function varies the Number of Tickets Sold from 110 to 120. The number of simulations to perform is set to 11 within 'modelSettings' tells RASON Decision Services to perform eleven simulations, each with 100 trials, due to the numTrials option setting. The Expected Revenue is computed using the Mean statistic, for each simulation.",
4
- "modelType": "simulation",
5
- "modelSettings": {
6
- "comment": "Use this section to change model option settings. See the RASON Reference Guide (downloadable from the Help tab) for all model option descriptions. The property numSimulations sets the number of simulations to 11. The property, numTrials, sets the number of trials per simulation to 100. Use the numThreads option to set the number of threads of execution.",
7
- "numSimulations": 11,
8
- "numTrials": 100,
9
- "numThreads": 1
10
- },
11
- "engineSettings": {
12
- "comment": "Use this section to change option settings for the simulation engine, Risk Solver Engine. See the RASON Reference Guide (downloadable from the Help tab) for all option descriptions for this engine and all RASON engines. Default engine option settings are typically sufficient for optimal performance. Use the randomSeed option, to 'seed' the random number generator each time a simulation is performed.",
13
- "randomSeed": 1
14
- },
15
- "parameters": {
16
- "comment": "PsiSimParam calculates the incremental value as: (120 (upper bound) - 110 (lower bound)) / (11 (numSimulations) - 1), then adds the incremental value to the lower bound, i.e. the variable sold will equal 110 for the 1st simulation, 111 in the 2nd, 112 in the 3rd, etc.",
17
- "sold": {
18
- "formula": "PsiSimParam(110, 120)"
19
- }
20
- },
21
- "data": {
22
- "comment": "Constant parameter values are introduced in the data section of the model.",
23
- "price": {
24
- "comment": "This is the price of a ticket",
25
- "value": 200
26
- },
27
- "capacity": {
28
- "comment": "This is the number of seats on the airplane.",
29
- "value": 100
30
- },
31
- "refund_no_shows": {
32
- "comment": "Each person who misses the flight is entitled to a refund of 50%.",
33
- "value": 0.5
34
- },
35
- "refund_overbook": {
36
- "comment": "Federal regulations require that any ticketed customer who is unable to board the plane due to overbooking is entitled to compensation of 125% of the ticket value paid by the customer.",
37
- "value": 1.25
38
- }
39
- },
40
- "uncertainVariables": {
41
- "comment": "The uncertainVariables section contains all of the uncertain variables in a RASON model.",
42
- "no_shows": {
43
- "comment": "The only uncertainty, no_Shows, depends on the parameter 'sold'. (The ROUND function rounds the fractional value to a whole number since it's not possible to sell a fractional part of a ticket.) ",
44
- "formula": "PsiLogNormal(0.1*sold, 0.06*sold)"
45
- }
46
- },
47
- "formulas": {
48
- "comment": "Use this section to organize intermediate formulas which will be utilized in the uncertain function, revenue.",
49
- "show_ups": {
50
- "comment": "The number of passengers who show up for the flight.",
51
- "formula": "sold - Round(no_shows, 0)"
52
- },
53
- "overbook": {
54
- "comment": "The number of overbooked passengers.",
55
- "formula": "Max(0, show_ups - capacity)"
56
- }
57
- },
58
- "uncertainFunctions": {
59
- "comment": "The uncertainFunctions section contains all of the uncertain functions in a RASON model.",
60
- "revenue": {
61
- "comment": "Calculate the flight's revenue by multiplying the ticket price by the number of tickets sold - the number of no_shows - the number of ticket refunded due to overbooking. The mean is the expected value of the function. The results will contain the function mean, the percentile values for the distribution of values, and the trial values. Each statistic will be returned for all 11 simulations.",
62
- "formula": "price*(sold - refund_no_shows*Round(no_shows, 0) - refund_overbook*overbook)",
63
- "mean": [],
64
- "percentiles": [],
65
- "trials": []
66
- },
67
- "SimParamValue": {
68
- "comment": "See the output for the value used for PsiSimParam in each simulation. This is the value used for 'sold' in each of the 11 simulations.",
69
- "formula": "sold",
70
- "trials": []
71
- }
72
- }
1
+ {
2
+ "modelName": "YieldManagement2SimExample",
3
+ "modelDescription": "RASON Simulation example runs multi-simulations with simulation parameter, PsiSimParam(). The price for a flight ticket from San Francisco to Seattle is $200. Each plane can hold no more than 100 passengers. Usually, some passengers who have purchased a ticket are 'no-shows'. To protect against such no-shows, the airline would like to sell more than 100 tickets for each flight. Federal regulations require that any ticketed customer who is unable to board the plane due to overbooking is entitled to a compensation of 125% of the ticket value paid by the customer. Any no-show customer is refunded 50% of the ticket value paid by the customer. The number of no-shows is randomly distributed with a Lognormal distribution with mean of 10% of the Number of Tickets Sold and standard deviation of 6% of the Number of Tickets Sold. As in the simpler example, YieldManagementModel1, the only uncertainty is the number of no-shows, 'no_shows', depends on the parameter 'sold' which represents the number of tickets sold. However, in this example, we use the PsiSimParam() function to observe how the Expected Total Revenue (the uncertain function) varies as the number of tickets sold varies from 110 to 120. When you run multiple simulations at once, you can use the PsiSimParam() function to specify a list of values for a cell, one per simulation, where the value is held constant for all trials in a simulation. The PsiSimParam() function is located within the 'parameters' section. This function varies the Number of Tickets Sold from 110 to 120. The number of simulations to perform is set to 11 within 'modelSettings' tells RASON Decision Services to perform eleven simulations, each with 100 trials, due to the numTrials option setting. The Expected Revenue is computed using the Mean statistic, for each simulation.",
4
+ "modelType": "simulation",
5
+ "modelSettings": {
6
+ "comment": "Use this section to change model option settings. See the RASON Reference Guide (downloadable from the Help tab) for all model option descriptions. The property numSimulations sets the number of simulations to 11. The property, numTrials, sets the number of trials per simulation to 100. Use the numThreads option to set the number of threads of execution.",
7
+ "numSimulations": 11,
8
+ "numTrials": 100,
9
+ "numThreads": 1
10
+ },
11
+ "engineSettings": {
12
+ "comment": "Use this section to change option settings for the simulation engine, Risk Solver Engine. See the RASON Reference Guide (downloadable from the Help tab) for all option descriptions for this engine and all RASON engines. Default engine option settings are typically sufficient for optimal performance. Use the randomSeed option, to 'seed' the random number generator each time a simulation is performed.",
13
+ "randomSeed": 1
14
+ },
15
+ "parameters": {
16
+ "comment": "PsiSimParam calculates the incremental value as: (120 (upper bound) - 110 (lower bound)) / (11 (numSimulations) - 1), then adds the incremental value to the lower bound, i.e. the variable sold will equal 110 for the 1st simulation, 111 in the 2nd, 112 in the 3rd, etc.",
17
+ "sold": {
18
+ "formula": "PsiSimParam(110, 120)"
19
+ }
20
+ },
21
+ "data": {
22
+ "comment": "Constant parameter values are introduced in the data section of the model.",
23
+ "price": {
24
+ "comment": "This is the price of a ticket",
25
+ "value": 200
26
+ },
27
+ "capacity": {
28
+ "comment": "This is the number of seats on the airplane.",
29
+ "value": 100
30
+ },
31
+ "refund_no_shows": {
32
+ "comment": "Each person who misses the flight is entitled to a refund of 50%.",
33
+ "value": 0.5
34
+ },
35
+ "refund_overbook": {
36
+ "comment": "Federal regulations require that any ticketed customer who is unable to board the plane due to overbooking is entitled to compensation of 125% of the ticket value paid by the customer.",
37
+ "value": 1.25
38
+ }
39
+ },
40
+ "uncertainVariables": {
41
+ "comment": "The uncertainVariables section contains all of the uncertain variables in a RASON model.",
42
+ "no_shows": {
43
+ "comment": "The only uncertainty, no_Shows, depends on the parameter 'sold'. (The ROUND function rounds the fractional value to a whole number since it's not possible to sell a fractional part of a ticket.) ",
44
+ "formula": "PsiLogNormal(0.1*sold, 0.06*sold)"
45
+ }
46
+ },
47
+ "formulas": {
48
+ "comment": "Use this section to organize intermediate formulas which will be utilized in the uncertain function, revenue.",
49
+ "show_ups": {
50
+ "comment": "The number of passengers who show up for the flight.",
51
+ "formula": "sold - Round(no_shows, 0)"
52
+ },
53
+ "overbook": {
54
+ "comment": "The number of overbooked passengers.",
55
+ "formula": "Max(0, show_ups - capacity)"
56
+ }
57
+ },
58
+ "uncertainFunctions": {
59
+ "comment": "The uncertainFunctions section contains all of the uncertain functions in a RASON model.",
60
+ "revenue": {
61
+ "comment": "Calculate the flight's revenue by multiplying the ticket price by the number of tickets sold - the number of no_shows - the number of ticket refunded due to overbooking. The mean is the expected value of the function. The results will contain the function mean, the percentile values for the distribution of values, and the trial values. Each statistic will be returned for all 11 simulations.",
62
+ "formula": "price*(sold - refund_no_shows*Round(no_shows, 0) - refund_overbook*overbook)",
63
+ "mean": [],
64
+ "percentiles": [],
65
+ "trials": []
66
+ },
67
+ "SimParamValue": {
68
+ "comment": "See the output for the value used for PsiSimParam in each simulation. This is the value used for 'sold' in each of the 11 simulations.",
69
+ "formula": "sold",
70
+ "trials": []
71
+ }
72
+ }
73
73
  }
@@ -1,54 +1,54 @@
1
- {
2
- "modelName": "BKMinFEEL",
3
- "modelDescription": "BKM in FEEL",
4
- "modelType": "calculation",
5
- "typeDefs": {
6
- "tLoan": {
7
- "language": "FEEL",
8
- "components": [ "principal", "rate", "termMonths" ],
9
- "types": [ "number", "number", "number" ]
10
- },
11
- "tPayment": {
12
- "language": "FEEL",
13
- "components": [ "payment", "fee", "total" ],
14
- "types": [ "number", "number", "number" ]
15
- }
16
- },
17
- "boxFunctions": {
18
- "funPMT": {
19
- "inputs": [ "p", "r", "n" ],
20
- "inputTypes": [ "number", "number", "number" ],
21
- "language": "FEEL",
22
- "resultType": "tPayment",
23
- "body": {
24
- "payment": {
25
- "formula": "(p*r/12) / (1 - (1 + r/12)**-n)"
26
- },
27
- "fee": {
28
- "formula": "0.01 * payment"
29
- },
30
- "total": {
31
- "formula": "payment + fee"
32
- }
33
- },
34
- "result": "0"
35
- }
36
- },
37
- "data": {
38
- "loan": {
39
- "type": "tLoan",
40
- "value": [ 600000, 0.0375, 360 ],
41
- "binding": "get"
42
- }
43
- },
44
- "formulas": {
45
- "monthlyPayment": {
46
- "feelFormula": "funPMT(loan.principal, loan.rate, loan.termMonths)",
47
- "finalValue": []
48
- },
49
- "total": {
50
- "feelFormula": "monthlyPayment.total",
51
- "finalValue": []
52
- }
53
- }
1
+ {
2
+ "modelName": "BKMinFEEL",
3
+ "modelDescription": "BKM in FEEL",
4
+ "modelType": "calculation",
5
+ "typeDefs": {
6
+ "tLoan": {
7
+ "language": "FEEL",
8
+ "components": [ "principal", "rate", "termMonths" ],
9
+ "types": [ "number", "number", "number" ]
10
+ },
11
+ "tPayment": {
12
+ "language": "FEEL",
13
+ "components": [ "payment", "fee", "total" ],
14
+ "types": [ "number", "number", "number" ]
15
+ }
16
+ },
17
+ "boxFunctions": {
18
+ "funPMT": {
19
+ "inputs": [ "p", "r", "n" ],
20
+ "inputTypes": [ "number", "number", "number" ],
21
+ "language": "FEEL",
22
+ "resultType": "tPayment",
23
+ "body": {
24
+ "payment": {
25
+ "formula": "(p*r/12) / (1 - (1 + r/12)**-n)"
26
+ },
27
+ "fee": {
28
+ "formula": "0.01 * payment"
29
+ },
30
+ "total": {
31
+ "formula": "payment + fee"
32
+ }
33
+ },
34
+ "result": "0"
35
+ }
36
+ },
37
+ "data": {
38
+ "loan": {
39
+ "type": "tLoan",
40
+ "value": [ 600000, 0.0375, 360 ],
41
+ "binding": "get"
42
+ }
43
+ },
44
+ "formulas": {
45
+ "monthlyPayment": {
46
+ "feelFormula": "funPMT(loan.principal, loan.rate, loan.termMonths)",
47
+ "finalValue": []
48
+ },
49
+ "total": {
50
+ "feelFormula": "monthlyPayment.total",
51
+ "finalValue": []
52
+ }
53
+ }
54
54
  }
@@ -1,69 +1,69 @@
1
- {
2
- "modelName": "DMN_Context_Example",
3
- "modelDescription": "Example of Context in Excel",
4
- "modelType": "calculation",
5
- "typeDefs": {
6
- "tLoan": {
7
- "language": "Feel",
8
- "components": {
9
- "principal": {
10
- "type": "number",
11
- "allowedValues": [ ">0" ]
12
- },
13
- "rate": {
14
- "type": "number",
15
- "allowedValues": [ "[0..1]" ]
16
- },
17
- "termMonths": {
18
- "type": "number",
19
- "allowedValues": [ ">0" ]
20
- }
21
- }
22
- }
23
- },
24
- "data": {
25
- "loan": {
26
- "type": "tLoan",
27
- "value": [ 600000, 0.0375, 360 ],
28
- "binding": "get"
29
- }
30
- },
31
- "contexts": {
32
- "cPmt": {
33
- "language": "Feel",
34
- "components": {
35
- "payment": {
36
- "type": "number",
37
- "formula": "(loan.principal*loan.rate/12) / (1 - (1 + loan.rate/12)**-loan.termMonths)"
38
- },
39
- "fee": {
40
- "type": "number",
41
- "value": 10
42
- },
43
- "total": {
44
- "type": "number",
45
- "formula": "payment + fee"
46
- }
47
- }
48
- }
49
- },
50
- "formulas": {
51
- "MonthPayment1": {
52
- "feelFormula": "cPmt.payment",
53
- "finalValue": []
54
- },
55
- "MonthPayment2": {
56
- "feelFormula": "getValue(cPmt, 'payment')",
57
- "finalValue": []
58
- },
59
- "TotalPayment1": {
60
- "feelFormula": "cPmt.payment + cPmt.fee",
61
- "finalValue": []
62
- },
63
- "TotalPayment2": {
64
- "feelFormula": "cPmt",
65
- "finalValue": [],
66
- "comment": "assume all components when '.' is missing"
67
- }
68
- }
69
- }
1
+ {
2
+ "modelName": "DMN_Context_Example",
3
+ "modelDescription": "Example of Context in Excel",
4
+ "modelType": "calculation",
5
+ "typeDefs": {
6
+ "tLoan": {
7
+ "language": "Feel",
8
+ "components": {
9
+ "principal": {
10
+ "type": "number",
11
+ "allowedValues": [ ">0" ]
12
+ },
13
+ "rate": {
14
+ "type": "number",
15
+ "allowedValues": [ "[0..1]" ]
16
+ },
17
+ "termMonths": {
18
+ "type": "number",
19
+ "allowedValues": [ ">0" ]
20
+ }
21
+ }
22
+ }
23
+ },
24
+ "data": {
25
+ "loan": {
26
+ "type": "tLoan",
27
+ "value": [ 600000, 0.0375, 360 ],
28
+ "binding": "get"
29
+ }
30
+ },
31
+ "contexts": {
32
+ "cPmt": {
33
+ "language": "Feel",
34
+ "components": {
35
+ "payment": {
36
+ "type": "number",
37
+ "formula": "(loan.principal*loan.rate/12) / (1 - (1 + loan.rate/12)**-loan.termMonths)"
38
+ },
39
+ "fee": {
40
+ "type": "number",
41
+ "value": 10
42
+ },
43
+ "total": {
44
+ "type": "number",
45
+ "formula": "payment + fee"
46
+ }
47
+ }
48
+ }
49
+ },
50
+ "formulas": {
51
+ "MonthPayment1": {
52
+ "feelFormula": "cPmt.payment",
53
+ "finalValue": []
54
+ },
55
+ "MonthPayment2": {
56
+ "feelFormula": "getValue(cPmt, 'payment')",
57
+ "finalValue": []
58
+ },
59
+ "TotalPayment1": {
60
+ "feelFormula": "cPmt.payment + cPmt.fee",
61
+ "finalValue": []
62
+ },
63
+ "TotalPayment2": {
64
+ "feelFormula": "cPmt",
65
+ "finalValue": [],
66
+ "comment": "assume all components when '.' is missing"
67
+ }
68
+ }
69
+ }
@@ -1,43 +1,43 @@
1
- {
2
- "modelName": "DMN_DT_with_TypeDef_Result",
3
- "modelDescription": "Decision Table model uses TypeDefs for all inputs/outputs.",
4
- "modelType": "calculation",
5
- "typeDefs": {
6
- "tParkingFee": {
7
- "language": "FEEL",
8
- "components": [ "parkingFee", "durVal" ],
9
- "types": [ "number", "duration" ]
10
- }
11
- },
12
- "decisionTables": {
13
- "tblParkingFee": {
14
- "inputs": [ "dtDuration" ],
15
- "outputs": [ "durVal", "parkingFee" ],
16
- "refTypes": [ "duration", "duration", "number" ],
17
- "rules": [
18
- [ "<'PT20M'", "duration(dtDuration)", 0 ],
19
- [ "['PT20M'..'PT1H')", "duration(dtDuration)", "2 *ceiling(duration(dtDuration)/duration('PT20M'))" ],
20
- [ "['PT1H'..'PT4H')", "duration(dtDuration)", "6 *ceiling(duration(dtDuration)/duration('PT1H'))" ],
21
- [ ">='PT4H'", "duration(dtDuration)", "30*ceiling(duration(dtDuration)/duration('P1D'))" ]
22
- ],
23
- "hitPolicy": "U",
24
- "resultType": "tParkingFee"
25
- }
26
- },
27
- "data": {
28
- "dur": {
29
- "value": "PT25M",
30
- "comment": "period"
31
- }
32
- },
33
- "formulas": {
34
- "fee": {
35
- "feelFormula": "tblParkingFee(,,dur)",
36
- "finalValue": []
37
- },
38
- "res": {
39
- "feelFormula": "fee.durVal.minutes",
40
- "finalValue": []
41
- }
42
- }
43
- }
1
+ {
2
+ "modelName": "DMN_DT_with_TypeDef_Result",
3
+ "modelDescription": "Decision Table model uses TypeDefs for all inputs/outputs.",
4
+ "modelType": "calculation",
5
+ "typeDefs": {
6
+ "tParkingFee": {
7
+ "language": "FEEL",
8
+ "components": [ "parkingFee", "durVal" ],
9
+ "types": [ "number", "duration" ]
10
+ }
11
+ },
12
+ "decisionTables": {
13
+ "tblParkingFee": {
14
+ "inputs": [ "dtDuration" ],
15
+ "outputs": [ "durVal", "parkingFee" ],
16
+ "refTypes": [ "duration", "duration", "number" ],
17
+ "rules": [
18
+ [ "<'PT20M'", "duration(dtDuration)", 0 ],
19
+ [ "['PT20M'..'PT1H')", "duration(dtDuration)", "2 *ceiling(duration(dtDuration)/duration('PT20M'))" ],
20
+ [ "['PT1H'..'PT4H')", "duration(dtDuration)", "6 *ceiling(duration(dtDuration)/duration('PT1H'))" ],
21
+ [ ">='PT4H'", "duration(dtDuration)", "30*ceiling(duration(dtDuration)/duration('P1D'))" ]
22
+ ],
23
+ "hitPolicy": "U",
24
+ "resultType": "tParkingFee"
25
+ }
26
+ },
27
+ "data": {
28
+ "dur": {
29
+ "value": "PT25M",
30
+ "comment": "period"
31
+ }
32
+ },
33
+ "formulas": {
34
+ "fee": {
35
+ "feelFormula": "tblParkingFee(,,dur)",
36
+ "finalValue": []
37
+ },
38
+ "res": {
39
+ "feelFormula": "fee.durVal.minutes",
40
+ "finalValue": []
41
+ }
42
+ }
43
+ }
@@ -1,28 +1,28 @@
1
- {
2
- "modelName": "FEEL_Date_Time_Example",
3
- "modelDescription": "Example of specific Date/Time FEEL operations",
4
- "modelType": "calculation",
5
- "data": {
6
- "D": {
7
- "value": "'2021-05-31'"
8
- }
9
- },
10
- "formulas": {
11
- "dow": {
12
- "feelFormula": "dayOfWeek(D)",
13
- "finalValue": []
14
- },
15
- "doy": {
16
- "feelFormula": "dayOfYear(D)",
17
- "finalValue": []
18
- },
19
- "moy": {
20
- "feelFormula": "monthOfYear(D)",
21
- "finalValue": []
22
- },
23
- "woy": {
24
- "feelFormula": "weekOfYear(D)",
25
- "finalValue": []
26
- }
27
- }
28
- }
1
+ {
2
+ "modelName": "FEEL_Date_Time_Example",
3
+ "modelDescription": "Example of specific Date/Time FEEL operations",
4
+ "modelType": "calculation",
5
+ "data": {
6
+ "D": {
7
+ "value": "'2021-05-31'"
8
+ }
9
+ },
10
+ "formulas": {
11
+ "dow": {
12
+ "feelFormula": "dayOfWeek(D)",
13
+ "finalValue": []
14
+ },
15
+ "doy": {
16
+ "feelFormula": "dayOfYear(D)",
17
+ "finalValue": []
18
+ },
19
+ "moy": {
20
+ "feelFormula": "monthOfYear(D)",
21
+ "finalValue": []
22
+ },
23
+ "woy": {
24
+ "feelFormula": "weekOfYear(D)",
25
+ "finalValue": []
26
+ }
27
+ }
28
+ }