{ "info": { "author": "Brad Busenius", "author_email": "bbusenius@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "MMM\\_Savings\\_Rate\n==================\n\nThis application is a command-line utility that allows users to\ncalculate and track their monthly savings rates over time. Users simply\nenter their savings and income data into a spreadsheet saved as a .csv.\nUnique spreadsheet column headers are mapped to the application through\nuser configuration files, allowing the utility to be used with any\ncustom spreadsheet. When the simulation is run, user monthly savings\nrates are plotted on a line graph.\n\n.. figure:: https://github.com/bbusenius/MMM_Savings_Rate/raw/master/docs/screenshot.png\n :alt: Example savings rates plotted\n\n Example savings rates plotted\n\nAdditionally, users may supply secondary, \"enemy\" spreadsheets. This\nfeature is provided in order to make the experience fun, game-like, and\ncompetitive for those who prefer such an experience. If an enemy\nspreadsheet is provided, the enemy savings rates are plotted alongside\nthose of the user. This feature might be used by spouses who wish to\ncompete with each other, for example.\n\n*MMM\\_Savings\\_Rate was inspired by Mr. Money Mustache. Visit the Mr.\nMoney Mustache website and `read this article to learn\nmore `__.*\n\nWeb version\n-----------\n\nThough MMM\\_Savings\\_Rate is meant to be run from the command-line, a\nfull, graphical, web-based version of the project exists at:\nhttps://savingsratewars.com/. Use the web-based version of the software\nif you don't want to deal with installation and configuration.\n\nInstallation\n------------\n\nThis package should generally be installed using pip.\n\nFor users\n~~~~~~~~~\n\n::\n\n pip install MMM-Savings-Rate\n\nFor developers\n~~~~~~~~~~~~~~\n\n::\n\n git clone https://github.com/bbusenius/MMM_Savings_Rate.git\n python3 setup.py develop\n\nor\n\n::\n\n pip install -e git+https://github.com/bbusenius/MMM_Savings_Rate.git#egg=mmm_savings_rate\n\nUsing the application\n---------------------\n\nIn order to get things going, you'll only need to take the following\nsteps:\n\n1. Setup a directory of .csv files with the financial data needed to run\n the simulation.\n2. Configuration:\n\n- Create an account-config.ini with player information.\n- Create a config.ini with personal settings and column mappings.\n\n3. Run the simulation command with a path to your configuration files.\n\nRead on to see how to do each of these things.\n\nSpreadsheet files\n~~~~~~~~~~~~~~~~~\n\nMMM\\_Savings\\_Rate was designed to be flexible in order to work with\nyour preexisting spreadsheets. At the moment, spreadsheets must be saved\nas .csv files, however, column headers can be unique, so it doesn't\nmatter what labels you use to categorize things. To get started you'll\nneed financial data for both **income** and **savings**.\n\nThis data can exist in a single spreadsheet with a variety of financial\ndata or separate spreadsheets for income and savings. How you set it up\nis up to you, however, certain data is required. The application will\nallow you to map your column labels to fields, so you don't have to name\nthem the same as outlined here. You also might want to split some of\nthese fields over multiple columns in your spreadsheet. Jump to the\nconfiguration section to learn how to do this. In any event, however you\ndecide to enter the data in your spreadsheet, all of the following\nfields must be represented in some fashion.\n\n- **Date for pay** - the date of your paycheck or date associated with\n the income being entered. The application can parse most date\n formats.\n- **Gross Pay** - the amount of money you made in its entirety before\n taxes were withdrawn.\n- **Employer Match** - money contributed to a retirement plan by your\n employer.\n- **Taxes and Fees** - any taxes and fees taken out of your paycheck\n before it was delivered, e.g. OASDI, Medicare, etc.\n- **Savings Accounts** - a dollar amount (mapped to 1 or multiple\n accounts)\n- **Date for savings** - the date you saved money into each account.\n\n*Note about \"Savings Accounts\": you might have multiple savings\naccounts, e.g. Bank Account, Vanguard Brokerage, Roth. Each one of these\nwould contain a dollar amount representing the quantity of money saved\nfor the month. Mapping will be handled in the configuration stage.*\n\n`For example spreadsheets please look in the csv\ndirectory `__.\nThis should give you a good idea of how to lay things out.\n\nConfiguration\n~~~~~~~~~~~~~\n\nIn order to run the simulation the following two files are required:\n\n1. account-config.ini - the configuration for the players. Think of this\n as a listing of users. Each user has an id, name, and a link to his\n or her personal configuration.\n2. config.ini - the configuration for the main user. Think of this as\n all of your personal settings.\n\n*Optional, \"enemy\" config files can be named however you like, e.g.\nconfig-spouse.ini. These should be setup in a similar fashion as\nconfig.ini and they should be listed as pipe separated groupings under\n\"enemies\" in account-config.ini.*\n\naccount-config.ini\n^^^^^^^^^^^^^^^^^^\n\nA file must exist with the name account-config.ini. An example\naccount-config.ini might look like this:\n\n::\n\n [Users]\n ; Unique ID, name, and config file name for user.\n self = 1,My name,config.ini\n\n ; Unique ID, name, and pipe separated list of config\n ; file names for user's enemies.\n enemies = 2,Joe,config-spouse.ini|3,Brother,config-brother.ini\n\nThe [Users] section is required. The \"self\" field represents the main\nplayer (you). This field should contain a comma separated list with a\nunique numerical ID, followed by a name, and the name of a main user\nconfig file.\n\nThe \"enemies\" field is optional. If it's being used, it should be setup\nthe same as the self field, however, if more than one enemy exists, this\ncan be a pipe separated list of comma separated values.\n\nconfig.ini\n^^^^^^^^^^\n\nThe config.ini file is the second configuration file. This file is\nrequired. It contains all of your personal settings and spreadsheet\nmappings.\n\n`Please look at this\nexample `__.\n\nThe majority of what's here is listed under [Sources]. Settings include:\n\n- **pay** - a full path to your income .csv file.\n- **pay\\_date** - the name of a column header for the dates of income\n or pay transactions.\n- **savings** - a full path to your savings .csv file (can be the same\n file used for pay).\n- **savings\\_date** - the name of a column header for the dates of\n income or pay transactions.\n- **gross\\_income** - the name of a column header in your spreadsheet\n that represents gross pay.\n- **employer\\_match** - the name of a column header in your spreadsheet\n that represents your employer match.\n- **taxes\\_and\\_fees** - the names of column headers in your\n spreadsheet that contain taxes and fees.\n- **savings\\_accounts** - the names of column headers in your\n spreadsheet that contain savings data from an account or accounts.\n- **war** - allows you to show or hide, \"enemy\" plots on your graph.\n Set this to, \"off\" if you only want to see your own data.\n\nSettings under [Graph] allow you to change the size of the plot that's\ngenerated. *Note: Mint integration is not yet operational*.\n\nRunning the simulation\n~~~~~~~~~~~~~~~~~~~~~~\n\nOnce you have your .csv and your config files ready to go, you can run\nthe application. Just open a terminal and type the command:\n\n::\n\n savingsrates -p /home/joeconsumer/Documents/Code/Projects/MMM_Savings_Rate/config/\n\nThe -p flag should specify the full path to your directory of config\nfiles. When you run the command a plot of your monthly savings rates\nshould open in a browser window.\n\nRequirements\n------------\n\nThis utility runs on python 3.4. All additional dependencies should be\nautomatically downloaded and included during installation. If you'd like\nto see all of what will be installed look at\n`setup.py `__\nor\n`requirements.txt `__.", "description_content_type": null, "docs_url": null, "download_url": null, "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/bbusenius/MMM_Savings_Rate.git", "keywords": null, "license": "GNU GPLv3, see LICENSE.txt", "maintainer": null, "maintainer_email": null, "name": "MMM-Savings-Rate", "package_url": "https://pypi.org/project/MMM-Savings-Rate/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/MMM-Savings-Rate/", "project_urls": { "Homepage": "https://github.com/bbusenius/MMM_Savings_Rate.git" }, "release_url": "https://pypi.org/project/MMM-Savings-Rate/0.4/", "requires_dist": null, "requires_python": null, "summary": "An application that can parse spreadsheets in order to calculate and plot a user's monthly savings rate over time.", "version": "0.4" }, "last_serial": 1933056, "releases": { "0.1": [], "0.2": [ { "comment_text": "", "digests": { "md5": "6fac3c2d2f0a5552ffceef23484bcb09", "sha256": "ebe9f5837acc0f55a327d26b51eef9dd07ccd50a63f74e2c5671dc3481620eca" }, "downloads": -1, "filename": "MMM_Savings_Rate-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "6fac3c2d2f0a5552ffceef23484bcb09", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 35780, "upload_time": "2016-01-27T02:19:08", "url": "https://files.pythonhosted.org/packages/97/a3/8ee4d416c2ed1145ec617a607a1cbd7297ace040abcbe87cc0a397c888d6/MMM_Savings_Rate-0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "65ed2b66390ccf6b09335e9594ef212e", "sha256": "18fbf0d7b33f5d6586e877c2372220e4c1cbb485f4551f17cf4caf34d51ecea0" }, "downloads": -1, "filename": "MMM_Savings_Rate-0.2.tar.gz", "has_sig": false, "md5_digest": "65ed2b66390ccf6b09335e9594ef212e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23148, "upload_time": "2016-01-27T02:19:15", "url": "https://files.pythonhosted.org/packages/a9/3d/b829c29294d1a572a79987c764bc494afb44b30d9e7ddf1c77a28207507c/MMM_Savings_Rate-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "280999f51d84ce189437216ed95d36b7", "sha256": "ef76071fb766f752ffe61540c95cfaa26e8a88115044d3ee6bd3d9c6e8405e79" }, "downloads": -1, "filename": "MMM_Savings_Rate-0.3.tar.gz", "has_sig": false, "md5_digest": "280999f51d84ce189437216ed95d36b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33938, "upload_time": "2016-02-01T02:35:24", "url": "https://files.pythonhosted.org/packages/fb/43/5fac734887a917277cf541fe7061f2e05a5a85fa5b6a01e76a37c406444e/MMM_Savings_Rate-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "1bb0b8185a8f91df34d5f5f2380293fe", "sha256": "c28fb4a8f486c330a1c8ea4a810a6106186cfcd324630df455072a29cb30d910" }, "downloads": -1, "filename": "MMM_Savings_Rate-0.4.tar.gz", "has_sig": false, "md5_digest": "1bb0b8185a8f91df34d5f5f2380293fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34796, "upload_time": "2016-02-01T03:59:36", "url": "https://files.pythonhosted.org/packages/43/67/e94ce7cb64c91666122e915a404e295b8c5a4a9468c039df75698d9a8916/MMM_Savings_Rate-0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1bb0b8185a8f91df34d5f5f2380293fe", "sha256": "c28fb4a8f486c330a1c8ea4a810a6106186cfcd324630df455072a29cb30d910" }, "downloads": -1, "filename": "MMM_Savings_Rate-0.4.tar.gz", "has_sig": false, "md5_digest": "1bb0b8185a8f91df34d5f5f2380293fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34796, "upload_time": "2016-02-01T03:59:36", "url": "https://files.pythonhosted.org/packages/43/67/e94ce7cb64c91666122e915a404e295b8c5a4a9468c039df75698d9a8916/MMM_Savings_Rate-0.4.tar.gz" } ] }