{"id":26356880,"url":"https://github.com/au5ton/expense-report","last_synced_at":"2025-10-08T12:01:38.963Z","repository":{"id":82989074,"uuid":"174194846","full_name":"au5ton/expense-report","owner":"au5ton","description":"💸 personal tool for parsing CSV files provided by Wells Fargo","archived":false,"fork":false,"pushed_at":"2019-03-13T07:14:38.000Z","size":50,"stargazers_count":1,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-16T13:36:49.873Z","etag":null,"topics":["csv","finance"],"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/au5ton.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-06T18:03:07.000Z","updated_at":"2020-02-18T00:58:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"752211a9-9936-444a-8048-f2efcaec9ea4","html_url":"https://github.com/au5ton/expense-report","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/au5ton/expense-report","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/au5ton%2Fexpense-report","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/au5ton%2Fexpense-report/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/au5ton%2Fexpense-report/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/au5ton%2Fexpense-report/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/au5ton","download_url":"https://codeload.github.com/au5ton/expense-report/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/au5ton%2Fexpense-report/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272117483,"owners_count":24876409,"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","status":"online","status_checked_at":"2025-08-25T02:00:12.092Z","response_time":1107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["csv","finance"],"created_at":"2025-03-16T13:32:36.574Z","updated_at":"2025-10-08T12:01:38.877Z","avatar_url":"https://github.com/au5ton.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![CircleCI](https://circleci.com/gh/au5ton/expense-report.svg?style=svg)](https://circleci.com/gh/au5ton/expense-report)\n\n# expense-report\npersonal tool for parsing CSV files provided by Wells Fargo\n\n## Installation\n- clone repository\n- `pip3 install -r requirements.txt`\n- `python3 -m src` run the script (or `main.sh`)\n\n## Usage\n```\nusage: report.py [-h] [-c CONFIG_FILE] csvfile\n\npositional arguments:\n  csvfile         The path to the Checking.csv provided from wellsfargo.com\n\noptional arguments:\n  -h, --help      show this help message and exit\n  -c CONFIG_FILE  The Path to the config file. (Default: config.json)\n```\n\n## Configuration\nThis program will only run with the use of a `config.json` file. A default one is included with the repository and can be modified as necessary. Below is an example and doesn't reflect the live repository version.\n```javascript\n[ //array of every section\n\t{\n\t\t\"title\": \"Home\",\n\t\t\"exclusive\": false, //not yet implemented\n\t\t\"optional\": false, //if the sum of the section is zero, omit the entire section\n\t\t\"groups\": [ //every group within a section\n\t\t\t{\n\t\t\t\t\"name\": \"internet\",\n\t\t\t\t\"flags\": \"\",\n\t\t\t\t\"regex\": \"^.*(SUDDENLINK).*$\" //the sum of every purchase matching this regex\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"electricity\",\n\t\t\t\t\"flags\": \"\",\n\t\t\t\t\"regex\": \"^.*(ENTERGY).*$\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"utilities\",\n\t\t\t\t\"flags\": \"\",\n\t\t\t\t\"regex\": \"^.*(CITY OF NAVASOTA).*$\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"groceries\",\n\t\t\t\t\"flags\": \"\",\n\t\t\t\t\"regex\": \"^.*(ARLANS|H-E-B|WAL-MART).*$\" //purchase contains \"ARLANS\" or \"H-E-B\" or \"WAL-MART\"\n\t\t\t}\n\t\t],\n\t\t\"meta_prop\": [\"debit_total\", \"credit_total\", \"net_total\"] //automatically calculate the sums of the entire section\n\t},\n\t{\n\t\t\"title\": \"Entertainment\",\n\t\t\"exclusive\": false,\n\t\t\"optional\": false,\n\t\t\"groups\": [\n\t\t\t{\n\t\t\t\t\"name\": \"server hosting\",\n\t\t\t\t\"flags\": \"\",\n\t\t\t\t\"regex\": \"^.*(DIGITALOCEAN|WHATBOX).*$\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"music\",\n\t\t\t\t\"flags\": \"\",\n\t\t\t\t\"regex\": \"^.*(BANDCAMP).*$\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"patreon\",\n\t\t\t\t\"flags\": \"\",\n\t\t\t\t\"regex\": \"^.*(PATREON).*$\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"title\": \"Transportation\",\n\t\t\"exclusive\": false,\n\t\t\"optional\": false,\n\t\t\"groups\": [\n\t\t\t{\n\t\t\t\t\"name\": \"gasoline\",\n\t\t\t\t\"flags\": \"\",\n\t\t\t\t\"regex\": \"^.*(CHEVRON|EXXONMOBIL|GAS).*$\"\n\t\t\t}\n\t\t]\n\t}\n]\n```\n\n#### example.csv\nThis is the exact format that Wells Fargo provides. I am unsure what columns 3 and 4 are intended for, but this program makes no use of them.\n```csv\n\"03/11/2019\",\"-83.02\",\"*\",\"\",\"PURCHASE AUTHORIZED ON 03/08 TAKE 5 OIL CHANGE COLLEGE STATI TX S0123456789 CARD 1234\"\n\"03/08/2019\",\"-16.23\",\"*\",\"\",\"PURCHASE AUTHORIZED ON 03/08 AUTOZONE 3535 2706 TEXAS COLLEGE STATI TX P0123456789 CARD 1234\"\n\"03/08/2019\",\"-3.45\",\"*\",\"\",\"PURCHASE AUTHORIZED ON 03/07 MCDONALD'S F123456 NAVASOTA TX S0123456789 CARD 1234\"\n\"03/07/2019\",\"-16.76\",\"*\",\"\",\"PURCHASE AUTHORIZED ON 03/06 CHEVRON 0123456 NAVASOTA TX S0123456789 CARD 1234\"\n\"03/06/2019\",\"-9.80\",\"*\",\"\",\"PURCHASE AUTHORIZED ON 03/04 PAYPAL *UBER 402-935-7733 CA S0123456789 CARD 1234\"\n\"03/06/2019\",\"-1.00\",\"*\",\"\",\"PURCHASE AUTHORIZED ON 03/03 BANDCAMP FORHILL bandcamp.com CA S0123456789 CARD 1234\"\n\"03/05/2019\",\"-1.25\",\"*\",\"\",\"PURCHASE AUTHORIZED ON 03/02 MUNICIPAL ONLINE P 844-7244507 TX S0123456789 CARD 1234\"\n\"03/04/2019\",\"-35.54\",\"*\",\"\",\"PURCHASE AUTHORIZED ON 03/02 H-E-B #619 COLLEGE STATI TX P0123456789 CARD 1234\"\n\"03/04/2019\",\"-109.99\",\"*\",\"\",\"PURCHASE AUTHORIZED ON 03/02 CITY OF NAVASOTA - 936-825-6475 TX S0123456789 CARD 1234\"\n\"03/04/2019\",\"-9.15\",\"*\",\"\",\"PURCHASE AUTHORIZED ON 03/01 APL* ITUNES.COM/BI 866-712-7753 CA S0123456789 CARD 1234\"\n\"03/04/2019\",\"-5.92\",\"*\",\"\",\"RECURRING PAYMENT AUTHORIZED ON 03/01 DIGITALOCEAN.COM DIGITALOCEAN. NY S0123456789 CARD 1234\"\n\"03/01/2019\",\"-19.48\",\"*\",\"\",\"PURCHASE AUTHORIZED ON 02/28 CHEVRON 0123456 NAVASOTA TX S0123456789 CARD 1234\"\n\"03/01/2019\",\"320.00\",\"*\",\"\",\"TX A\u0026M ENG EX ST REG SALARY 12345 DOE JOHN\"\n```\n\n#### Output\n```\nHome\n====\ninternet:       0.0\nelectricity:    0.0\nutilities:      -109.99\ngroceries:      -35.54\n----\nTotal debits:   -145.53\nTotal credits:  0.0\nNet total:      -145.53\n\nEntertainment\n=============\nserver hosting:         -5.92\nmusic:  -1.0\npatreon:        0.0\n\nTransportation\n==============\ngasoline:       -36.24\n\nOverall totals\n==============\nTotal debits:   -311.59\nTotal credits:  320.0\nNet total:      8.41\n```\n\n## Downloading CSV files from Wells Fargo\n[Wells Fargo has a support page on this topic](https://www.wellsfargo.com/help/online-banking/comma-delimited/)\n\n## TODO\n- ungrouped feature\n- write more unit tests\n- comment refractored code\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fau5ton%2Fexpense-report","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fau5ton%2Fexpense-report","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fau5ton%2Fexpense-report/lists"}