{"id":24737833,"url":"https://github.com/epogrebnyak/abacus","last_synced_at":"2025-04-05T14:09:49.901Z","repository":{"id":63057690,"uuid":"336736865","full_name":"epogrebnyak/abacus","owner":"epogrebnyak","description":"A small yet valid double-entry accounting system in Python and command line.","archived":false,"fork":false,"pushed_at":"2024-10-26T17:51:17.000Z","size":3135,"stargazers_count":61,"open_issues_count":15,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-29T13:05:42.644Z","etag":null,"topics":["acca","accounting","cpa","double-entry-accounting","finance","gaap","ifrs","ledger","plaintext-accounting","tax"],"latest_commit_sha":null,"homepage":"https://epogrebnyak.github.io/abacus/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/epogrebnyak.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-07T08:20:00.000Z","updated_at":"2025-03-23T16:53:13.000Z","dependencies_parsed_at":"2023-11-19T00:24:04.414Z","dependency_job_id":"5eae3597-b7a8-4371-96af-b9d9c42705a3","html_url":"https://github.com/epogrebnyak/abacus","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epogrebnyak%2Fabacus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epogrebnyak%2Fabacus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epogrebnyak%2Fabacus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epogrebnyak%2Fabacus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/epogrebnyak","download_url":"https://codeload.github.com/epogrebnyak/abacus/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247345856,"owners_count":20924102,"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":["acca","accounting","cpa","double-entry-accounting","finance","gaap","ifrs","ledger","plaintext-accounting","tax"],"created_at":"2025-01-27T22:09:28.015Z","updated_at":"2025-04-05T14:09:49.880Z","avatar_url":"https://github.com/epogrebnyak.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e [!NOTE]\n\u003e Current point of work is [abacus-minimal](https://github.com/epogrebnyak/abacus-minimal) repo,\n\u003e that should provide an accounting engine for this project.\n\u003e `abacus` itself is frozen util a new core from `abacus-minimal` arrives.\n\n# abacus\n\n[![pytest](https://github.com/epogrebnyak/abacus/actions/workflows/.pytest.yml/badge.svg)](https://github.com/epogrebnyak/abacus/actions/workflows/.pytest.yml)\n[![PyPI](https://img.shields.io/pypi/v/abacus-py?color=blue)](https://pypi.org/project/abacus-py/)\n\nA small yet valid double-entry accounting system in Python.\n\n\u003e [!TIP]\n\u003e Check out a brand new Streamlit demo for double-entry accounting at https://abacus.streamlit.app/\n\n## Documentation\n\nSee project documentation at \u003chttps://epogrebnyak.github.io/abacus/\u003e.\n\n## Installation\n\n```\npip install abacus-py\n```\n\nFor latest version install from github:\n\n```\npip install git+https://github.com/epogrebnyak/abacus.git\n```\n\n`abacus-py` requires Python 3.10 or higher.\n\n## Quick example\n\nLet's do Sample Transaction #1 from [accountingcoach.com](https://www.accountingcoach.com/accounting-basics/explanation/5)[^1].\n\n[^1]: It is a great learning resource for accounting, highly recommended.\n\n\u003e On December 1, 2022 Joe starts his business Direct Delivery, Inc. The first transaction that Joe will record for his company is his personal investment of $20,000 in exchange for 5,000 shares of Direct Delivery's common stock.\n\u003e Direct Delivery's accounting system will show an increase in its account Cash from zero to $20,000, and an increase in its stockholders' equity account Common Stock by $20,000.\n\n### Solution\n\nBoth Python code and command line script below will produce balance sheet after Sample Transaction #1 is completed.\n\nPython code:\n\n```python\nfrom abacus import Chart, Report\n\nchart = Chart(assets=[\"cash\"], capital=[\"common_stock\"])\nledger = chart.ledger()\nledger.post(debit=\"cash\", credit=\"common_stock\", amount=20000, title=\"Owner's investment\")\nreport = Report(chart, ledger)\nprint(report.balance_sheet)\n```\n\nCommand line script:\n\n```bash\nbx init\nbx post --entry asset:cash capital:common_stock 20000 --title \"Initial investment\"\nbx report --balance-sheet\n```\n\n### Result\n\n```\nBalance sheet\nASSETS  20000  CAPITAL              20000\n  Cash  20000    Common stock       20000\n                 Retained earnings      0\n               LIABILITIES              0\nTOTAL   20000  TOTAL                20000\n```\n\nSee further transactions for this example at [documentation website](https://epogrebnyak.github.io/abacus/textbook/#accountingcoachcom).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepogrebnyak%2Fabacus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fepogrebnyak%2Fabacus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepogrebnyak%2Fabacus/lists"}