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
Machine learning beginner to Kaggle competitor in 30 days. Non-coders welcome. The program starts Monday, August 2, and lasts four weeks. It's designed for people who want to learn machine learning.

30-Days-of-ML-Kaggle πŸ”₯ About the Hands On Program πŸ’» Machine learning beginner β†’ Kaggle competitor in 30 days. Non-coders welcome The program starts

Roja Achary 145 Jan 01, 2023
finds grocery stores and stuff next to route (gpx)

Route-Report Route report is a command-line utility that can be used to locate points-of-interest near your planned route (gpx). The results are based

Clemens Mosig 5 Oct 10, 2022
3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit (VTK)

PyVista Deployment Build Status Metrics Citation License Community 3D plotting and mesh analysis through a streamlined interface for the Visualization

PyVista 1.6k Jan 08, 2023
Python script for writing text on github contribution chart.

Github Contribution Drawer Python script for writing text on github contribution chart. Requirements Python 3.X Getting Started Create repository Put

Steven 0 May 27, 2022
Data Analysis: Data Visualization of Airlines

Data Analysis: Data Visualization of Airlines Anderson Cruz | London-UK | Linkedin | Nowa Capital Project: Traffic Airlines Airline Reporting Carrier

Anderson Cruz 1 Feb 10, 2022
Small project to recursively calculate and plot each successive order of the Hilbert Curve

hilbert-curve Small project to recursively calculate and plot each successive order of the Hilbert Curve. After watching 3Blue1Brown's video on Hilber

Stefan Mejlgaard 2 Nov 15, 2021
Seismic Waveform Inversion Toolbox-1.0

Seismic Waveform Inversion Toolbox (SWIT-1.0)

Haipeng Li 98 Dec 29, 2022
Insert SVGs into matplotlib

Insert SVGs into matplotlib

Andrew White 35 Dec 29, 2022
In-memory Graph Database and Knowledge Graph with Natural Language Interface, compatible with Pandas

CogniPy for Pandas - In-memory Graph Database and Knowledge Graph with Natural Language Interface Whats in the box Reasoning, exploration of RDF/OWL,

Cognitum Octopus 34 Dec 13, 2022
Realtime Viewer Mandelbrot set with Python and Taichi (cpu, opengl, cuda, vulkan, metal)

Mandelbrot-set-Realtime-Viewer- Realtime Viewer Mandelbrot set with Python and Taichi (cpu, opengl, cuda, vulkan, metal) Control: "WASD" - movement, "

22 Oct 31, 2022
Chem: collection of mostly python code for molecular visualization, QM/MM, FEP, etc

chem: collection of mostly python code for molecular visualization, QM/MM, FEP,

5 Sep 02, 2022
Python toolkit for defining+simulating+visualizing+analyzing attractors, dynamical systems, iterated function systems, roulette curves, and more

Attractors A small module that provides functions and classes for very efficient simulation and rendering of iterated function systems; dynamical syst

1 Aug 04, 2021
flask extension for integration with the awesome pydantic package

Flask-Pydantic Flask extension for integration of the awesome pydantic package with Flask. Installation python3 -m pip install Flask-Pydantic Basics v

249 Jan 06, 2023
An open-source tool for visual and modular block programing in python

PyFlow PyFlow is an open-source tool for modular visual programing in python ! Although for now the tool is in Beta and features are coming in bit by

1.1k Jan 06, 2023
Bokeh Plotting Backend for Pandas and GeoPandas

Pandas-Bokeh provides a Bokeh plotting backend for Pandas, GeoPandas and Pyspark DataFrames, similar to the already existing Visualization feature of

Patrik Hlobil 822 Jan 07, 2023
University of Missouri - Kansas City: CS451R: Capstone

CS451RC University of Missouri - Kansas City: CS451R: Capstone Installation cd git clone https://github.com/ala2q6/CS451RC.git cd CS451RC pip3 instal

Alex Arbuckle 1 Nov 17, 2021
Visualization Data Drug in thailand during 2014 to 2020

Visualization Data Drug in thailand during 2014 to 2020 Data sorce from ΰΈ‚ΰΉ‰ΰΈ­ΰΈ‘ΰΈΉΰΈ₯เปิดภาครัฐ ΰΈͺำนักงาน ΰΈ›.ΰΈ›.ΰΈͺ Inttroducing program Using tkinter module for

Narongkorn 1 Jan 05, 2022
Schema validation for Xarray objects

xarray-schema Schema validation for Xarray installation This package is in the early stages of development. Install it from source: pip install git+gi

carbonplan 22 Oct 31, 2022
A grammar of graphics for Python

plotnine Latest Release License DOI Build Status Coverage Documentation plotnine is an implementation of a grammar of graphics in Python, it is based

Hassan Kibirige 3.3k Jan 01, 2023
🐍PyNode Next allows you to easily create beautiful graph visualisations and animations

PyNode Next A complete rewrite of PyNode for the modern era. Up to five times faster than the original PyNode. PyNode Next allows you to easily create

ehne 3 Feb 12, 2022