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
A tool for creating Toontown-style nametags in Panda3D

Toontown-Nametag Toontown-Nametag is a tool for creating Toontown Online/Toontown Rewritten-style nametags in Panda3D. It contains a function, createN

BoggoTV 2 Dec 23, 2021
Yata is a fast, simple and easy Data Visulaization tool, running on python dash

Yata is a fast, simple and easy Data Visulaization tool, running on python dash. The main goal of Yata is to provide a easy way for persons with little programming knowledge to visualize their data e

Cybercreek 3 Jun 28, 2021
Simple Inkscape Scripting

Simple Inkscape Scripting Description In the Inkscape vector-drawing program, how would you go about drawing 100 diamonds, each with a random color an

Scott Pakin 140 Dec 27, 2022
Sentiment Analysis application created with Python and Dash, hosted at socialsentiment.net

Social Sentiment Dash Application Live-streaming sentiment analysis application created with Python and Dash, hosted at SocialSentiment.net. Dash Tuto

Harrison 456 Dec 25, 2022
Python scripts for plotting audiograms and related data from Interacoustics Equinox audiometer and Otoaccess software.

audiometry Python scripts for plotting audiograms and related data from Interacoustics Equinox 2.0 audiometer and Otoaccess software. Maybe similar sc

Hamilton Lab at UT Austin 2 Jun 15, 2022
Create artistic visualisations with your exercise data (Python version)

strava_py Create artistic visualisations with your exercise data (Python version). This is a port of the R strava package to Python. Examples Facets A

Marcus Volz 53 Dec 28, 2022
WhatsApp Chat Analyzer is a WebApp and it can be used by anyone to analyze their chat. πŸ˜„

WhatsApp-Chat-Analyzer You can view the working project here. WhatsApp chat Analyzer is a WebApp where anyone either tech or non-tech person can analy

Prem Chandra Singh 26 Nov 02, 2022
Peloton Stats to Google Sheets with Data Visualization through Seaborn and Plotly

Peloton Stats to Google Sheets with Data Visualization through Seaborn and Plotly Problem: 2 peloton users were looking for a way to track their metri

9 Jul 22, 2022
Bar Chart of the number of Senators from each party who are up for election in the next three General Elections

Congress-Analysis Bar Chart of the number of Senators from each party who are up for election in the next three General Elections This bar chart shows

11 Oct 26, 2021
Some useful extensions for Matplotlib.

mplx Some useful extensions for Matplotlib. Contour plots for functions with discontinuities plt.contour mplx.contour(max_jump=1.0) Matplotlib has pro

Nico SchlΓΆmer 519 Dec 30, 2022
Automate the case review on legal case documents and find the most critical cases using network analysis

Automation on Legal Court Cases Review This project is to automate the case review on legal case documents and find the most critical cases using netw

Yi Yin 7 Dec 28, 2022
Massively parallel self-organizing maps: accelerate training on multicore CPUs, GPUs, and clusters

Somoclu Somoclu is a massively parallel implementation of self-organizing maps. It exploits multicore CPUs, it is able to rely on MPI for distributing

Peter Wittek 239 Nov 10, 2022
Flipper Zero documentation repo

Flipper Zero Docs Participation To fix a bug or add something new to this repository, you need to open a pull-request. Also, on every page of the site

Flipper Zero (All Repositories will be public soon) 114 Dec 30, 2022
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
Data Visualization Guide for Presentations, Reports, and Dashboards

This is a highly practical and example-based guide on visually representing data in reports and dashboards.

Anton Zhiyanov 395 Dec 29, 2022
Data Visualizer Web-Application

Viz-It Data Visualizer Web-Application If I ask you where most of the data wrangler looses their time ? It is Data Overview and EDA. Presenting "Viz-I

Sagnik Roy 17 Nov 20, 2022
A collection of 100 Deep Learning images and visualizations

A collection of Deep Learning images and visualizations. The project has been developed by the AI Summer team and currently contains almost 100 images.

AI Summer 65 Sep 12, 2022
Implementation of SOMs (Self-Organizing Maps) with neighborhood-based map topologies.

py-self-organizing-maps Simple implementation of self-organizing maps (SOMs) A SOM is an unsupervised method for learning a mapping from a discrete ne

Jonas Grebe 6 Nov 22, 2022
πŸ—Ύ Streamlit Component for rendering kepler.gl maps

streamlit-keplergl πŸ—Ύ Streamlit Component for rendering kepler.gl maps in a streamlit app. 🎈 Live Demo 🎈 Installation pip install streamlit-keplergl

Christoph Rieke 39 Dec 14, 2022
A simple interpreted language for creating basic mathematical graphs.

graphr Introduction graphr is a small language written to create basic mathematical graphs. It is an interpreted language written in python and essent

2 Dec 26, 2021