[Advacs-discuss] International flavours.

Oliver Elphick olly@lfix.co.uk
Wed, 11 Aug 2004 13:15:23 +0100


On Wed, 2004-08-11 at 11:43, Helmut Wollmersdorfer wrote:
> David Palmer schrieb:
> 
> >>  I do feel it needs its own module; and doing it like that makes the
> >>  whole thing more flexible for use in countries which don't have
> >>  VAT.-:Unquote.
> 
> > Perhaps in this way the different international packages could be 
> > defined for downloading.
> > Other countries have their own particular quirks, e.g., G.S.T., goods 
> > and services tax. The VAT module may well only need renaming for that 
> > purpose.
> 
> I think, that for most cases a default logic can be used and only a 
> table of tax codes needs to be configured.
> 
> E.g.
> tax.code
> tax.percentage
> tax.description
> tax.expenses-account
> tax.earnings-account
> tax.valid-from-date
> tax.valid-to-date
> 
> Sample records:
> T10  10%   reduced VAT  2210  3210  1994-01-01  9999-12-31
> T20  10%   normal VAT   2220  3220  1994-01-01  9999-12-31
> 
> Accounts
> ID    Description
> 2210  VAT from incoming invoices 10%
> 3210  VAT from outgoing invoices 10%
> 8010  Earnings 10%                   default-tax.code=T10
> 7530  Expenses books 10%             default-tax.code=T10
> C1234 Customer example
> 
> Sample of an outgoing Invoice transaction
> Doc-ID/Date/Amount-brutto/debit/credit/Tax-ID
> AR4711 2004-08-11 110.00 C1234 8010 T10
> 
> This internally generates
> AR4711 2004-08-11 100.00 C1234 8010 T10
> AR4711 2004-08-11  10.00 C1234 3210 T10

I think your example demonstrates several differences between common
practice and my thinking, which it is worth explaining, because it will
help with understanding my design.  It may be that there are sufficient
differences in the practice of other countries for problems to arise:
let us see.

1.  VAT (and sales tax) attaches conceptually to the movement of goods
and services, not to invoices, although invoices are of course the means
by which the amount of VAT payable is notified to the customer.  If
goods are sold for cash or you pay cash or cheque over the counter,
there is no need for the transactions to be put through Sales or
Purchase Ledger (though you may *choose* to do so).  Therefore the
Cashbook and Journal need to be able to handle VAT/Sales tax just as
much as the Purchase and Sales Ledger modules.

2.  I would never expect to see two entries in the Sales Ledger for one
invoice (though perhaps that is not what your example really means).  In
your example I would see:

Sales ledger:
Ref    Date        Amount  Code     Other sales ledger fields...
AR4711 2004-08-11  110.00  C1234    ...such as open-item matching...

General ledger:
Ref    Date        Amount  Code   Tax-rate
AR4711 2004-08-11 -100.00  8010   T10

VAT Record:
Ref    Date        Amount  Code   Tax-rate      Net  Input/  Date
                   (=VAT)                            output  declared
AR4711 2004-08-11  -10.00  2210   T10       -100.00    O     NULL

Credits are represented by negative numbers.

Since all three tables inherit from ledger, I could expect to be able to
say:

  SELECT SUM(amount) FROM ledger;

and get back 0.00, thus demonstrating that double entry is correct.

On the other hand, I can get all the information I need for the VAT
return by selecting the VAT Record table alone:

  SELECT      IO, taxrate,
              SUM(CASE WHEN IO = 'O' 0-amount ELSE amount END) AS "VAT",
              SUM(net) AS "Net"
    FROM      VAT_record
    WHERE     date_declared IS NULL AND
              date < '2004-08-01'   -- end of return period
    GROUP BY  IO, taxrate
    ORDER BY  IO, taxrate;

Those results would then need to be processed in case of the need to
restrict the claim of input tax when there are exempt outputs.

Your example expects to use different account codes for different tax
rates.  I can't see the need for that; since I record the tax-rate code
in the VAT record, I can easily separate the amounts by a simple
SELECT...GROUP BY.  Similarly, I don't need separate codes for input and
output VAT, since all the necessary data is recorded in the VAT record. 
(But you can use separate codes if you *want to*.)

In a Sales tax model, I would not expect to record the tax on inputs
(purchases), since that would be part of the cost of the goods (I assume
that Sales tax paid is not recoverable).

The need to restrict input tax on account of exempt outputs (is that a
requirement in Austria?) illustrates the need for extra data in the VAT
module.  The Exempt tax rate needs a flag to say that outputs on this
rate will cause inputs to be restricted and there needs to be a VAT
return generation program that knows how to handle it.  The great
benefit of PostgreSQL's inherited tables is that I can put those extra
fields in the VAT account records (the VAT account table will inherit
from the generic account table) and be able to ignore them when I simply
want a list of all accounts.

> > I note in the project description that the aim is to meet international 
> > accounting standards, but does this provide the necessary compliance 
> > requirements for acceptance by the multitude of national tax departments 
> > for their respective endorsements?
> 
> The usual way is, to get a certicate of conformity by a - local - 
> chartered accountant. But this is not a duty.

Certainly not in Britain; you need to notify the VAT office that you are
using a computerised accounting system and the VAT people need to
satisfy themselves that the system will record all the information they
require.  The Inland Revenue (Income Tax and Corporation Tax) don't
(strictly) impose any specific requirements except that you have
receipts for all expenditure.  Any other requirements come from the
Companies Acts requirement that a registered company should keep proper
and up-to-date books.

> The main things are:
> Basics:
> - conformance to usual account rules ("good practice")
> - technical aspects of archiving and data security
> 
> Table of accounts:
> There exist sample tables here in AT and DE. They are not mandatory, but 
> save time (training of accountants and all involved people). At least 
> they support rules of taxation, business law and 
> reporting/data-exchange. Import of such nationalised example tables 
> should be supported.

Could you post an example?

> Special rules (examples):
> AT: export interface for tax-revision (mandatory)

What does that mean?

> AT: mandatory fields of an invoice (date, addresses, details, VAT-ID, 
> TAX-ID, Company-ID ...)
> AT: rules for electronic invoices

EDI?

> > Just my take, but I think that this would be the fastest way to gain 
> > market acceptance if these respective tax departments were to list the 
> > future Advacs package as approved goods, as this is generally the first 
> > place accountants look when determining their software requirements.
> > I have already emailed the Australian tax dept. re their compliance 
> > requirements, but perhaps a little further research might pay dividends 
> > with regard to acceptance within the U.S. and other markets?
> > Regards,
> 
> All this will need local volunteers or sponsors. At least, somebody 
> needs to understand the local language and have access to rules and 
> laws. For some (most?) countries this information is available in www, 
> but needs time to understand if somebody is not a local expert. I 
> experienced this yesterday, as I tried to read the GB business-law and 
> VAT-law;-)

I wouldn't attempt to build a module for another country without local
guidance and specifications.

> In the EU a lot of rules are very similar, but details can vary.

There's a saying: "The Devil is in the details".

-- 
Oliver Elphick                                          olly@lfix.co.uk
Isle of Wight                              http://www.lfix.co.uk/oliver
GPG: 1024D/A54310EA  92C8 39E7 280E 3631 3F0E  1EC0 5664 7A2F A543 10EA
                 ========================================
     "Be still before the LORD and wait patiently for him;
      do not fret when men succeed in their ways, when they
      carry out their wicked schemes." 
                            Psalms 37:7