How to create a generic View for different Models?

For those that create financial models and program, why not create a model programmatically instead of with Excel?

  • I used to create financial valuation models myself with Microsoft Excel, so I am familiar with it as a modeling tool. However, after learning some functional programming, I came to the realization that Excel is largely a table-based tool for basic functional programming through a visual interface. The unfortunate thing about Excel is that it very quickly results in legacy financial models that are hard to use by anyone other than their creators because referring to constants like beta, risk free rate, WACC, etc. by cell names (e.g. A9, B52, JJ11, etc.) is not very intuitive, especially once a financial model has become large. For those that have programmed in a functional language (or even in an imperative language), why not program you financial models instead of using Excel?

  • Answer:

    This is a rather simplistic answer, but I can sum it up with the following: Standardization - Excel has become the de-facto standard for viewing financial data.  Everyone is comfortable with reading charts, looking at tabular data, but eventually it gets copy/pasted into Excel - or worse, as I have seen it, transcribed manually back into a spreadsheet.  In addition, Excel contains the entire runtime and editing environment that allows people to pry and look at the underlying code. Data portability - your code, despite how beautiful or insightful it is, is hard to transfer from one colleague to another.  You can certainly keep generating CSV outputs or export it in an excel-macro friendly manner, but now you're back at square one which begs the question maybe that's where it should have been done anyways. Excel is easy to forward in email, people can open and view it quickly - and unless in the most secure environments, there's no difficult passwords or usernames or login accounts or hoops to jump through to get to the data. Accessibility - this is very close to data portability, but in general, people want to poke at the assumptions, make changes to formulas, or key in different inputs or extend the data into other views.  A functional programming model makes this difficult as they have to understand the logic, functions, and libraries that make simple changes hard even though it may make hard things possible. Legacy Code Base - by now, there are thousands of plugins, libraries, formuals and functions expressed in Excel or VBscript.  There are a lot of codependence and userbase around these extensions and is hard to replicate.  The ecosystem around Excel is just too powerful to ignore. Having said all that, it's good to note that a lot of the large datasets, complex modeling, machine learning and projection systems are usually written in heavy duty platforms (functional or not) - Excel just happens to be the "last mile" for less programming intense renderings. 

Joseph Hsieh at Quora Visit the source

Was this solution helpful to you?

Other answers

There are many programs that can create financial models for you. I know of Argus, which can be used to create real estate models. Similarly there are others more powerful tools like SAS, SPSS, Matlab etc. that can more complicated stuff for you. But the usage is nothing as compared to Excel. I feel that Excel is the most widely used because: Reach - Everybody is using It: MS Office has such a wide reach that no other program can come closer. I create a model and send it to you. What are the chances that you would have a program to view and edit the model? If it is Excel, I am quite sure you would be able to open and edit. If its anything else.... hmm... So its like Excel is in this good loop! Flexibility: It is quite flexible. You have a very flexible tool, in which you can pretty much play with cells, input numbers, use formulas and link everything together. I find it very good to manage and view data. If you have it and it can do the job for you, why worry about anything else? Steep Learning Curve: You don't need to learn any language to create models: Learning programming language can be time taking and complicated. Plus managing and visualizing such volumes of data would require usage of language and a database as well.

Paramdeep Singh

Related Q & A:

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.