Yet another tax season is upon us. This article describes the
methodology that I use to prepare my income tax returns.
The methodology uses a combination of my own software and open-source
software. I have used it for over a decade.
Downloading and Rasterizing
The first step is to download the tax forms from the government
websites. I use a shell script around wget to download the
necessary PDF files.
I then import the relevant pages into the GNU Image Manipulation Program
(Gimp). Rasterized at 600 dots per inch, each page contains 33 million
pixels (5100x6600, 8-bit grayscale). This is a lot of pixels even for a
The calculations are done by my own tax calculator program. Once
written, the program is easy to maintain since the tax algorithms change
very little from year to year.
I enter the raw data from the tax statements, press a button, and the
calculator computes the relevant forms, schedules, and worksheets.
Merging and Checking
I then import the results into the Gimp as text layers on top of the
original PDFs. Positioning must be done manually since the tax forms
are not designed to be filled out algorithmically.
Two checks are performed: an automated check of the completed forms
against the computed taxes, and a semi-automated check of the current
year's completed forms against the prior year's.
Printing and Archiving
The completed forms amount to two small booklets. I convert the
completed forms to Postscript using ImageMagick and my own software,
print them on a laser printer, and mail them to the government. The
government is undoubtedly impressed by the superb print quality of the
paper passing between our computers.
The last step is to archive all files electronically.
The tax preparation methodology is reliable, has few external
dependencies, and is highly immune to technological obsolescence.
This kind of document authoring requires serious computing power. The
annual tax season is a great reason to own state-of-the-art computing