Retainer & Prepaid-Hours
Sell prepaid hour blocks and burn them down against timesheets with top-up alerts
Agencies that sell blocks of hours usually track them in spreadsheets and discover they've over-served only at month-end. This module ties a retainer contract to a project so every timesheet line (account.analytic.line) burns the prepaid balance down automatically — oldest block first. Consumed hours, remaining hours and a burn-rate (hours consumed per day since start) update live on each contract and each block; a configurable low-balance threshold flips the contract to "Low" and schedules a top-up activity, and a nightly cron flags expiring blocks and depleted contracts so nothing is delivered for free.
Key Features
Retainer Contracts
Per-customer contracts with period, hourly rate, optional linked project and a draft → running → low → depleted → closed lifecycle.
Prepaid Hour Blocks
Each top-up adds hours and value; blocks can carry their own expiry, and the set of blocks builds the total purchased balance.
Automatic FIFO Burn-Down
Timesheets on the linked project consume the retainer oldest-block-first. Consumed hours, remaining hours and a burn-rate (hours consumed per day since start) are computed live on every contract and on every individual block.
Low-Balance & Expiry Alerts
A percentage threshold flips the contract to "Low" and schedules a top-up activity; a nightly cron flags blocks expiring soon and contracts that have depleted.
Consumption Log
Every timesheet entry links to the exact block it drew from, with employee, date, hours and value — a transparent audit trail of where the hours went.
One-Step Top-Up Wizard
Sell a new hour block in a single action. Optionally tick ‘Create Sale Order Line’ and pick an existing sale order to add a matching line for invoicing — hours and unit price are prefilled from the block.
Nothing Native Does This
Core Odoo has no prepaid-hours model, FIFO burn-down or top-up alerting — this tracks retainers end to end.
Stop Serving for Free
Live balances and proactive alerts mean you never silently over-deliver against a depleted block again.
Screenshots
Hour Blocks
Consumption
Retainers
Why Choose This Module
Agencies, consultancies, managed-service providers, support teams and any service business that sells prepaid blocks of hours and needs accurate, automatic burn-down against real timesheet work.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: OPL-1
- Languages: English
- Author: Pokutsoft
- Dependencies: base, mail, project, hr_timesheet, sale
- Support: support@pokutsoft.com
Update date: 2026-07-02