[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lp-ca-on] Proposed Proof of Concept Tax Calculation
From: |
Greg Knittl |
Subject: |
[lp-ca-on] Proposed Proof of Concept Tax Calculation |
Date: |
Sun, 5 Jun 2016 10:12:03 -0400 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 |
People are proposing various approaches to coding a tax program which is
excellent. I think it might be useful to have
a small proof of concept that people can write in various languages and
various designs. Then we can have
a more concrete design discussion. Here's a very short tax calculation
that I believe illustrates quite a few Canadian Income Tax design issues.
There are certainly more tax calculations that present technical
challenges so we probably want to start making a list of more complex
calculations you have encountered. Or other ways to sharpen this up
I've chosen Schedule 3 Capital Gains because
- it has both direct input and input from slips (I hardcoded the direct
input captial dispositions into my tax program which is probably not the
correct solution...)
- the fields are not all numbered on the form
- the layout is irregular. the solution needs to illustrate how it will
handle form layouts
The calculation:
5. Bonds, debentures, promissory notes, and other similar properties
This is a USD currency capital gain:
Face Value: 10000
Maturity Date: n/a
Name of Issuer: USD
Year of Acquisition: 2012-2013
Proceeds: 14000
ACB: 12000
Gain: 2000
Since it's a currency capital gain Income Tax Act subsection 39 (1.1)
allows you to subtract $200
Face Value: n/a
Maturity Date: n/a
Name of Issuer: ITA subsection 39 (1.1)
Year of Acquisition: n/a
Proceeds: 0
ACB: 200
Gain: -200
of course there are multiple lines. The logic needs to handle pretty
much arbitrary numbers of entries.
This illustrates that some of the fields that might appear to be well
defined like Year of Acquisition might be more flexible than they appear.
M. T3 information slips – Capital gains (or losses)
T3 slips
Trust Name: Mutual Fund 1
Box 21: 50
Trust Name: Mutual Fund 2
Box 21: 150
Treat the 50% inclusion rate at line 199 as a tax constant that is
liable to change (It has in the past) to illustrate how you will deal
with all the constants littered throughout the tax forms.
The code should illustrate a generic linkage mechanism for slips that
will get the boxes from any slip into the correct lines on any form.
Again there are multiple inputs for the line and there should be some
mechanism to drill down to the individual inputs.
Show the result on T1 line 127 ($1000 I believe)
This code should illustrate a generic linkage between forms
Allow for translation to French.
Produce output that alllows the user to verify the calculation steps and
complete the forms by hand if required.
This is a very short calculation - I think I can do it in my head, but
try to imagine it as part of a complete solution.
The code should try to illustrate a scalable approach to encoding 1000s
of income tax calculations and then maintaining them.
I have the feeling this needs to be more structured than the mailing
list. the Libre Planet wiki? githup?
Greg
- [lp-ca-on] Proposed Proof of Concept Tax Calculation,
Greg Knittl <=
- Re: [lp-ca-on] Proposed Proof of Concept Tax Calculation, Stephen Paul Weber, 2016/06/05
- Re: [lp-ca-on] Proposed Proof of Concept Tax Calculation, Greg Knittl, 2016/06/05
- Re: [lp-ca-on] Proposed Proof of Concept Tax Calculation, Allan Zhang, 2016/06/05
- Re: [lp-ca-on] Proposed Proof of Concept Tax Calculation, Rudolf, 2016/06/05
- Re: [lp-ca-on] Proposed Proof of Concept Tax Calculation, Greg Knittl, 2016/06/07
- Re: [lp-ca-on] Proposed Proof of Concept Tax Calculation, Daniel Villarreal, 2016/06/08
- Re: [lp-ca-on] Proposed Proof of Concept Tax Calculation, Greg Knittl, 2016/06/12
- Re: [lp-ca-on] Proposed Proof of Concept Tax Calculation, Daniel Villarreal, 2016/06/18