Redmine plugin

Redmine Status Lifecycle

Where does the time go?

NewIn progressIn reviewFeedbackClosedTime in each status, rebuilt from journalsAggregated by user, category and status#1042
Illustration
Role
Plugin engineering
Year
2026
Platform
Redmine
GitHub
Built with
  • Ruby on Rails
  • PostgreSQL
  • Chart.js

Redmine records every status change but never tells a team how long work sits in review or waits for feedback.

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.

An installable plugin with a project module and menu tab; source on GitHub.

GitHub (opens in a new tab)