{"id":24076698,"url":"https://github.com/apirogov/moneystacks","last_synced_at":"2026-05-16T05:34:19.800Z","repository":{"id":15369107,"uuid":"18100219","full_name":"apirogov/MoneyStacks","owner":"apirogov","description":"Personal money manager. Income and spending tracking and virtual money partitioning through a simple text file.","archived":false,"fork":false,"pushed_at":"2014-08-19T13:01:49.000Z","size":240,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-09T20:00:55.348Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apirogov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-03-25T12:58:07.000Z","updated_at":"2014-08-19T13:01:49.000Z","dependencies_parsed_at":"2022-08-25T08:11:26.021Z","dependency_job_id":null,"html_url":"https://github.com/apirogov/MoneyStacks","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apirogov%2FMoneyStacks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apirogov%2FMoneyStacks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apirogov%2FMoneyStacks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apirogov%2FMoneyStacks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apirogov","download_url":"https://codeload.github.com/apirogov/MoneyStacks/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240947660,"owners_count":19883031,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-09T20:00:19.546Z","updated_at":"2026-05-16T05:34:19.751Z","avatar_url":"https://github.com/apirogov.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"MoneyStacks\n===========\nMoneystacks is a personal money management tool.\nThe idea is based around the concept of money stacks for different\npurposes and contexts (as you would stack money up in the real world).\n\nI like to think of it as a \"virtual money partition manager\":\nWhen bank accounts and physical locations of money are hard drives, then\nmoneystacks is the LVM on top, assigning money to arbitrary virtual volumes.\n\nUsage\n-----\nmoneystacks reads a configuration file \u003cb\u003e(see the example file for\nconcrete syntax information)\u003c/b\u003e and generates a stream of transactions,\nwhich are then applied to simulate/reconstruct the flow of money from,\nto and between your stacks.\n\nMany commands use the implicit \"main\" stack,\nwhich means \"unallocated money\", and when source/destination stacks\nare omitted, it is assumed that the money is transferred from/to the\n\"outside world\".\n\nYou have to set an Origin date (day zero for all calculations) and\nprobably want to initialize your stack(s) with some values.\n\nAfter that you might like to add macros for all your Regular incomes\nand spendings, because you don't want to add recurring transactions\nby hand each time, as I assume you are lazy like me.\n\nNow you probably want to establish some additional stacks. There are\ntwo flavors supported:\n\nThe Saving macro simply transfers a fixed amount of money from the main\nstack to a different stack monthly. This is straight forward. You want\nto buy a new TV on the long term, then just put aside some money each month.\n\nThe Limit macro does the same, but instead of growing over time, at the\nend of each month everything left will be returned to the main stack.\nThis type is useful to control your spendings for a specific category\nwithin the last month, e.g. you can Limit a groceries stack and assign\nall spendings for groceries to be taken from it.\n\nMoneystacks has three functions:\n\n1. moneystacks can show you a history of all transactions between two dates.\n\n2. moneystacks can show you the amount of money of each stack for any given\ndate, which is it's purpose in the first place. You can then use the stack\nvalues to reflect on your spending behaviour.\n\n3. moneystacks gives you a command line interface to add a single\ntransaction to the configuration file. This is what you are assumed to use\nto track your money flows aside of the regular stuff.\n\nLimits\n------\nThe simplicity of moneystacks may be also it's biggest drawback -\nyou are responsible for the simulation of money flows being correct.\nYou have to see for yourself what meaning you assign to your stacks and that\nall Macros and Transactions really do approximate actions in the real world.\nA stack is what you make it, you can have stacks for each bank account or\nyou can use the main stack for all unassigned money (as I intended it).\n\nThere is no support for floating point numbers, because all what moneystacks\nis supposed to do for me is to approximate the moneyflows that happen in my\nlife and guide me in my spending behaviour.\n\nAnd as it is a mere approximation, from time to time you might have to\nadd \"correction transactions\", if the macros and the real world drift apart.\n\nInstallation\n------------\n```\ngit clone https://github.com/apirogov/MoneyStacks.git\ncd MoneyStacks\ncabal install\n```\n\n**Build documentation:** `cabal haddock`\n\n**Run test suite:** `cabal test --show-details=always`\n\nMake also sure, that `~/.cabal/bin` is in your `$PATH`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapirogov%2Fmoneystacks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapirogov%2Fmoneystacks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapirogov%2Fmoneystacks/lists"}