tax organizer, calculator, and toolkit in CUE
taxes.cue
lets you collect all your tax data for a given year into a single human-editable version-controllable text file, written in cue.
the data is structured and validated using cuelang types, and can easily be converted into for export into other systems.
included in taxes.cue
are conversion "functions" to summarize your data into other formats:
- a text based report that can be used to fill out forms by hand
- a json structure used by
freefilebot
to enter your tax data into https://freefilefillableforms.com
$ brew install cue # or equivalent, see cuelang.org
$ git clone https://github.com/tmm1/taxes.cue
$ cd taxes.cue/returns
$ cp sample1.taxdata mine/2021.taxdata
$ make mine/2021
$ cat mine/2021.txt # manual fill instructions
$ cat mine/2021.freefile # freefilebot data
- input: sample.taxdata
- manual fill instructions: sample.txt
- freefilebot data: sample.freefile
freefile/extension
:freefilebot
chrome extension for automation on https://freefilefillableforms.comfreefile/data/json
: json schema defining all forms and fields supported byfreefilebot
freefile/data
: cue validation for the rawfreefilebot
json schemafreefile
: high-level cue schemas and validations for all freefile forms, includingfreefile.#Return
- https://cuelang.org/docs/tutorials/tour/intro/json/
- https://cuetorials.com/
- https://bitfieldconsulting.com/golang/cuelang-exciting
this project started as an experiment to learn cuelang, but has quickly grown to more than a simple prototype.
cue has proven to be a powerful tool for this use-case, and is surprisingly mature. as a result development is
progressing quickly and taxes.cue
already has several useful pieces.
however, do note that many basic tax calculations are not implemented yet. as such, this project is more akin to a "json spreadsheet", optimized for someone who knows their way around the tax filing ecosystem. if you need something like turbotax which will do your taxes today, check out https://ustaxes.org
- write chrome extension to extract form fields
- build cue schema to validate and document all variations in form fields
- convert schemas to cue definitions
- build cue definitions for taxpayer data and commonly received documents
- import tax tables
- prototype manual report generator
- build unit and integration testing harness
- prototype freefile export generator
- build schemas for common input forms
- w2
- w2g
- 1099-b
- 1099-int
- 1099-div
- 1099-misc
- 1099-oid
- 1099-r
- compute tax owed for manual report
- implement common 1040 forms/schedules in freefile export
- schedule 1
- schedule 2
- schedule a
- schedule b
- schedule d
- w2
- form 8949 (cap gains transactions)
- form 8889 (hsa)
- form 1116 (foreign tax credit)
- form 4952 (margin interest payments)
- add form filling to freefilebot extension js
- import html views for visualizing freefile data
- interop with ustaxes