Skip to main content

A Python package for business modeling and simulation

Project description

Minnetonka is a Python package for business modeling and simulation.

Motivation

Over the last 25 years, I built many business simulation models, initially in iThink, then in Powersim, and since 2006 in Forio SimLang. Forio SimLang is great for business modeling, powerful and expressive, with great support for arrays. But lately I have encountered several occasions in which SimLang is a good solution for modeling part of the problem, and an existing Python package is a good solution for modeling another part of the problem.

For example, in 2016 I built a model in SimLang that included some simple graph logic. There are no graph primitives in SimLang, so I created the graphs using the primitives available: arrays and enums and floats. There are no built-in analytics to find the shortest path in a weighted graph, so I wrote one, using the Floyd-Warshall algorithm.

That model would have been far simpler had I used the Python package NetworkX for the graph logic, and used SimLang for the other 80% of the model. What I needed was the expressivity of SimLang, within a Python package, so I could easily integrate with NetworkX.

Minnetonka is that combination: the power of Forio SimLang for business modeling, delivered as a Python package. Minnetonka is an appropriate solution when you want to model a business (or other social organization) in Python.

Features

A Minnetonka model is a collection of variables. Each variable takes a value, a value that can be of any Python data type: an integer, a float, a tuple, an array, a dict, etc.

A Minnetonka model is simulated over time. The variables in a model take a succession of values during the simulation.

Minnetonka variables are defined in terms of other Minnetonka variables via Python functions, allowing arbitary Python code to be executed at every simulation time step, for every variable.

Minnetonka supports stocks and flows. Stocks allow circular dependencies among variables, to model the circular causality underlying many business situations.

Minnetonka introduces treatments, a primitive for value modeling. A single variable can take one value in one treatment and take a different value in a different treatment. For example, business earnings might be $20 million per year in the as-is treatment, and $25 million per year in a to-be treatment, with a planned investment generating additional earnings.

Getting Started

Installation

Dependendencies

Minnetonka requires Python 3.6, and depends on NumPy and SciPy.

Contact

Send me an email.

License

Apache License, Version 2.

Naming

Minnetonka is named after Lake Minnetonka, the ninth largest lake in the US state of Minnesota.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

minnetonka-0.0.1.tar.gz (63.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

minnetonka-0.0.1-py3-none-any.whl (42.0 kB view details)

Uploaded Python 3

File details

Details for the file minnetonka-0.0.1.tar.gz.

File metadata

  • Download URL: minnetonka-0.0.1.tar.gz
  • Upload date:
  • Size: 63.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0.post20200714 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

File hashes

Hashes for minnetonka-0.0.1.tar.gz
Algorithm Hash digest
SHA256 2f0b97e79941d7728bd95ae822ce6525017ec6f93f55eb9f11217279794bfec9
MD5 bc62540e5ed16636b5b32a12beb987a2
BLAKE2b-256 426cbe0e7adfa62f476491917e21d2b656b7efa5c074854c21685467b736b3b3

See more details on using hashes here.

File details

Details for the file minnetonka-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: minnetonka-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 42.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0.post20200714 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

File hashes

Hashes for minnetonka-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0b56f6edba19887723038250f4c7f3133a4f01ae201034b84aed5f77aef687a2
MD5 4c7ae9ec7a6b488cdd52ecf5374ff6a9
BLAKE2b-256 7750ac7ab14d7f62e07b9e997c912caa87d40922da54f0ed68143e7f4330ce1c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page