Derek Atkins warlord at MIT.EDU
Tue May 24 13:04:38 EDT 2005

Quoting Karl Hegbloom <hegbloom at>:

> On Tue, 2005-05-24 at 06:50 -0700, Brian wrote:
> > For Canada:
> > 
> > # of pay periods/yr.
> > ---Incomes
> > Hours
> > Rate
> > basic wage
> > several extras, such as bonuses for extra trade tickets.
> > [ ... ]
> Reminds me of scheduled transactions.  Could it be implemented in terms
> of those, with a template transaction and function calls to retrieve the
> correct values?

Maybe, but I think the rules for payroll are way more complex than the current
SX code can handle.  Mind you, the SX code is rather flexible, in that it can
effectively call any scheme function you want, but I'm not sure that SXes are
the best way to represent payroll.  Maybe they are, I don't know.

But how do you handle something like the FICA witholding in the US?  The
witholding is 6.5% from the employee, 6.5% from the employer (i.e, it's a
payroll tax that's above and beyond the gross pay, and "must" come from the
employer)..  But even worse, only the first $87,000 of taxable income is
subject to FICA witholding.  So the function needs to know "how much have I
paid this person this calendar year" in order to properly compute FICA.

Could this be done in an SX?  Maybe...  But the SX needs to know more than just
gross income and witholdings.  We'd definitely need a druid to help users
create payroll SXes but then that druid would need to be locale-specific... 
which sort of violates the "no C code per locale" concept.  :(


       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL:    PP-ASEL-IA     N1NWH
       warlord at MIT.EDU                        PGP key available

More information about the gnucash-devel mailing list