Skip to content

Fund & Grant Tracker

Grant utilisation computed from allocations, so an underspend shows up early.

The short answer

Fund & Grant Tracker is fund accounting for nonprofits inside Odoo. Funds are classified unrestricted, temporarily or permanently restricted, grants carry an award, a period and their restrictions in writing, and every expense is charged to a fund at the point it is recorded. Spent, remaining and utilisation are computed from those allocations, and the program expense ratio is derived from the spend.

Request this module

Last updated

What it is for

Money you did not spend is money you give back. A restricted grant comes with a period, and whatever is left at the end returns to the funder while the programme it was meant to pay for goes unfunded, having sat in your bank account looking like a healthy balance. Underspending is also the harder failure to see. An overspend announces itself. An underspend looks like prudence right up to the closing report, when a funder asks why most of an award was never drawn and whether you needed it at all.

Platform
Odoo
Category
Regulated records
Works with
Odoo 18 · Odoo 19
Technical name
nonprofit_fund_tracker
Status
Direct from webbox
Pricing
Paid

What is inside it

  1. 01

    Utilisation

    Spent, remaining and the percentage drawn are computed from the allocations charged against each grant, so utilisation is arithmetic rather than an estimate somebody keeps in an open browser tab.

  2. 02

    Funds

    Every fund holds its own balance and its own allocations, and a restricted fund can only be spent on what its grants permit. That separation is what makes a balance answerable.

  3. 03

    Program ratio

    The first number on a grant application, derived here from what was actually charged where. It moves when the spending pattern moves and cannot quietly become last year's figure.

  4. 04

    The board

    Six tiles, with utilisation next to the balance rather than buried in a report, because a low percentage here is news about money you are about to lose.

What it looks like in practice

  1. Most of an award is undrawn and the period is running out

    Seven active grants sit inside their periods, and what has actually been charged against them is a fraction of what was awarded.

    Spent and remaining are computed from the allocations, which is why the remaining figure is not a reserve. On a restricted award inside a period it is the amount at risk of being returned, and the utilisation tile opens the grants behind it.

    Awarded
    $1,190.0k
    Spent
    $383.9k
    Remaining
    $806.1k
    Utilisation
    32.3%

    Figures from the module's own demo data, on a fresh install. Install with demo data and open the Nonprofit board.

    UtilisationThe board

  2. An expense is charged to the wrong fund

    An allocation gets recorded against a fund that does not hold the grant the cost actually belongs to.

    Because utilisation is computed from allocations, a misposted charge misstates two grants at once rather than one. The fund is chosen on the allocation, at the moment the expense is recorded, and that is the only place it is chosen.

    Behaviour of the shipped code.

    UtilisationFunds

  3. A board asks how much of the balance the charity is free to use

    Fund balances across the organisation add to a total that is larger than the money anyone can actually decide how to spend.

    Restricted and unrestricted funds are separate records with separate balances and allocations, so the total only means something once the restricted parts are visible beside it. The program expense ratio sits on the same board, derived from where the spend went.

    Fund balance
    $838.0k
    Program expense ratio
    82.5%

    Figures from the module's own demo data, on a fresh install. Install with demo data and open the Nonprofit board.

    FundsProgram ratio

What it deliberately does not do

No donor management
Grantors are contacts. Campaigns, appeals, pledges and donor stewardship belong in a CRM, not here.
No funder report templates
The figures are computed and exportable. The narrative and the specific forms each funder wants are yours to produce.
Not a statutory ledger
This tracks fund and grant utilisation. Your statutory accounts stay in Odoo Accounting or wherever they live today.
No indirect cost recovery
Allocations are direct charges to a fund. Applying an overhead rate across awards is not modelled.

Questions

Can I install this on Odoo Online?
No. Odoo Online cannot install modules that contain Python, so this runs on Odoo.sh or a self-hosted instance. Check the versions listed above for the series and edition it is verified against.
Will it produce the report my funder asks for?
No. The figures are computed and exportable, but no funder report templates ship with it. The narrative and the specific forms each grantor wants are yours to produce, so treat this as the source of the numbers rather than the document that goes out.
Does it replace our statutory accounts?
No. It tracks fund and grant utilisation only, and nothing here posts to a statutory ledger. The two run alongside each other, with this one answering the restriction questions a general ledger was never built to model.
Can it apply an overhead or indirect cost rate?
No. Allocations are direct charges to a fund, and spreading an overhead rate across awards is not modelled. If your grants recover indirect costs, that calculation happens outside and arrives here as a direct allocation you record yourself.

Have something to build?

Tell us the problem. We'll come back with a plan, a price, and who'd actually build it.

  • Free scoping call
  • Reply within 1 business day
  • No lock-in