It’s taken a while, but there is finally a version of Minsky that I’m happy to declare as “Minsky 1.0“. The stable release will now be permanently available at Minsky’s Sourceforge page (and on my blog). It will only change if bug-fixes prove to be necessary, while development of new features will continue in the “bleeding edge” beta releases. Now is therefore a good time to provide an overview of what Minsky does, and how it differs from the many commercial (and Open Source) system dynamics programs out there.
Minsky, like all system dynamics programs, provides a visual method to build dynamic simulation models. Rather than typing equations as cell references on a spreadsheet:
Figure 1: A typical spreadsheet model
Or as lines of computer code in a program like Matlab or Mathematica:
Employment[t] = Output[t] / Labor_Productivity[t]
Or even as properly formatted mathematical expressions in Mathcad:
They are instead entered as linked elements in a flowchart, as shown in Figure 1:
Figure 2: A basic equation in Minsky
The advantages of this flowchart rendition of a model are:
- Readability. Reading a flowchart like this is much easier than reading a line of computer code, let alone a mass of spreadsheet cell references (though arguably no easier than reading a well-formatted equation like equation ); and
- Structure. A simple equation like doesn’t need structure, but if you provide more detail then it’s easy to lose sight of “the wood for the trees”. For example, let’s say you assume that LaborProductivity grows exponentially with time: then you need to add a block that does that—as in Figure 2.
Figure 3: A rate of change function added to the model
That can lead to cluttered diagrams over time, but you can reduce the clutter by grouping, as in Figure 3. This also lets you develop a complex model in a team, by putting different components in blocks and then combining them later, as in Figure 4 (this bit of Minsky is still a bit ugly, and it’s something we’re working on for the next release).
Figure 4: Labor Productivity function put into a sub-block
So far, while this might be revolutionary to economists, who have taken to dynamic modelling like ducks to a skillet (see Figure 5 for a representative example of their ignorance of dynamic modelling tools), it’s all old hat to system engineers, who have been building models this way for decades now in Simulink (The Mathworks/Matlab) , Vissim, System Modeler (Wolfram Research/Mathematica), Vensim (Ventana Systems) , Stella and IThink, XCos (Open Source) and several other programs. What Minsky adds is another method to input equations that is eminently suited to modelling monetary flows: the “Godley Table”.
Figure 5: Most mainstream economists are ignorant of dynamic methods
Named in honor of Wynne Godley, the non-orthodox economist who pioneered stock-flow consistent modelling in Post Keynesian Economics, the Godley Table steals a leaf from the blue-lined pages of the accountant’s ledger: the double-entry bookkeeping system. Though it didn’t begin this way (I’ve learnt a thing or two while designing Minsky), the Godley Table makes sure that every financial transaction has two entries which sum to zero—signifying a financial transfer from one party to another (in the case of a typical purchase), or the matching creation of an Asset and a Liability (in the case of a loan).
This feature is illustrated in Figure 5 by a deliberate mistake: the term “Wages” occurs with the same sign in both the Firms and Workers columns, and the program warns of the mistake by showing that the sum of that row is “2Wages” when it should be zero.
Figure 6: A Minsky model with a bank (and an error)
The near certainty of this sort of error in flowchart-based system dynamics models is why I personally made so little use of them until developing Minsky. Instead, I’ve worked with equation programs like Mathcad (and sometimes its more powerful but more difficult to drive cousin Mathematica), because I found the flowchart paradigm generated a diagram that looked more like a messy bowl of spaghetti than an intuitive model when I tried to model the financial system.
For instance, the very basic model shown in Figure 6 took less than 20 minutes to build, and I knew it would work first-time because the accounting built into the Godley Table told me the equations were properly connected.
Figure 7: A simple model of banking
Any error would not only turn up in crazy values in a simulation—as would also happen in a flowchart rendition—it would also result in a non-zero sum for one row or more—as in Figure 7, where I’ve used the same sign for Wages in both the Firms and the Workers bank account.
Figure 8: An easily identified error in a Minsky model
The error-checking relies on treating Liabilities (and Equity) as negative sums, and Assets as positive ones. If that is a bit mind-bending for you (or if you’re trained in accounting), you can switch over to entering and seeing flows using the standard DR and CR entries of an accountant—as in Figure 8 (personally I find the accounting approach more mind-bending, and prefer to stick with the negative sign for Liabilities).
Figure 9: Using DR and CR instead of + and -
Minsky also handles multiple banks, which makes it possible to model both private banks and the Central Bank in one model—rather like the real world—and it ensures that what is shown as a Liability on one table (for example, private bank Reserves at the Central Bank) must be shown as an Asset on another (the same Reserves are an Asset on the books of the private banks).
Figure 10: A Minsky model with multiple banks
The combination of simple modelling of monetary flows with the standard flowchart toolkit of system dynamics means that, with Minsky, it is finally possible to build explicitly monetary models of capitalism—which has always been my goal. This is something mainstream economists have avoided deliberately, because their a priori notions tell them that banks, debt and money don’t matter—yes, I know that sounds crazy (hell, it is crazy!) but economics is more a religion than a science, and the first rule of zealotry is don’t let the facts get in the way of a good story.
I’ve avoided it in the past only because I couldn’t work out how to do it. Banks, debt and money featured implicitly in my models—like this 1995 paper that the New York Times has recently discovered—but not explicitly. Now that I’ve developed Minsky (I hasten to add that I didn’t write a line of code here—that has been done by the programming genius Russell Standish and some Open Source contributors), it’s easy to do.
And the very first thing I did when Minsky reached its current capability was to develop an explicitly monetary version of my 1995 model.
Figure 11: An explicitly monetary model of Minsky in Minsky
This model fixed one weakness in my 1995 paper: since it didn’t have an explicit monetary side, it couldn’t generate the deflation facet of a debt-deflation. The crises it generated—after an initial period of apparent convergence to tranquillity—were ones of both boom and bust, when we know from historical and recent experience that, when a debt-deflation really hits, it’s all bust and no boom (unless and until bankruptcy and government stimulus stop the spiral into a Black Hole of debt).
It’s hardly a pretty picture, but it’s a far more realistic vision of capitalism than the one that led mainstream economists like Nobel Laureate Robert Lucas to proclaim in 2003 that:
“macroeconomics … has succeeded: Its central problem of depression-prevention has been solved, for all practical purposes, and has in fact been solved for many decades”. (Robert Lucas 2003)
Yeah, right. Claims like that are fine for politicians who often have to play the role of confidence merchants. But when the professionals who are supposed to advise them believe the same story, their blind faith sets us up for catastrophes like 2007-08.
Minsky is my attempt to help a new generation of economists to be more realistic about the economy, by taking banks, debt, money and dynamics more seriously than their predecessors have done. It’s come a long way since the initial grant from INET that made it possible, and there’s a lot further that it can go. But it’s gone far enough down that road to be usable now, and I’d be delighted to have young (and old!) economists download it and try it out.