{"id":23032314,"url":"https://github.com/michaelfromyeg/mystatements","last_synced_at":"2025-04-02T21:41:49.396Z","repository":{"id":184929507,"uuid":"347744478","full_name":"michaelfromyeg/mystatements","owner":"michaelfromyeg","description":"Process and analyze your TD Financial statements in bulk and generate useful insights from your spending history.","archived":false,"fork":false,"pushed_at":"2025-02-17T21:42:02.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-17T22:29:39.223Z","etag":null,"topics":["banking","personal-finance","td"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/michaelfromyeg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-03-14T20:18:40.000Z","updated_at":"2025-02-17T21:42:05.000Z","dependencies_parsed_at":"2023-07-31T02:17:42.646Z","dependency_job_id":null,"html_url":"https://github.com/michaelfromyeg/mystatements","commit_stats":null,"previous_names":["michaelfromyeg/mystatements"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelfromyeg%2Fmystatements","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelfromyeg%2Fmystatements/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelfromyeg%2Fmystatements/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelfromyeg%2Fmystatements/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michaelfromyeg","download_url":"https://codeload.github.com/michaelfromyeg/mystatements/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246899625,"owners_count":20851893,"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":["banking","personal-finance","td"],"created_at":"2024-12-15T15:51:57.426Z","updated_at":"2025-04-02T21:41:49.390Z","avatar_url":"https://github.com/michaelfromyeg.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mystatements 💰🪙\n\nProcess and analyze your TD Financial statements in bulk and generate useful insights from your spending history. The name is a play on the TD's personal finance app of a similar name, myspend.\n\n**NOTE:** this project only _processes_ your statement data and stores it in a local SQLite instance. It _does not_ store your financial data on servers.\n\n## About\n\nThe goal of this project is to produce app to understand my long-term spending behaviours through analyzing TD statements. There is no easy way to access your spending data from myspend, Mint, etc., but your statements do contain this information.\n\nIt acts as a kind of addition to TD myspend; where myspend is useful for tracking your transactions as they happen, mystatements provides you with a better picture of your past spending habits, and provides an easier interface for predicting future spending (e.g., tracking subscriptions, consistent purchases, etc).\n\nAnother major motivation for this project is that I find myspend a bit buggy and think Mint isn't the perfect solution for my needs.\n\n## Roadmap\n\n- [ ] Process savings and chequing accounts\n- [ ] Clean up line-by-line code for savings and chequing\n- [ ] Add support for subscriptions\n- [ ] Add support for graphs (i.e., use matplotlib)\n- [ ] Upload your statement, host on web-server\n- [ ] Write a guide to commands/API for transaction.py\n\n## Setup\n\nFirstly, you need Python (with version \u003e= 3), pip, and Java (for [Apache Tika](https://tika.apache.org/)) installed. For Tika, [you need Java 7+](https://github.com/chrismattmann/tika-python); Java 8 is recommended.\n\n```sh\n# for Python, use homebrew: https://docs.brew.sh/Installation\nbrew install python\n$ python --version\n\u003e Python 3.9.5\n\n# for Java, use SDKMAN! https://sdkman.io/install\nsdk install java 8.292.10.1-amzn\n$ java -version\n\u003e openjdk version \"1.8.0_292\"\n\u003e OpenJDK Runtime Environment Corretto-8.292.10.1 (build 1.8.0_292-b10)\n\u003e OpenJDK 64-Bit Server VM Corretto-8.292.10.1 (build 25.292-b10, mixed mode)\n```\n\nYou'll need to create a virtual environment. On Linux, do the following\n\n```sh\npython3 -m pip install --user virtualenv\npython3 -m venv env\nsource env/bin/activate\ndeactivate # only when you need to, of course\npip install -r requirements.txt # to install dependencies\npip freeze \u003e requirements.txt # to save updated dependencies\n```\n\nThen you'll need to add your bank statements to `data/statements` and your account information to `data/accounts`. After that, try\n\n```sh\npython src/filename.py # normalizes statement filenames\npython src/accounts.py [chequing|savings] # processes account CSV data\npython src/accounts.py [chequing|savings] # processes statement PDF data\n```\n\n## Files\n\n```bash\n├── README.md # This file!\n├── data\n│   └── accounts # A folder for recent account summaries from TD\n│       └─── your_accounts_go_here.csv\n│   ├── chequing.json # A file with all known data that can appear in a chequing statement\n│   ├── savings.json # A file with all known data that can appear in a savings statement\n│   └── statements # A folder for all chequing and savings statements from TD\n│       └─── your_statements_go_here.pdf\n├── data.py # Add to either chequing.json or savings.json with this tool\n├── data_helper.py # Another tool to help you figure out what to input into data.py (if you're stuck)\n├── filename.py # Normalize all filenames in /statements; very useful if downloading from TD directly\n├── files.sh # A short bash script to generate this tree; run `bash files.sh` to execute\n├── reader.py # Process a user's transactions and print summary statistics/graphs; see TRANSACTION.md for more\n├── requirements.txt # Python dependencies list\n└── transaction.py # The transaction data types used in this project\n```\n\n## Usage\n\n### Statements\n\nNormalize filenames by running:\n\n`python filename.py`\n\nProcess each month and see a net difference by running:\n\n`python reader.py`\n\nAdd data to the chequing/savings statement knowledge bank by running:\n\n`python data.py`\n\nIf you're unsure what to input, running this diagnostic will help:\n\n`python data_helper.py`\n\n### Graphs\n\nTODO\n\n## Contributing\n\nThis project is actively looking for contributors! Message me at michaelfromyeg@gmail.com if you're interested.\n\n## Related Work\n\n- [Treller](https://github.com/Bizzaro/Teller)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichaelfromyeg%2Fmystatements","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichaelfromyeg%2Fmystatements","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichaelfromyeg%2Fmystatements/lists"}