Expense reimbursement

Tryton (and my hackerspace) needs a module for keep track and approve expenses from employees (or members of an association).
Before i summit an official blueprint I want to discuss how this can be implemented.

What the module should do:

  • should have states (needs approval)
  • the line of the reimbursement can/should be linked to an invoice
  • should accept expenses that are not part of a invoice (like car fuel, little expenses) that are linked to a receipt
  • should have the ability to add line for “compensating” the party (bonus for the trip, or compensating for the wear of the party’s car for example)

What I think to implement:
Create a new type of invoice, and create more line type for handle each case i listed above. and create a separate view that handle this new type of “invoice”.

I’ll need an help for the tax side of things (I’m part of a non profit… so I don’t have an experience in that field)

For me, you will not create a supplier invoice for the expenses. The expenses is enough and the invoice will not be addressed to the company otherwise it is not an employee expense but just a normal supplier invoice.

This is the main target of employee expense.

I would say that we should not have to decide on the module but the users will decide what can be used as expense or not.

I do not think we should extend the invoice types. Employee expenses will behave quite differently than an invoice, especially on the workflow.
So I think we need a new model.

That’s the tricky part. Often for small amounts (or foreign tickets) the taxes are not deducted because it is too much work for a small amount. Also there are cases where taxes are deducted only partially (usually fuel).
The difficulty is that product has for now only one definition a taxes for purchase but these taxes are not necessary the right one for employee expense. I think the best is that to use a product for employee expense, it should be flagged for (like salable for sale and purchasable for purchase). This way, users may create one or two product for the same thing depending if it needs different taxes/accounts per usage.

Fair enough, I’ll think the basic structure of the new model.

I this case I think a line that can be linked to an supplier invoice can be a good addition, and this is why (from my prospective):
This is more common for association,
you delegate someone to pay for something (lumber for a project for example):

  • The party will pay for the lumber, and act on behalf of the company/association
  • The party can/will ask for some reimbursement for the fuel/wear of the car.

This will:

  • track the amount owed to the party
  • justify the reimbursement (grouping logically the various expense)
  • have a supplier invoice in the name of the supplier (and not in the name of the party, like I do now)

I agree with the other points. Thank you for your insight.

When the employee pays something for the company (or association) it is not a expense but a payable amount that the company owes to the employee and not to the supplier. In this case the expense will be generated when registering the supplier invoice on the system. Normally the company will request some payment receipt, which (for me) is enought to know that the invoice is already paid to the supplier and amount has to be paid to the employee.

All of this scenario can be registered on the accounting of the company without the need of the expense module. You only need a payable account for the employee and an intermediary move to link the payment of the supplier invoice to the employee.

I think this should be managed on the supplier invoice document.
There are also other cases where invoice may need to be paid to someone-else like a liquidator or banker.

Ok yes, you can create the move for the party manually. But I think is error prone and can be automated. I think this functionality should be included somewhere, and IMHO should be included in this module (or on the account_invoice module)

Probably better on the invoice module as this case can be also for companies without expenses.

Indeed we have some cases that a third party (our accountant) pays some invoices for us, and then sends us the suplier invoice and it’s services fee.

Probably we can find a generic solution for this, but of course this should be another topic.

1 Like

I will like to revive this topic as we have the need to manage expenses as cost of projects. So once we have a expense module we can link them directly to projects and use them as costs.

I think we should have something like:

  • Company
  • Employee
  • Date
  • Product (limited to services and with expense checkbox checked.
  • Quantity
  • Cost Price (the cost price of the product can be used as default but the user will be able to enter any).
  • State: Draft / Requested / Approved / Purchased

We should store the employes who requested, approved and purchased each record.

In our case the approval is not needed, so for me we should be able to define for each product if the expense needs aproval or not.

If it does not require approval the purchase button will be shown directly, otherwise it will trigger the request and approve buttons (with a special access to approve them).

Once the expense is purchased we should create an account move that records the amounts in the taxes and expenses amount. We need a counterpart for such moves so it may depen on the payment of the expense:

  • If the paid it by himself, the counterpart is a payable account linked to the employee.
  • If the employee paid it using a company card, the counterpart can be directly the card account
  • Another case may be that the employee got some money from a travel, so he is using such money thus we should use a different account.

How we manage such cases? Do we add a type of payment to manage the counterpart?

I think it’s necessary, and maybe is needed to be specified for each expense line).
But how to handle when the employee pays with the company card(and the moves imported by the statement module)?
Maybe we should just not generate the move, but the line can be referenced by the statement module.

In such case I think we will need to use an intermediary account because the credit card will be debited with all the payments of the month. Then you will reconcile such amount with all the payments of the related card, and if there is something missing you will ask the employee to enter such information. This way the expense is accounted when is really done but not when its paid, as normally there is a delay between the expense is done and the card is paid.

Hi Sergi, so far I haven’t had the word “reimbursement” associated with anything, so I didn’t have this discussion on my screen.
We created a module “cashbook”. Please do not be misleaded by the word “cashbook”. This module allows each employees or costcenters to book expenses (or earnings) to any personal “cashbook(s)”. The expenses have to booked (as draft) by the employee and have to be approved and payed (cash or transferred) to whom had the expenses. In our case the employee(s) knows what expenses are “allowed” to himself.
So our workflow is: purchased/payed (by employee), draft/pre-booked (by employee), approved/booked (by company), payed/booked (by company: cash or transfer).
To make it easier for the employees to “book” their expenses as draft, we do not let them booking it to accounts, but pretty specific “catagories”, like: bus-ticket, train-ticket, tax, paper, … with options for VAT. These categories are related to acoounts, so by the approval of the responsible superviser the line will be approved and booked.

It shouldn’t be a too bid deal to add pre-approved products within this workflow but you should have a look and discuss with F., the “cashbook” is really one of his very special babies :wink: