Setting up progressive tax rates

Dima - hotmail dimamushta at hotmail.com
Wed Oct 8 11:37:33 EDT 2008


Hi,

the question here is not only with payroll which might be extremely 
complicated in terms of taxation , but also in principles of configuring the 
taxes.
Ideally - it should be possible to redefine all the items in tax tables 
according to the local regulations (well - with sql based backend it would 
be possible to do in a way of using stored procedures/functions, but in the 
current situations - in a way of external configuration files that depend 
let's say on locale and which describes the calculation flow - thus could be 
edited)
So, here is an example:
 I've been invoiced by Comp A for amount of 100, plus VAT 10. At the same 
time, since I release the payment I have to withhold 4,5% from the amount 
before VAT. Thus - total amount due will be 100+10-4,5=105,5, and 4,5 I have 
to pay to the tax office (and provide Comp A with the receipt on the 
payment).
So, if I use current solution - I will be left with unpaid amount to the 
invoice of 4,5 (that I in reality paid to the tax office on behalf of Comp 
A - and it will be shown in liabilities in the account of Comp A.....) as 
the system will treat that invoice not fully paid.

So, as I could see the solution it should look this:
table - tax_type (or tax_group) - which defines majority of tax - VAT, WHT, 
others
    (gr_id, gr_dsc)
table - tax - which defines particular rate and referencing to tax_type by 
gr_id
  (t_id, gr_id, t_dsc, t_rate, appl_order, t_rate_type), appl_order defines 
the order of application within the same group when more than one tax is 
applied, t_rate_type - defines whether it is percentage or formula
table - tax_ref - which defines the references between 
customers/vendors/goods to the applicable taxes
 (ref_id, ref_type, ref_dsc), where ref_id is referencing to 
customer/vendor/goods_id, ref_type - dictionary of (customer/vendor/goods)

(In all tables above *_dsc - meaning - description)

also to define references from customers/vendors/goods to tax tables. Thus 
when a particular customer/vendor has been chosen with the combination of 
particular goods - it is possible to mark up all the applicable taxes and 
the order how it will be applied.
As a result - the solution will be less dependent on particular country - 
thus more flexible.
The main idea here - do not to hide the calculation flow in binaries - let's 
to configure it in accordance to local regulations.

Regards,

Dmitry
--------------------------------------------------
From: "Derek Atkins" <warlord at MIT.EDU>
Sent: Tuesday, October 07, 2008 8:50 PM
To: "Dima - hotmail" <dimamushta at hotmail.com>
Cc: <gnucash-user at gnucash.org>
Subject: Re: Setting up progressive tax rates

> Hi,
>
> "Dima - hotmail" <dimamushta at hotmail.com> writes:
>
>> thanks Derek,
>> it is exactly requirements from payroll.....
>> I'm just on the way of choosing the right solution that would feet my
>> requirements...
>> So it's seems that I have to manage several programs that could help
>> me to cover the basics of SMB needs.....
>> But, even I created those tables - how should I deal if the amount
>> falls in between?
>
> What do you mean "falls between?"  The tables have to connect
> somehow, there is no "in between".  If the number is 0-200 you
> use the 0-200 table.  If the number is 201-500 you use the
> 201-500 table.
>
> Or are you asking "what do I do if the number is "200.25"?  Well,
> what does the law state?  Obviously the table itself is designed
> for whole dollar amounts so you need to ask how to round.  I suspect
> it would be "200.01 - 500"
>
>> The idea was to automatically compute the taxes to be withheld
>> ... (currently it is being done with excel sheet - that requires a lot
>> of efforts on verifying the correctness.....)
>
> Right.  well..
>
> I certainly would love to see the hooks for a payroll system in
> gnucash.  My theory is that it could use scheme for the actual table
> definition and computation.  Of course you also have to deal with
> other kinds of withholdings and deductions, pre-tax, and post-tax..
> And of course ordered taxes, too, because some taxes get taken on the
> gross amount, not the net amount.
>
> It's all very complicated.
>
> -derek
>
>> --------------------------------------------------
>> From: "Derek Atkins" <warlord at MIT.EDU>
>> Sent: Monday, October 06, 2008 11:23 PM
>> To: "Dima - hotmail" <dimamushta at hotmail.com>
>> Cc: <gnucash-user at gnucash.org>
>> Subject: Re: Setting up progressive tax rates
>>
>>> Hi,
>>>
>>> Quoting Dima - hotmail <dimamushta at hotmail.com>:
>>>
>>>> Hi All,
>>>>
>>>> I have a situation when I needed to calculate the tax which has
>>>> base brackets, the example is as follows:
>>>> from 0 to 200 - tax 5%
>>>> from 201 to 500 - tax 10%
>>>> from 501 to 2000 - tax 15%
>>>> from 2001 to 3000 tax 20%
>>>> from 3001 to 4000 tax 25%
>>>> from 4001 to 5000 tax 30%
>>>> above 5001 - tax 35%
>>>>
>>>> So - the question is - is it possible somehow to setup the system
>>>> to calculate said scheme?
>>>
>>> Not directly, no.  You could do it with a set of seven different
>>> tax tables (one for each bracket).
>>>
>>> Having this kind of dynamic tax table is much of the work for a payroll
>>> system (which GnuCash does not have).  Adding it would be a welcome
>>> addition but nobody is working on it now.
>>>
>>>> Thanks in advance,
>>>>
>>>> Dmitry
>>>
>>>> Please remember to CC this list on all your replies.
>>>> You can do this by using Reply-To-List or Reply-All.
>>>
>>> -derek
>>> -- 
>>>       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
>>>       Member, MIT Student Information Processing Board  (SIPB)
>>>       URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
>>>       warlord at MIT.EDU                        PGP key available
>>>
>>>
>>
>>
>
> -- 
>       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
>       Member, MIT Student Information Processing Board  (SIPB)
>       URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
>       warlord at MIT.EDU                        PGP key available
> 


More information about the gnucash-user mailing list