HomeTroubleshooting

Solutions to common problems encountered in the JunoViewer modelling process

Model Troubleshooting - Problems and Solutions Messages in this topic - RSS

Philip van der Wel
Philip van der Wel
Administrator
Posts: 145


7/4/2019
Philip van der Wel
Philip van der Wel
Administrator
Posts: 145
What follows are real-life scenarios JunoViewer users encountered in modelling and how the issue was resolved. As we find is generally the case, the the possible causes and solutions are often relatively straight-forward, however not always so easy to identify. This trouble shooting list will grow as more scenarios are encountered and resolved.

-----------------------------------------------------------------------

Problem #1
A certain treatment is triggering incorrectly.


Solution
The trigger for the treatment was referring to the info_ column for the model parameter instead of the parameter placeholder (specifically, the Previous Treatment value).

-----------------------------------------------------------------------

Problem #2
Model Run-time error that reports the treatment trigger equation had a #N/A instead of TRUE or FALSE.


Possible Causes
Some condition in your model parameter placeholders or general placeholders is not covered in your trigger model equations. Lookup blocks that require an exact match are the prime sources of this error. Check if all lookup blocks in your trigger equations include all possible scenarios. For example, if your Trigger requires you to know the Category of the previous treatment, but your Category lookup does not include that previous treatment, then this could occur.

-----------------------------------------------------------------------

Problem #3
A certain treatment is not being triggered where it should be.


Possible Causes
1) Have you cleared the treatments placed in your earlier attempts? If those treatments are still there, then your "time between treatment" flags (if you have any) may prevent any new treatments from being triggered.
2) Is there a committed treatment on that segment? If so, then that may prevent the segment from being triggered if your time between treatment flag is returning a false.

-----------------------------------------------------------------------

Problem #4
A treatment is not being triggered and applied in my full model run but it is being triggered in the Trigger Model Analyzer


Possible Causes
1) Remember that the Trigger Model Analyzer is only there to test and review your Treatment Triggers on individual segments. Therefore it does not check for overall FWP constraints (for budget or quantity constrained models). So depending on where the segment sits in the overall optimization or ranking process, it may not be treated even when the treatment is being triggered, simply because there is no budget or quantity left (also see next item below).
2) I checked the item above, but all my quantity is not being used up in the full model run. When this happens, often the cause is a erroneous length or area on the segment in question. For example, your treatment quantity constraint for the entire network may be 10 km per year, but your problem segment alone has a larger length, e.g. 12.9 km. In this case, the segment in question will never be treated, even if the condition satisfies the trigger conditions.
3) Have you checked that the "Maximum Number of Projects Treated In a Year" parameter (on General sheet of DMS) is correct? If you only allow 1,000 projects in a year, but you have 10,000 segments, then only the top 1,000 will be treated in a full model run. But this global check will not apply when you work in the Trigger Model Analyzer.


-----------------------------------------------------------------------

Problem #5
My committed treatments in Year 0 (i.e. Model Initialisation Year) are not resetting my IRI value (or any other condition parameter).


Cause
The model only starts applying increments, treatments, and resets in the first modelling year (Year 1, that is, one year after Model Initialisation Year). For example, if your Year 0 is 2019 then the first year that the model can reset is in 2020, regardless of whether you have a committed treatment in 2019.


Solution
1) Set your initialisation year one year back and run Year 1 with an empty budget.
2) A more elegant solution is to adjust the initial values that come from your info_ columns. Below are some pointers on how to do this (using IRI as an example); for further details, please contact Lonrix Support.
  • Use the functionality in the Info Columns worksheet to ensure the IRI value is valid and in range (i.e. If Yes, then accept the value. If No, then assume the default or clip to Min-Max range.)
  • In your initial value equation on the Parameters worksheet, check whether the Years to Next Treatment placeholder (phYearsToNextTreatment) =0 (which indicates there is a committed treatment in Year 0). If so, apply a reset in your equation, otherwise leave the initial value as is.


-----------------------------------------------------------------------

Problem #6
When I check my Treatment Costs, or Cost of Use or Maintenance Cost calculated in my DMS, or if I do cost checking manually in another spreadsheet, the costs I calculate do not agree with the values shown in the Trigger Model Analyzer or in the exported model data file.


Cause
A common cause of discrepancies in costs is the use or non-use of Discount Rate. JunoViewer always discounts all costs to year zero costs using the Discount Rate and Inflation Rate provided in your DMS. In particular, JunoViewer automatically applies discounting on the "Cost of Use" parameter you provide in BCA type models, but when it exports data, this will be the raw values before discounting since these are the ones calculated by your DMS. However, in the case of Treatment Costs, the exported values are always the discounted costs.


Solution
When checking costs to validate your model results, it is always a good idea to use a zero % discount rate initially to separate discounting from the rest of your calculations. Once you have validated that everything works as expected, you can start using a discount rate again (set this on the "General" sheet of your DMS).


-----------------------------------------------------------------------


Problem #7
When running one of the BCA Optimized models, I get an error that contains this text: "Error in GetOptimalProjectList. Details: Value was either too large or too small for an Int32"


Cause
The budget you provided was outside of the acceptable range for an Integer (our Dynamic Optimization algorithm converts Budgets and Benefits to integers). For example, you set your budget to 999,999,999,999 but in the Microsoft .NET Framework an integer can only handle numbers up to 2,147,483,647.


Solution
To mimic an open/unconstrained budget, select a smaller number such as 999,999,999. Also ensure that your Cost of Use function parameter is constrained to be no larger than 999,999,999.

-----------------------------------------------------------------------


Problem #8
My model is under-spending in the first few years of the model run. Even though treatments are triggered they are not being applied.


Cause
Are you applying committed treatments? If so, does your budget also allow for these committed treatments? If not, then the committed treatments will consume most of your budget and there will not be enough budget to apply all of the triggered treatments.


Solution
Increase your budget for the years in which you have committed treatments to ensure that there is provision for committed treatments included in your budget. An alternative strategy would be to use a zero cost for committed treatments, but this approach may complicate the definition of your treatments.



-----------------------------------------------------------------------


Problem #9
I have set up an unconstrained budget of 999,999,999 for all modelling years using the template in the Manage Model Data page, however when I look at my budget totals (in the Forecast View or Model Output Report) I see an annual budget of 2,999,999,997.


Cause
You are using a categorised budget where each Treatment Category (in this case there are three) each have a budget of 999,999,999. Therefore the total annual budget is 3 x 999,999,999 = 2,999,999,997.


Solution
Use an uncategorised budget instead of a categorised budget. The Uncategorised Budget template is available as a separate worksheet in the Budget template (which you can download from the Budget tab in the Manage Model Data page).


-----------------------------------------------------------------------


Problem #10
I am running a KPI Constrained model however the results are not fitting within the KPI targets.


Cause
Your model is financially constrained which is preventing the treatments required to meet your KPI targets from being assigned.


Solution
Set an unconstrained budget (e.g. 999,999,999) either in the Budget worksheet in your DMS file or using the template under the Budget tab in the Manage Model Data page. If you want a separate budget to be set for each Treatment Category, you should user the latter (i.e via the Manage Model Data page), and use the Categorised Budget worksheet instead of the Uncategorised Budget worksheet in the Budget template.


-----------------------------------------------------------------------


Problem #11
I have a full set of committed treatments imported but when I run the model it keeps adding more treatments. How can I run a model that ONLY applies the committed treatments?


Cause
Your are running a Trigger Model when you should be running only a Forecast Model.


Solution
In the Manage Forecast Models page, after selecting and checking your model, you should click on the Update Forecast Data button, and NOT the Run Trigger Model button. If, for some reason, you still want to run a Trigger Model, you can try providing a zero budget to your model, or set your budget such that there is no rollover and that the committed treatment costs are met with no surplus. See this post for more details.

-----------------------------------------------------------------------


Problem #12
Some of my committed treatment types have follow-up treatments (for example, a follow-up seal one year after a rehabilitation). However, my model applies only the committed treatment and not the follow-up treatment.


Cause
See Problem #5 above, and/or check your DMS logic


Solution
If your committed treatments are in-or-before the model initialization year (specified in your DMS), then the model does not actually "apply" these treatments. Your model only applies treatments after the initialization year. Thus the logic in your DMS may have to be modified to look back and detect (a) has there been a treatment placed? and (b) what was the treatment type. With these questions answered, your trigger equations should be able to trigger the correct follow up treatment. Note, however, that such a treatment will only be applied if you are running a Trigger Model and if enough surplus budget is available.


-----------------------------------------------------------------------


Problem #13
I want to include the 'Years Since Treatment' and 'Years to Next Treatment' placeholders in a formula in my DMS to check for the scenario where there are no treatments assigned before or after (respectively) the current year. What value is inserted into the placeholder where no treatments are detected?


Solution
Where there are no treatments detected when scanning back or forward from the current modelling year then a value of 9999 is inserted as a placeholder. The modeler can use this to detect that "since the model started, no treatment has been placed on this segment" or "up until the end of this FWP, no treatments will be placed on this segment."


edited by philip on 11/1/2021
0 link