Skip to content

Create financial statements from real world investment transactions

License

Notifications You must be signed in to change notification settings

shed3/investment-accountant

Repository files navigation

Contributors MIT License top-languages-shield languages-count-shield status-shield


Investment Accountant

Create financial statements from real world investment transactions

Report Bug · Request Feature

Table of Contents
  1. About the Investment Accountant
  2. Object Reference
  3. Roadmap
  4. Contributing
  5. License
  6. Contact

About Investment Accountant

Investment Accountant provides a simple interface for creating financial statements from real world financial investment transactions. The Investment Accountant uses double entry accounting principles and strives to be GAAP compliant. There are some default transaction classes available for use and extension. Transactions can represent buying/selling a stock, sending/receiving a cryptocurrency, or anything else you can think of!

Object Reference

Asset

An Asset represents the financial asset involved in a transaction. It contains useful information such as its symbol and whether it is stable or fiat. The Asset component is used to unify the interface and provide the data that is used throughout the system (for example, in the Positions and Entries).

Entry

An Entry is the basic unit of accounting in this system. Each transaction must have at least two corresponding entries to keep the equation equal, however a single transaction may have many correlating entries.

Transaction

Transactions must contain all of the information needed in order for the bookkeeper to accurately account for it. Initially, we are accounting for investment transactions so we have to provide the relevant Asset information to track, and provide entry_templates which explain how it is tracked in accounts. In other accounting systems, Asset may be substituted for an inventory, equipment, land, or other physical items that are involved in transactions. This will require new entry templates, and further functions to accurately represent the accounting involved.

Ledger

The Ledger consumes accounting journal entries and manipulates those entries within a pandas dataframe. The Ledger provides a simple interface for organizing data into common accounting structures.

Bookkeeper

The Bookkeeper converts Transactions to Entries and maintains a Ledger and Positions. It is responsible for enforcing Transaction, Entry, Position, and Ledger interfaces.

A Bookkeeper can

  • Accept transaction(s), which will trigger

    1. Update Assets' Position
    2. Get Entries from Transaction
    3. create Adjusting Entries for Affected Positions
    4. Record Transaction and Adjusting Entries on Ledger
  • Accept New Asset Price

    1. Update Assets' Position
    2. Create Adjusting Entries for Asset Positions
    3. Record Adjusting Entries on Ledger

Roadmap

  • Finalize Transaction interface
  • Finalize Entry interface
  • Finalize Position interface
  • Create financial statements
  • Allow Bookkeeper to maintain correct books in real-time environment
  • Add usage docs

See the open issues for a full list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch
    git checkout -b feature/AmazingFeature
  3. Commit your Changes
    git commit -m 'Add some AmazingFeature'
  4. Push to the Branch
     git push origin feature/AmazingFeature
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE.txt for more information. Free Software, Yee Haw!

Contact

Riley Stephens - rileystephens@escalatorllc.com

back to top

About

Create financial statements from real world investment transactions

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages