Redmine plugin
Redmine Status Lifecycle
Where does the time go?
- Role
- Plugin engineering
- Year
- 2026
- Platform
- Redmine
GitHub - Built with
- Ruby on Rails
- PostgreSQL
- Chart.js
The problem
Redmine records every status change but never tells a team how long work sits in review or waits for feedback.
The idea
Rebuild each issue’s lifecycle from the journals table, compute the time spent in every status, and aggregate it by user, category and status.
How it’s built
Data model
Status transitions come from status_id changes in journals; durations are created_on differences, loaded with eager loading to avoid N+1 queries.
Analytics
Sorting, filters by issue, user and category, CSV export, and Chart.js charts both in the report and inside each issue.
Where it is now
An installable plugin with a project module and menu tab; source on GitHub.
GitHub (opens in a new tab)