Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/epogrebnyak/abacus
A small yet valid double-entry accounting system in Python and command line.
https://github.com/epogrebnyak/abacus
acca accounting cpa double-entry-accounting finance gaap ifrs ledger plaintext-accounting tax
Last synced: 8 days ago
JSON representation
A small yet valid double-entry accounting system in Python and command line.
- Host: GitHub
- URL: https://github.com/epogrebnyak/abacus
- Owner: epogrebnyak
- License: gpl-3.0
- Created: 2021-02-07T08:20:00.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-10-26T17:51:17.000Z (3 months ago)
- Last Synced: 2025-01-20T02:34:02.952Z (16 days ago)
- Topics: acca, accounting, cpa, double-entry-accounting, finance, gaap, ifrs, ledger, plaintext-accounting, tax
- Language: Python
- Homepage: https://epogrebnyak.github.io/abacus/
- Size: 2.99 MB
- Stars: 59
- Watchers: 3
- Forks: 4
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
> [!NOTE]
> Current point of work is [abacus-minimal](https://github.com/epogrebnyak/abacus-minimal) repo,
> that should provide an accounting engine for this project.
> `abacus` itself is frozen util a new core from `abacus-minimal` arrives.# abacus
[![pytest](https://github.com/epogrebnyak/abacus/actions/workflows/.pytest.yml/badge.svg)](https://github.com/epogrebnyak/abacus/actions/workflows/.pytest.yml)
[![PyPI](https://img.shields.io/pypi/v/abacus-py?color=blue)](https://pypi.org/project/abacus-py/)A small yet valid double-entry accounting system in Python.
> [!TIP]
> Check out a brand new Streamlit demo for double-entry accounting at https://abacus.streamlit.app/## Documentation
See project documentation at .
## Installation
```
pip install abacus-py
```For latest version install from github:
```
pip install git+https://github.com/epogrebnyak/abacus.git
````abacus-py` requires Python 3.10 or higher.
## Quick example
Let's do Sample Transaction #1 from [accountingcoach.com](https://www.accountingcoach.com/accounting-basics/explanation/5)[^1].
[^1]: It is a great learning resource for accounting, highly recommended.
> 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.
> 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.### Solution
Both Python code and command line script below will produce balance sheet after Sample Transaction #1 is completed.
Python code:
```python
from abacus import Chart, Reportchart = Chart(assets=["cash"], capital=["common_stock"])
ledger = chart.ledger()
ledger.post(debit="cash", credit="common_stock", amount=20000, title="Owner's investment")
report = Report(chart, ledger)
print(report.balance_sheet)
```Command line script:
```bash
bx init
bx post --entry asset:cash capital:common_stock 20000 --title "Initial investment"
bx report --balance-sheet
```### Result
```
Balance sheet
ASSETS 20000 CAPITAL 20000
Cash 20000 Common stock 20000
Retained earnings 0
LIABILITIES 0
TOTAL 20000 TOTAL 20000
```See further transactions for this example at [documentation website](https://epogrebnyak.github.io/abacus/textbook/#accountingcoachcom).