Parse Robinhood 1099 Tax Document from PDF into CSV

Overview

Robinhood 1099 Parser

This project converts Robinhood Securities 1099 tax document from PDF to CSV file. This tool will be helpful for those who need every transaction in a spreadsheet format for tax reporting purposes.

Original Work

Copyright (c) 2021 Keun Park ([email protected])

Donate

🚀 Running Locally

Make sure you have Python 3 on your computer. If not, download the latest version from here.

Environment Setup

git clone https://github.com/kevinpark1217/Robinhood-1099-Parser.git
cd Robinhood-1099-Parser
python -m pip install -r requirements.txt

Start Parsing!

➜ python main.py 
usage: main.py [-h] --pdf FILE [--csv FILE] [--silent] [--check]

Example and Checking

Enable --check flag to print out total values for some columns. Make sure these values match with the PDF!

Example Screenshot

🐞 Issues and Bugs

If you have any issues with the tool, please open a GitHub Issue with as much as detail as you can provide.

Comments
  • IndexError: list index out of range

    IndexError: list index out of range

    Hey, I'm checking out your script and after getting git, python and visual studio build tools installed I finally got it to work. Now when I run the script, it errors out with index out of range. This is using the February 2021 RH pdf.

    C:\Users\hypno\Documents\Robinhood-1099-Parser>python main.py --pdf 1099.pdf --check Pages: 100%|█████████████████████████████████████████████████████████████████████████████| 9/9 [00:04<00:00, 2.02it/s] Traceback (most recent call last): File "C:\Users\hypno\Documents\Robinhood-1099-Parser\main.py", line 32, in contents = parser.process(not args.silent) File "C:\Users\hypno\Documents\Robinhood-1099-Parser\rh_1099\pdf_parser\parser_2020.py", line 49, in process pdf_contents.add_sales(Sales2020.parse(last_raw_entries)) File "C:\Users\hypno\Documents\Robinhood-1099-Parser\rh_1099\sales_transactions\sales_2020.py", line 38, in parse desc = raw_data[0].strip() IndexError: list index out of range

    bug invalid 
    opened by hypnotizd 10
  • 1200+ transactions missing from csv output

    1200+ transactions missing from csv output

    In total, I have 3235 transactions for a specific stock (listed on my 1099 tax form), but around 1200 is missing on the csv form (this affects my total proceeds calculation by a large amount). Everything else under 1000 transactions works fine though.

    bug 
    opened by twangodev 3
  • Totals are calculating incorrectly.

    Totals are calculating incorrectly.

    Everything ran fine, but the totals are not correct. proceeds, cost, wash and gain all wrong, gain is only off by $0.43, wash is about half the value it should be, and proceeds and cost is off quite a bit. Was really hoping this would work!! Taxes are almost due!

    bug 
    opened by maximumhax 3
  • Help running script

    Help running script

    Hi, I am completely new to python script and have been trying to figure out how to get this to run. I am currently running python on mac. I was able to run python3 -m pip install wheel and -m pip install --upgrade rh_1099 but from here I am entirely confused where to go to execute and import my pdf file. Any help would be greatly appreciated! Thank you! # #

    opened by D-C-1977 2
  • Is separation of short term and long term transactions needed?

    Is separation of short term and long term transactions needed?

    Currently the parser combines short term and long term transactions "for covered tax lots" into a single csv file.

    Should I add the feature of separating them into 2 separate csv files? How useful would this be?

    enhancement question 
    opened by kevinpark1217 2
  • Packaging & Running on Windows

    Packaging & Running on Windows

    1. Combines the tool in to a single Python package
    2. Update README with instructions on running the tool on Windows

    TODO Automatically upload to PyPI Once uploaded to PyPI, user should only need to run pip install rh_1099

    enhancement 
    opened by kevinpark1217 0
  • Command not found after install

    Command not found after install

    I successfully installed this (there were no errors) This is the output if I run the commands again.

    [email protected] site-packages % python3 -m pip install wheel                                      
    Defaulting to user installation because normal site-packages is not writeable
    Requirement already satisfied: wheel in /Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/site-packages (0.36.2)
    [email protected] site-packages % python3 -m pip install --upgrade rh_1099                          
    Defaulting to user installation because normal site-packages is not writeable
    Requirement already satisfied: rh_1099 in /Users/andrewporzio/Library/Python/3.8/lib/python/site-packages (1.0.1)
    Requirement already satisfied: tqdm>=4.59.0 in /Users/andrewporzio/Library/Python/3.8/lib/python/site-packages (from rh_1099) (4.64.0)
    Requirement already satisfied: pdfreader>=0.1.9 in /Users/andrewporzio/Library/Python/3.8/lib/python/site-packages (from rh_1099) (0.1.10)
    Requirement already satisfied: bitarray>=1.1.0 in /Users/andrewporzio/Library/Python/3.8/lib/python/site-packages (from pdfreader>=0.1.9->rh_1099) (2.4.1)
    Requirement already satisfied: pycryptodome>=3.9.9 in /Users/andrewporzio/Library/Python/3.8/lib/python/site-packages (from pdfreader>=0.1.9->rh_1099) (3.14.1)
    Requirement already satisfied: python-dateutil>=2.8.1 in /Users/andrewporzio/Library/Python/3.8/lib/python/site-packages (from pdfreader>=0.1.9->rh_1099) (2.8.2)
    Requirement already satisfied: pillow>=7.1.0 in /Users/andrewporzio/Library/Python/3.8/lib/python/site-packages (from pdfreader>=0.1.9->rh_1099) (9.1.0)
    Requirement already satisfied: six>=1.5 in /Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/site-packages (from python-dateutil>=2.8.1->pdfreader>=0.1.9->rh_1099) (1.15.0)
    

    Now when I try to run the command I get the error that it can't be found

    [email protected] site-packages % rh_1099 --pdf /Users/andrewporzio/Downloads/9d176fbf-9351-45d2-887c-940ed3cb5af4.pdf --check zsh: command not found: rh_1099

    opened by aporzio1 1
  • PDFContents - ImportError: attempted relative import with no known parent package

    PDFContents - ImportError: attempted relative import with no known parent package

    Code does not function

    ~/Downloads/Robinhood-1099-Parser-1.0.1/Robinhood-1099-Parser-1.0.1/rh_1099 $ python main.py --pdf tax.pdf --check Traceback (most recent call last): File "C:\Users\Dylan\Downloads\Robinhood-1099-Parser-1.0.1\Robinhood-1099-Parser-1.0.1\rh_1099\main.py", line 5, in from .pdf_contents import PDFContents ImportError: attempted relative import with no known parent package

    opened by bluenostromo 1
Owner
Keun Tae (Kevin) Park
I am a Computer Science student at Georgia Institute of Technology with the focus of Intelligence and Systems & Architecture.
Keun Tae (Kevin) Park
Lumen provides a framework for visual analytics, which allows users to build data-driven dashboards from a simple yaml specification

Lumen project provides a framework for visual analytics, which allows users to build data-driven dashboards from a simple yaml specification

HoloViz 120 Jan 04, 2023
Uniform Manifold Approximation and Projection

UMAP Uniform Manifold Approximation and Projection (UMAP) is a dimension reduction technique that can be used for visualisation similarly to t-SNE, bu

Leland McInnes 6k Jan 08, 2023
GitHub English Top Charts

Help you discover excellent English projects and get rid of the interference of other spoken language.

kon9chunkit 529 Jan 02, 2023
:bowtie: Create a dashboard with python!

Installation | Documentation | Gitter Chat | Google Group Bowtie Introduction Bowtie is a library for writing dashboards in Python. No need to know we

Jacques Kvam 753 Dec 22, 2022
Matplotlib JOTA style for making figures

Matplotlib JOTA style for making figures This repo has Matplotlib JOTA style to format plots and figures for publications and presentation.

JOTA JORNALISMO 2 May 05, 2022
Rubrix is a free and open-source tool for exploring and iterating on data for artificial intelligence projects.

Open-source tool for exploring, labeling, and monitoring data for AI projects

Recognai 1.5k Jan 07, 2023
Easily convert matplotlib plots from Python into interactive Leaflet web maps.

mplleaflet mplleaflet is a Python library that converts a matplotlib plot into a webpage containing a pannable, zoomable Leaflet map. It can also embe

Jacob Wasserman 502 Dec 28, 2022
Painlessly create beautiful matplotlib plots.

Announcement Thank you to everyone who has used prettyplotlib and made it what it is today! Unfortunately, I no longer have the bandwidth to maintain

Olga Botvinnik 1.6k Jan 06, 2023
Parse Robinhood 1099 Tax Document from PDF into CSV

Robinhood 1099 Parser This project converts Robinhood Securities 1099 tax document from PDF to CSV file. This tool will be helpful for those who need

Keun Tae (Kevin) Park 52 Jun 10, 2022
Automatically Visualize any dataset, any size with a single line of code. Created by Ram Seshadri. Collaborators Welcome. Permission Granted upon Request.

AutoViz Automatically Visualize any dataset, any size with a single line of code. AutoViz performs automatic visualization of any dataset with one lin

AutoViz and Auto_ViML 1k Jan 02, 2023
paintable GitHub contribute table

githeart paintable github contribute table how to use: Functions key color select 1,2,3,4,5 clear c drawing mode mode on turn off e print paint matrix

Bahadır Araz 27 Nov 24, 2022
Time series visualizer is a flexible extension that provides filling world map by country from real data.

Time-series-visualizer Time series visualizer is a flexible extension that provides filling world map by country from csv or json file. You can know d

Long Ng 3 Jul 09, 2021
PyPassword is a simple follow up to PyPassphrase

PyPassword PyPassword is a simple follow up to PyPassphrase. After finishing that project it occured to me that while some may wish to use that option

Scotty 2 Jan 22, 2022
UNMAINTAINED! Renders beautiful SVG maps in Python.

Kartograph is not maintained anymore As you probably already guessed from the commit history in this repo, Kartograph.py is not maintained, which mean

1k Dec 09, 2022
This component provides a wrapper to display SHAP plots in Streamlit.

streamlit-shap This component provides a wrapper to display SHAP plots in Streamlit.

Snehan Kekre 30 Dec 10, 2022
Editor and Presenter for Manim Generated Content.

Editor and Presenter for Manim Generated Content. Take a look at the Working Example. More information can be found on the documentation. These Browse

Manim Community 149 Dec 29, 2022
This is a learning tool and exploration app made using the Dash interactive Python framework developed by Plotly

Support Vector Machine (SVM) Explorer This app has been moved here. This repo is likely outdated and will not be updated. This is a learning tool and

Plotly 150 Nov 03, 2022
A toolkit to generate MR sequence diagrams

mrsd: a toolkit to generate MR sequence diagrams mrsd is a Python toolkit to generate MR sequence diagrams, as shown below for the basic FLASH sequenc

Julien Lamy 3 Dec 25, 2021
Tools for exploratory data analysis in Python

Dora Exploratory data analysis toolkit for Python. Contents Summary Setup Usage Reading Data & Configuration Cleaning Feature Selection & Extraction V

Nathan Epstein 599 Dec 25, 2022
This project is created to visualize the system statistics such as memory usage, CPU usage, memory accessible by process and much more using Kibana Dashboard with Elasticsearch.

System Stats Visualizer This project is created to visualize the system statistics such as memory usage, CPU usage, memory accessible by process and m

Vishal Teotia 5 Feb 06, 2022