Gnucash Business: Proposal: handling multiple tax accounts

Derek Atkins warlord@MIT.EDU
14 Jun 2002 00:19:14 -0400


Ok, the the answer to my question is "you come up with your
price by determing the price the customer will pay and working
backwards".  The next question is: within the gnucash business
framework, where should this "tax included" flag be set?

-derek

Kevin Benton <KevinB@webex.com> writes:

> No, I'm not.  As a merchant, I use Price = Total / ( 1 + STAP ).  Then, from
> there, you can re-compute each tax.  The customer already paid the total,
> which is why you need to compute the price for your gross sales forms.
> Think about it this way - if I as a merchant tell my customers that tax is
> included, and I fill out all my tax forms, do I want to pay tax on the price
> or the total (price + included tax)?  I think I'll pay tax on the price of
> the goods to the customer.  You can pay tax on both if you'd really like.
> Your government will take your money either way.  :)  When it comes time to
> audit records, it's common practice to put down the cost of goods to the
> customer (without tax), plus additional taxes added on.  When you advertise
> a price that includes tax, you've decided what the customer cost (pre-tax)
> is even if you haven't calculated it yet.
> 
> Let's use a simple example.
> 
> Let's say that I advertise my spiffy widget for $1100 each (tax included).
> Let's also say that my aggregate tax rate (city+county+state+others) is 10%.
> What we need to do is figure out what the price of the item would have been
> if tax were not included.  That's going to be less than $1100, right?  Ok -
> knowing that, let's figure out what the cost would be if we had not included
> tax.  Again, we know the total price ($1100), and the sales tax aggregate
> percentage (10%).  To compute the amount of tax that was paid, we must first
> compute the price of the widget without tax.  Price = Total / ( 1 + STAP ).
> So, if Total is 1100 and 1 + STAP = 1.1, then we have Price = 1100 / 1.1.
> Price = 1000.  So, if the price is $1000 and the total paid is $1100, then
> the aggregate tax amount is $100.  From there, you can slice up the
> percentages of the $100 for each of the taxes you paid.
> 
> Let's work it the other way just as an exercise.  Let's say that you chose
> to advertise your product for $1100 each (tax included) but you forgot that
> you included the tax already.  Remember that our original formula is Total =
> Price * ( 1 + STAP ).  Note that this is the same as Total = Price + ( Price
> * STAP ).  There you'd have Total = 1100 * ( 1 + 0.10 ) = 1100 * 1.1 = 1210.
> Notice here that the difference between the price and the total is now $110.
> That's an additional 10% higher.  So, in other words, you're actually going
> to pay tax on your tax!  YUCK!
> 
> Have I confused you enough yet?
> 
> When computing sales tax for sales when tax is included in the price of the
> sale, for tax reporting purposes use this formula:
> 
> Tax Paid By Customer = Total - ( Total / ( 1 + STAP ) )
> 
> How did I get it?
> 
> Tax Paid By Customer = Total - Price
> 
> What's Price?  Just like we figured out before...
> 
> Price = Total / ( 1 + STAP )
> 
> RECAP...
> ****************************************************************************
> ******************************************
> Total Paid By Customer = Sale Price Tax Not Included * ( 1 + Sales Tax
> Aggregate Percentage ) )
> Price Paid By Customer = Sale Price Tax Included / ( 1 + Sales Tax Aggregate
> Percentage )
> Tax Paid By Customer = Sale Price Tax Included - ( Sale Price Tax Included /
> ( 1 + Sales Tax Aggregate Percentage ) )
> ****************************************************************************
> ******************************************
> 
> Kevin Benton
> 
> WebEx Communications, Inc. accepts no liability in relation to any personal
> emails, or any content of any email that does not relate directly to the
> business of WebEx Communications, Inc.
> 
> 
> -----Original Message-----
> From: Derek Atkins [mailto:warlord@MIT.EDU]
> Sent: Thursday, June 13, 2002 8:56 PM
> To: Kevin Benton
> Cc: Conrad Canterford; gnucash-devel@gnucash.org
> Subject: Re: Gnucash Business: Proposal: handling multiple tax accounts
> 
> 
> You're still not answering the question I'm asking...  You're looking
> at it from the customer point of view, not the merchant.  I'm asking
> from a merchant point of view.
> 
> -derek
> 
> Kevin Benton <KevinB@webex.com> writes:
> 
> > If my read of it is correct, the customer already paid sales tax.
> > Therefore, you would use the formula...
> > 
> > Price = Total / ( 1 + STAP )
> > 
> > as below.  You'd work backwards.  If you don't, you wind up paying more
> tax
> > as a merchant while your customer gets a free discount.  :/
> > 
> > Kevin Benton
> > 
> > WebEx Communications, Inc. accepts no liability in relation to any
> personal
> > emails, or any content of any email that does not relate directly to the
> > business of WebEx Communications, Inc.
> > 
> > 
> > -----Original Message-----
> > From: Derek Atkins [mailto:warlord@MIT.EDU]
> > Sent: Thursday, June 13, 2002 7:02 PM
> > To: Kevin Benton
> > Cc: Conrad Canterford; gnucash-devel@gnucash.org
> > Subject: Re: Gnucash Business: Proposal: handling multiple tax accounts
> > 
> > 
> > Thanks, but this wasn't quite what I was asking.  I was asking a
> > procedural question, not a mathematical question.  I was asking how
> > the process works for determining prices; do you start with the final
> > price and work backwards, or do you work forwards?  Following that,
> > does it imply that the "TaxIncluded" flag means work backwards, too?
> > That would mean that you enter the final price and the tax is computed
> > backwards from that?  It also doesn't answer the "where do you set the
> > TaxIncluded flag" question....
> > 
> > But thanks for making the math simple for others on the list ;)
> > 
> > -derek
> > 
> > Kevin Benton <KevinB@webex.com> writes:
> > 
> > > Anyone who operates a vending machine business has this problem.  A
> little
> > > algebra helps on this one.
> > > 
> > > Total is the total advertised price (including tax)
> > > Price is the actual price without sales tax.
> > > For this equation, STAP is the Sales Tax Aggregate Percentage including
> > all
> > > taxes.
> > > 
> > > Total = Price * (1 + STAP)
> > > Since the total and tax rates are known, we need to get price by itself.
> > > First, let's get Price on the left like we're used to...
> > > 
> > > Price * (1 + STAP) = Total
> > > Then, what we do to the left side, we must do to the right.
> > > 
> > > Price * (1 + STAP) / (1 + STAP) = Total / (1 + STAP)
> > > 
> > > Price = Total / (1 + STAP)
> > > 
> > > Try it for yourself - plug in the numbers off a receipt you've been
> given
> > > and see if it works both ways.
> > > 
> > > $1.00 item taxed at 5% requires a payment of $1.05.
> > > Price = $1.05 / (1 + 0.05) = $1.00
> > > 
> > > Imagine that... :)  Now you know how to compute sales tax backwards and
> > > forwards. :)
> > > 
> > > Kevin Benton
> > > 
> > > WebEx Communications, Inc. accepts no liability in relation to any
> > personal
> > > emails, or any content of any email that does not relate directly to the
> > > business of WebEx Communications, Inc.
> > > 
> > > 
> > > -----Original Message-----
> > > From: Derek Atkins [mailto:warlord@MIT.EDU]
> > > Sent: Thursday, June 13, 2002 5:59 PM
> > > To: Conrad Canterford
> > > Cc: gnucash-devel@gnucash.org
> > > Subject: Re: Gnucash Business: Proposal: handling multiple tax accounts
> > > 
> > > 
> > > Conrad Canterford <conrad@mail.watersprite.com.au> writes:
> > > 
> > > > To do it properly, its a little more complicated than that. In
> > > > Australia, an extra option "Tax included" would also be appreciated,
> as
> > > > a large number of small businesses (and especially any retail
> business)
> > > > will advertise and invoice the *tax inclusive* price. Asking whoever
> is
> > > > doing the accounts to deduct the tax from every invoice as its entered
> > > > is not going to make you any friends...  :-)
> > > 
> > > Where should this "tax included" option be stored?  Since prices
> > > are advertized with-tax, how is the tax calculation made?
> > > 
> > > > I think a global table would be preferable. If someone is running
> > > > multiple entities, this might save them re-entering a lot of data. If
> > > > they are not, well it makes no difference to them.
> > > 
> > > What do you mean, "global table"?
> > > 
> > > > >   b) How do you reference tax tables for "posted" entries?
> > > > >      - Tax Tables are immutable.
> > > > >      - Tax Tables are mutable until they are "used" (at which point
> > > > >        they become immutable).
> > > > 
> > > > Personally, I'd go for this one.
> > > > 
> > > > >        I think this might be too confusing for a user.
> > > > 
> > > > Why? A simple dialog pops up saying "I'm sorry, but this entry is in
> use
> > > > by an invoice and cannot be changed.".
> > > > 
> > > > >      - Tax Tables are mutable, however when you post an invoice the
> > > > >        Tax Table code creates an internal, immutable copy that is
> > > > >        linked to the mutable tax table in question.
> > > > 
> > > > This is really just an enhanced version of (b) as far as I'm
> concerned.
> > > > Basically (if you think of it the other way around), when the user
> goes
> > > > to change a tax table entry that's been used, the system automatically
> > > > creates a new version of that entry and isolates the old one. This is
> > > > just as prone to confuse a user as (b). However, I think any of the
> > > > other options are also likely to confuse users, just in different
> ways.
> > > 
> > > The reason I prefer this last appoach is that:
> > > 
> > >  1) to the user, the tax table is always mutable.  They can change it
> > >     at will, but
> > >  2) any posted invoices will refer back to the tax table that existed
> > >     when it was posted, and
> > >  3) all the magic happens under the covers, as far as the user is
> > >     concerned, and
> > >  4) it will save space by reusing tax-tables as much as possible.
> > > 
> > > Thanks for your feedback.
> > > 
> > > -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@MIT.EDU                        PGP key available
> > > _______________________________________________
> > > gnucash-devel mailing list
> > > gnucash-devel@lists.gnucash.org
> > > https://lists.gnucash.org/mailman/listinfo/gnucash-devel
> > 
> > -- 
> >        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@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@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@MIT.EDU                        PGP key available