Absence & Bradford Factor Management
Frequent-short-absence Bradford Factor scoring, threshold-triggered review, absence-pattern report
Absence & Bradford Factor Management logs every employee absence and computes the classic Bradford Factor (S squared times D), the HR metric that penalises frequent short absences far more heavily than one long continuous absence of the same total length. Scores are stored as auditable snapshots, thresholds are fully configurable per company, and crossing the review trigger automatically schedules a manager activity, all on plain Community hr with no Time Off dependency required.
Key Features
Standalone absence log
hr.absence.record tracks employee, start/end date, absence type (sickness, unauthorized, other) and an automatically computed day count, working on plain Community hr with no Time Off app required.
Optional Time Off soft-integration
When hr_holidays happens to be installed, sync_from_hr_leaves and a daily cron best-effort import validated hr.leave records into the absence log, idempotently, without ever hard-depending on hr_holidays.
Bradford Factor engine
A pure-python, unit-tested engine merges overlapping or near-adjacent absences into spells, sums the total days, and computes the Bradford Factor S^2 x D so scattered short absences score far worse than one continuous absence of equal length.
Configurable scoring thresholds
bradford.factor.config lets each company set the green/yellow/red score bands, which level triggers a formal review, the rolling-period length, the spell-merge gap (bridging weekends) and the frequent-short-absence pattern tuning.
Threshold-triggered review workflow
Crossing the configured trigger level automatically schedules a review activity for the employee's manager and posts a chatter update; a to-review/reviewed status tracks the outcome (action_mark_reviewed / action_reopen_review).
Frequent-short-absence pattern detection
detect_pattern flags employees whose absence history is dominated by many short spells, the classic Bradford red flag, separately from the raw numeric score.
Bulk compute wizard
bradford.score.compute.wizard scores an entire department, or every active employee, over a chosen period in one click and opens the results pre-filtered to those that crossed the review threshold.
Scheduled recompute and absence-pattern reporting
A cron job (cron_recompute_all) recomputes the rolling-window score for every active employee, and pivot/graph views over the absence log and score history break results down by employee, department, type and level.
Use Cases
Screenshots
01 Bradford Scores List
02 Absence Records List
03 Score Form
04 Reviews Pending List
Why Choose This Module
Rather than a manual spreadsheet formula prone to inconsistent application, this module makes the Bradford Factor a governed, auditable HR process: every score is a stored snapshot with a timestamp and reviewer trail, the underlying spell-merging and scoring maths lives in an independently tested engine, and the workflow closes the loop by turning a red score straight into a manager activity.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: OPL-1
- Languages: 35+
- Author: Pokutsoft
- Dependencies: hr
- Support: odoo@gencbaris.com
- Update date: 2026-07-13
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Employees (hr)
• Discuss (mail) |
| Lines of code | 1174 |
| Technical Name |
absence_bradford_factor_management |
| License | OPL-1 |
| Website | https://pokutsoft.com/ |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module