Metadata-Version: 2.1
Name: beangrow
Version: 0.1.0
Summary: A StreamLit app for Beancount metrics
Author: Martin Blais
Author-email: blais@furius.ca
Requires-Python: >=3.10
Classifier: License :: OSI Approved :: Apache Software License
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Typing :: Typed
Requires-Dist: beancount (>=2.3.6,<3.0.0)
Requires-Dist: beanprice (>=1.2.1,<2.0.0)
Requires-Dist: matplotlib (>=3.9.0,<4.0.0)
Requires-Dist: matplotlib-stubs (>=0.2.0,<0.3.0)
Requires-Dist: numpy (>=1.26.4,<2.0.0)
Requires-Dist: pandas (>=2.2.2,<3.0.0)
Requires-Dist: pandas-stubs (>=2.2.2.240514,<3.0.0.0)
Requires-Dist: scipy (>=1.13.1,<2.0.0)
Description-Content-Type: text/markdown

# Compute Returns

This directory contains code which computes investment returns on a variety of
assets, as recorded by Beancount, fed directly from a Beancount file.

See this document for details:
https://docs.google.com/document/d/1nPsMIunLnDvdsg6TSsd0PZb7jngojNpFlqnaX36WRp8/

## Scripts

There are three related scripts:

- configure.py: This attempts to automatically infer and generate configuration
  to compute returns from an existing Beancount ledger.

- compute_returns.py: This extracts data for each of the investments defined in
  the configuration and computes the returns and generates output for each
  requested returns report.

- download_prices.py: The compute_returns.py script outputs a list of missing
  (or inadequately dated) price directives to properly do its job as a
  side-product. This script can read that file and fetch those missing dates,
  which you can insert in your ledger and then rerun compute_returns.py for a
  more precise calculation.

