Julia for TechnoEconomic Analyses (TEAs)?

Hi,

I need to perform a Technoeconomic analysis for a technology our group is developing for one of my PhD chapters. I’m new to doing TEAs so I was doing some reading and I came across this blurb in a text book:

One word of caution, the calculations in TEAs tend to be recursive, especially when using a spreadsheet. The cell references can get complicated, and it is good practice to provide a detailed description beside each row that provides an explanation to the values in the formulas.

One option to help avoid this is to use a statistical package like SAS, LIMDEP, or STATA or a package like GAUSS, MATHEMATICA, or SIMETAR to program the TEA. This forces the use of variables, and parameters that provide for more accessible documentation of calculations and can assist with more sophisticated scenario and risk/stochastic calculations.

This book is from 2022, and the recommended choice of languages puzzled me. I am a biologist, not an economist or an engineer, and so maybe people more familiar with this field can help explain why specifically these languages were suggested (and not something like R or Julia). I have a feeling it is due to some specific packages in the ecosystem that make this TEA modelling easier, but I’m wondering if currently Julia has something that could make doing TEA’s a good choice. If not, what do you think is missing from the ecosystem to make this more feasible in Julia?

Edit: I came across this passage too:

An issue that is highlighted by some TEAs is the static nature of the values. The production yield, prices, and input costs are all treated as static over the lifetime of the facility. This is clearly not realistic, and more sophisticated models use stochastic methods to estimate the average and standard deviation for variables such as production, prices, and input costs. One software package that is designed specifically for this purpose is SIMETAR, a Microsoft Excel plug-in that allows all of the key input variables in a TEA to become stochastic, allowing for risk and sensitivity analysis around critical elements of the model.

Is there a package similar to SIMETAR that could be used for this purpose in Julia?

I am an economist but I have no idea what a techno-economic analysis is. From the Wikipedia article, it sounds like a model of a cost assessment, something that engineers and architects usually do.

The software is probably of secondary importance, it appears that some of this is done is spreadsheets, so Julia will certainly be up for the job. The difficult part will probably be the acquisition of data to parametrize this, eg if you are building up a plant for some process, how do you calculate the dollar amounts?

Probably your field has guidelines for this that are encoded into these spreadsheets.

Those are available in the standard stats packages, eg StatsBase.jl.

This is how I would start doing this:

  1. Get a paper/book that describes such a model. The model, not the software! Then implement a baseline model in Julia, which would be a mapping from parameters to various outputs.
  2. Once that is running, do various sensitivity checks (change parameters, see how outputs change).
  3. Do a presentation to colleagues who are familiar with these systems and they could suggest embellishments.

Fields like this have a lot of people who are not trained in programming, so they very much prefer to use existing code, and copy-paste pieces from other’s work. A lot of the computational general equilibrium literature works like this, can trivially be done in Julia but for some reason people use GAUSS.

Addendum: from the docs of SIMETAR, it seems like it just codes up various univariate distributions, some basic linear algebra operations, and two univariate optimization methods in Excel.

Distributions.jl, Roots.jl (for the univariate rootfinder), and StatsBase.jl, and LinearAlgebra (for the matrix ops) covers all of this, and much more.

why specifically these languages were suggested (and not something like R or Julia).

Because the guy that wrote that passage has experience with that languages and doesn’t use/know about R or Julia?