By default every task counts the same towards a progress percentage, which flatters small work and hides large work. This add-on lets an administrator choose the basis instead: task count, a weight you set on each task, story points, or estimated hours. The choice is a company default with an optional per project override, and it applies everywhere progress is shown, including projects, programmes, sprints, dashboards, member views, and reports.
- Installs
- Available
- Support
- Vendor Supported
- Trust
- Self-Hosted
Active deployments
Priority response
Your infra, your data
Screenshots
Key Features
Four Progress Bases
Task count, which is the unchanged default. Weightage, where each task contributes the weight you gave it. Story points. Or estimated hours.
One Formula, Stated Plainly
Progress is the weight of closed tasks divided by the weight of all tasks, as a percentage. Weights are relative, so the numbers you choose only have to make sense against each other.
Company Default
An owner or administrator picks the basis once and it applies across the company, so two reports never disagree about what percent complete means.
Per Project Override
A project can use a different basis from the company default, or be set back to inherit. A fixed price build and a support project can be measured the way each actually works.
Applied Everywhere
The same calculation drives projects, programmes, sprints, dashboards, member views, and reports, because every call site routes through one service.
Programme Roll-up
A programme rolls up from its projects proportionally, so a large project moves the programme number more than a small one does.
Task Weightage Field
The manual basis adds a weightage field to the task, editable by the roles you allow, so the people doing the work can size it.
Reuse What You Already Capture
The story point and estimated hours bases reuse fields your teams already fill in, so you can switch basis without a data entry exercise.
Missing Weights Count as One
A task with no weight is treated as one rather than as zero, so a half filled in backlog does not silently drop out of the percentage.
Two Role Permissions
Manage progress settings is for owners and administrators. Edit task weightage extends to ordinary users, so sizing does not become an admin bottleneck.
Cached and Cleared
The resolved basis is cached for speed and cleared the moment settings are saved, so a change is visible immediately rather than after a wait.
Safe to Switch Off
The core progress service falls back to count based maths when the add-on is absent or disabled, so the application behaves exactly as it did before.
Sprint and Member Views Included
Sprint progress and per member views use the same basis, so a stand-up and a steering report are reading the same number.
Honest Reporting
When a percentage reflects effort rather than row count, a status report stops being an argument about what got counted.
About this plugin
Why Weighted Progress for Orangescrum?
Counting tasks is the easiest way to compute a percentage and the least honest. A project of twenty tasks where the four hard ones are outstanding reads as eighty percent complete, and everybody in the room knows it is not. This add-on lets you choose what the percentage is actually made of.
Four bases, one decision
Task count is the default and changes nothing. Weightage lets you put a number on each task. Story points and estimated hours reuse fields your teams already fill in, which means you can switch to a fairer basis without asking anybody to go back through the backlog. The choice is made once, by an owner or administrator, in Progress Settings.
The formula, stated plainly
Progress is the total weight of closed tasks divided by the total weight of all tasks, expressed as a percentage. Weights are relative, so the numbers only have to make sense against each other. A task with no weight counts as one rather than zero, so a partly sized backlog still produces a sensible figure.
One default, with room for exceptions
The basis is set for the company, and a project can override it or be set back to inherit. That matters when one portfolio holds a fixed price build measured in hours and a support project measured in ticket count. Programmes roll up from their projects proportionally, so the size of a project affects the programme number.
The same number everywhere
Progress is computed by one service that every call site routes through, so projects, programmes, sprints, dashboards, member views, and reports all agree. Two reports disagreeing about what percent complete means is usually a sign that two pieces of code are doing the sum differently, which is exactly what this removes.
Optional, and safe to switch off
The add-on is behind a feature flag. When it is absent or disabled, the core progress service falls back to count based maths and the application behaves exactly as it did before, so trying it is not a one way door.
What's included
- Four progress bases: task count, weightage, story points, estimated hours
- Company wide default basis set from Progress Settings
- Per project override with an inherit option that removes the override
- Weight of closed tasks over weight of all tasks as the shared formula
- Relative weighting, with an unweighted task counted as one
- Task weightage field added by the plugin
- Story point and estimated hours bases that reuse existing task data
- Progress applied consistently to projects, programmes, sprints, dashboards, member views, and reports
- Proportional programme roll-up from its projects
- A single core progress service that every call site routes through
- Count based fallback when the plugin is absent or disabled
- Resolved basis caching with an automatic clear on save
- Role permission to manage progress settings, for owners and administrators
- Role permission to edit task weightage, extended to ordinary users
- Owner and administrator gate on the settings screen
- Multi-tenant company-scoped data isolation
Compatibility
Requires the Orangescrum Self-Hosted edition running PHP 8.2+, CakePHP 4.6+, and PostgreSQL 16. The plugin folder is WeightedProgress and it is gated by the WEIGHTED_PROGRESS_ENABLED flag in config/constants.php. Progress maths is centralised in a core service that falls back to count based calculation when the plugin is not loaded, so the host application is unchanged while the add-on is off. Multi-tenant aware, so the company default and every project override is company-scoped.
Installation
A self-hosted install takes a few minutes. Buy the add-on, drop the plugin into your plugins/ directory, run the migrations, and you're live.
- 1
Buy the add-on
Purchase the Weighted Progress add-on from /self-hosted/pricing at $499/year per company, payable annually.
- 2
Drop the plugin into your install
Copy the WeightedProgress/ folder into plugins/ on your self-hosted Orangescrum server.
- 3
Enable the feature flag and register the plugin
Add `define('WEIGHTED_PROGRESS_ENABLED', true);` to config/constants.php and register `WeightedProgress` in src/Application.php with `routes => true, bootstrap => true`.
- 4
Run the migrations and seeders
Run `bin/cake migrations migrate -p WeightedProgress` then `bin/cake migrations seed -p WeightedProgress` to create the settings table, add the task weightage field, and register the role permissions.
- 5
Clear the cache
Run `bin/cake cache clear_all` so the new module, permissions, and settings are picked up.
- 6
Choose the company default
Open Company Settings, then Progress Settings, and pick task count, weightage, story points, or estimated hours as the company wide basis.
- 7
Add project overrides where they are needed
On the same screen, set a different basis for individual projects, or leave them on inherit to follow the company default.
- 8
Size the work
If you chose the weightage basis, give your tasks a weight. Anything left unweighted counts as one until somebody sizes it.
Frequently Asked Questions
What exactly changes when we switch basis?
▾
The percentage becomes the total weight of closed tasks divided by the total weight of all tasks. On the task count basis every task has a weight of one, which is the behaviour you have today. On the other bases the weight comes from the task's weightage, story points, or estimated hours.
What happens to tasks that have no weight?
▾
They count as one rather than as zero. That keeps a partly sized backlog from quietly dropping out of the calculation and producing a percentage that looks better than reality.
Can different projects use different bases?
▾
Yes. There is a company wide default and an optional per project override, and an override can be removed so the project inherits the default again. Programmes roll up from their projects proportionally, so a larger project moves the programme figure more.
Does this add new kinds of progress, like part done tasks?
▾
No. A task is either closed or it is not, and the basis only changes how much a closed task is worth. There is no partial credit for work that is halfway through, and no per status weighting.
Will reports and dashboards agree with each other?
▾
Yes. Every place that shows progress routes through one service, so projects, programmes, sprints, dashboards, member views, and reports all use the basis you chose rather than each doing its own sum.
Who can change these settings?
▾
Managing progress settings is limited to owners and administrators. Editing the weightage on a task is a separate permission that also extends to ordinary users, so sizing work does not have to go through an administrator.
What happens if we turn it off?
▾
Progress goes back to count based calculation everywhere and the application behaves exactly as it did before the add-on was installed. The stored settings and the weightage values remain, so switching it back on restores your configuration.
Ready to deploy Weighted Progress on your own infrastructure?
Talk to our team about Orangescrum Self-Hosted Enterprise: your data, your servers, full control.