libreplanet-ca-on
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]