Jira Time in Status reports: average time per status, on the issue view and by email

Time And History is a Jira Time in Status app that turns issue history into five reports — Time in Status, Assignee Time, Time to Resolution, Time in Changes and Transition Count. Read them on the report page, on the Jira issue view, in dashboard gadgets or by email, and pick the issues with filter chips, raw JQL or one of your Jira saved filters.

Version 2.4.0 · released 20 September 2026 · 5.0/5 on the Atlassian Marketplace (4 reviews) · free for up to 10 users

Time in Status in chart mode: filter chips and the JQL switch in the header, KPI tiles and a donut of hours per status.
Where does the time go? Time in Status shows the status where issues wait longest, Assignee Time shows who held them and for how long, Time to Resolution shows created-to-done with reopens counted, Time in Changes shows who changed what, and Transition Count shows how often issues went back — every number in business hours. Pick the issues with the filter chips in the header, with raw JQL or with a Jira saved filter; read the same five reports on a ticket, and have any of them arrive by email on a schedule. Free for up to 10 users.

Time in Status report

Time in Status for Jira Cloud: how long issues sit in each status

The Time in Status report answers “how long has this issue been in a status?” for every issue that matches your filter. A per-issue table shows where work gets stuck, and chart mode turns the same hours into a donut, stacked bars or an area chart. Filter by project, sprint, epic, reporter or assignee to compare this sprint with the last one, or to find the bottleneck status inside an epic. Every number is counted in business hours.

  • Per-status table — one column per workflow status, plus a footer with the average, median, min and max time per status for the issues on the current page of the table
  • Chart mode — share by status as a donut, or stacked bar and area charts grouped by day, week, month, quarter or year — or let Auto follow the date range
  • KPI tiles above the table — total time in statuses, issues tracked, statuses and average time per issue — captioned “This page” above the table, and “Whole selection” in chart mode, where they cover every issue the filters match
  • Time between two statuses — add a pair like In Progress → Done and the working time between them becomes a column of its own
  • Bottlenecks and stuck tickets — see the status where issues wait the longest and which tickets are sitting in it
  • Per sprint or epic — the same report scoped to one sprint, epic, reporter or assignee

Learn more about Time in Status in the docs →How a Jira Time in Status report is calculated, and how to read it →

Time in Status table: hours per issue per status, two In Progress → Done columns, KPI tiles and an Avg/Median/Min/Max footer.
Average time in status, at a glance — one row per issue, with hours in every status, plus a column for each pair of statuses you pick (In Progress → Done). The “This page” KPI tiles and the Avg · Median · Min · Max footer both cover the issues on the current page. Filters, not spreadsheets: project, sprint, epic, period, assignee.

Dashboard gadgets

Put working time per status on a Jira dashboard

Gadgets put the reports where the question actually gets asked — Time in Status, Assignee Time, Time to Resolution, Time in Changes and Transition Count — with filters, a chart-type switch and per-status expansion right on the card, and each opens the full report with the same filters.

  • Chart or table — a chart and a table for each of the five reports; Between Statuses has no gadget
  • Filter in place — chips for project, sprint, period and assignee right on the card — epic, the saved chart type and, on gadgets that measure time, the time format live in the gadget settings
  • Donut, bar or area — switch the chart type inline on a chart gadget; a table gadget leads with KPI tiles for the totals
  • Expand by status — Assignee Time rows open into per-status rows for each person
  • Open full report — jumps to the report page with the gadget’s filters kept
  • Gadget settings — the gear holds the same filters plus epic, chart type, a custom-range date picker and, on gadgets that measure time, the time format; the work calendar is inherited from your own selection

Learn more about dashboard gadgets in the docs →Add a Time in Status chart gadget to a Jira dashboard in four steps →

A Jira dashboard with Time And History gadgets: a Time in Status donut, an Assignee Time table and the gadget picker.
Your reports on every Jira dashboard — chart or table, filter in place, expand by status.

New in 2.4

Time in Status on the Jira issue view: all five reports on the ticket

“How long has this ticket been in review?” is asked on the ticket, not on a report page. Add the Time And History panel to an issue from the Apps menu — once, for everyone who opens that issue — and the ticket answers under its own description: the status it is in now and how long it has been there, a bar and a legend for every status it passed, and a switch between all five reports. Working hours come from the calendar you pick on the panel, the same setting your reports use, and “Open in Time & History →” opens the full report on that issue.

  • Added from the Apps menu, per issue — the panel appears under the description once somebody adds it to that issue, and everyone who opens the issue sees it — it never turns itself on
  • All five reports — Time in Status, Assignee Time, Time to Resolution, Time in Changes and Transition Count, all read from the same issue history
  • The same working hours as the report — the calendar pill on the panel writes the setting your reports use, so the panel and the report page can never disagree
  • Counts, not hours, for Transition Count — that report counts transitions instead of measuring time, and the panel says so where the calendar would be
  • Five rows, then “+N more” — the panel stays short; the link at the bottom carries the issue into the full report with the same scope
  • Reads as you, writes nothing — the panel shows an issue only to someone who can already open it in Jira, and it never changes anything on the ticket

Learn more about the issue view panel in the docs →Jira time in status on the issue view: how long has this ticket been here →

A Jira issue with the Time And History panel: report switcher, calendar, current status, a bar and a legend per status.
The answer where the question is asked — the Time And History panel under a ticket’s description: the “Report: Time in Status” switcher, the Business hours calendar pill, “Ready for Test — 36h 33m · since Sep 16, 09:40”, a segmented bar with a legend for every status the issue passed, and “Open in Time & History →”.

New in 2.4

Run any report on a JQL query or a Jira saved filter

The question is usually written already — as a JQL query, or as a filter somebody on the team saved in Jira. Since 2.4 any report runs on it as it is. The header switches between filter chips, raw JQL and your Jira saved filters, and whatever you pick drives the table, the chart, the export and the scheduled mail. The editor checks a query against Jira before it runs, and switching modes pauses your chips instead of clearing them.

  • Nine filter chips — project (multi-select, up to 10), period, sprint, assignee, issue type, epic, reporter, labels and components; project and period are pinned, and whatever does not fit the width collapses into a More filters chip with a badge
  • JQL mode — a raw query of up to 2,000 characters, syntax-highlighted, checked against Jira before it runs — “Valid JQL · 143 issues match” — so the count in the editor and the rows in the table agree
  • Saved filter mode — the Jira filters you starred, own or had shared with you, read as you; the resolved JQL sits read-only beside the chip with its match count
  • Filters paused, not cleared — the chips and the period are held while JQL or a saved filter is on, shown as “Filters paused · 5”, and come back untouched when you switch to Filters
  • Jira’s own error text — an invalid query is underlined and Apply stays blocked, with the message Jira returned rather than one of ours
  • A schedule on a saved filter stays live — a scheduled report built on a saved filter re-reads that filter on every run, as the schedule owner; one built on JQL keeps the query text frozen into the schedule

Learn more about the report scope in the docs →Jira time in status by JQL: run a report on any query or saved filter →

JQL mode: a highlighted query in the header editor, Valid JQL with a match count, and the Filters paused chip beside it.
Your query, your report — the header switch on JQL, the editor open with a highlighted three-line query, “✓ Valid JQL · 143 issues match · press Enter to apply” under it, and the greyed “Filters paused · 5” chip that gives your chips back the moment you switch to Filters.

New in 2.4

Report presets: save a view and bring it back in one click

The same report, rebuilt every Monday: projects, sprint, period, calendar, columns. A preset does it once. It keeps the view under a name — the scope, the period, the working-hours calendar and the time format on any report, plus the columns and the Between Statuses pairs on the report it was saved on. Apply it in one click, press Update preset when it drifts or Revert to go back, and start a scheduled email report straight from it. Up to 50 per person, private to whoever saved them.

  • What a preset carries — the scope, the period, the work calendar and the time format everywhere; the columns (or History by Fields) and the Between Statuses pairs on its own report
  • What it never carries — table or chart mode, the chart type, the metric, the page size and the report itself — a preset configures the page you are on, it never navigates you somewhere else
  • Apply, Update, Revert — applying a preset becomes your current view; change anything and the pill reads Modified, with Update preset and Revert under the row
  • Scope only from another report — a preset saved on a different report restores the first block alone, and the menu says so on the row
  • Private, 50 per person — presets are personal — nobody else sees or changes yours — and names are unique per person, regardless of case
  • Schedules can start from one — a schedule copies the preset’s filters when it is created; edit the preset later and the row is badged Preset changed since, with “Use the preset’s current filters” waiting in the editor

Learn more about presets in the docs →Save Jira report filters as a preset: what travels in one, and what does not →

The Presets menu open over a Time in Status report: a modified preset with Update and Revert, and presets from other reports.
Stop rebuilding the same report every Monday — the Presets menu lists what you saved on this report, the applied one tagged Modified with Update preset and Revert under it, and the presets saved on other reports below, marked “scope only”.

Scheduled reports

Scheduled email reports: send a Jira Time in Status report daily, weekly or monthly

A scheduled report sends Time in Status — or any of the five reports — by email: daily, weekly or monthly, at the time and time zone you choose, with the filters you set on the report page frozen into the schedule, or taken from a preset. The XLSX is attached, it goes to up to ten recipients you type yourself, and every run is listed in Export History. Since 2.4 the list also shows delivery: an address that bounced or marked the mail as spam is flagged on the run and on the recipient, so a silent mailout is not a thing.

  • Any report — Time in Status, Assignee Time, Time to Resolution, Time in Changes or Transition Count
  • Daily, weekly or monthly — you pick the start date, the start time and the time zone; the schedule tells you when it runs next
  • Up to 10 recipients — addresses you type yourself — nobody is added implicitly
  • Start from a preset — a schedule can take its filters from one of your presets, and the row says so; edit the preset afterwards and the row is badged Preset changed since
  • Delivery you can see — a bounced or spam-flagged address gets a marker on the recipient and a “Not delivered to …” line under the run, with the reason. There is no retry — the fix is to remove the address — and a schedule left with no deliverable address is switched off
  • XLSX attached — a file larger than 7 MiB is not attached; the mail says to download it from Export History instead
  • Every run in Export History — scheduled runs land in the same list as your hand-started exports
  • Runs as the schedule owner — the report is collected with the owner’s Jira access, so recipients see the owner’s view

Learn more about scheduled reports in the docs →Scheduled Jira reports by email: how to know they actually arrived →

Scheduled Reports with a preset-based editor, a Preset changed since badge and a Not delivered sub-line under a run.
The report comes to you, and you can tell whether it arrived — pick the report, the frequency and the hour, take the filters from a preset if you have one, and the XLSX lands on that clock. A run that could not reach somebody says so: “Not delivered to [email protected] (mailbox does not exist)”.

Between Statuses

Time between two statuses in Jira: In Progress → Done, in business hours

The time between two statuses in Jira, as a column: pick any two statuses on Time in Status and the working time between them becomes a column — In Progress → Done — with average, median, min and max in the footer for the issues on the current page. Choose first exit (the first entry into A to the first entry into B, later loops ignored) or last exit (to the last entry into B, so every loop counts). Up to ten pairs, saved for you, in the table and in every export.

  • Up to 10 pairs — each pair adds one column to the Time in Status table, in the order you added them
  • First exit or last exit — decide whether a loop back through the workflow counts — first exit stops at the first entry into the second status, last exit waits for the last one
  • Saved per user — your pairs come back next session and change nobody else’s report
  • In every export — the columns travel into XLSX and CSV alike, and into a Time in Status schedule

Learn more about Between Statuses in the docs →Jira time between two statuses: first exit, last exit and a reopened issue →

The Between statuses modal over the Time in Status table: three From → To rows, each with a first-exit or last-exit mode.
How long from In Progress to Done? Pick From and To, choose first exit or last exit, and the working time appears per issue — up to ten pairs, in the table and in every export.

Transition Count report

Transition Count: how many times a Jira issue changed status

Transition Count is the fifth report, and it counts every status-to-status transition per issue — Ready for Test → In Progress: 3 — with a column per pair, a Total column and a TOTAL row. Rework stops being a feeling and becomes a number you can sort, chart, export to XLSX or CSV and put on a Jira dashboard.

  • One column per status pair — every pair the issues actually went through, counted per issue
  • Totals per issue and per page — a Total column for each issue and a TOTAL row covering the issues on the current page, not the whole selection
  • Chart mode and KPI tiles — total transitions, issues tracked, pairs and average transitions per issue — “This page” above the table, “Whole selection” in chart mode
  • Same filters — project, sprint, epic, reporter, assignee and date range, like every other report
  • No work calendar or time format — it counts events rather than time, so business hours do not change the number
  • On a dashboard too — a chart gadget and a table gadget put the rework count on the team’s Jira dashboard

Learn more about Transition Count in the docs →Jira transition count report: which reopens the number actually covers →

Transition Count table: counts per issue for each status pair, a Total column, a TOTAL footer row and This page KPI tiles.
Count the round trips — how many times each status pair occurred, per issue, with a Total column and a TOTAL row for the issues on the current page. The tickets that keep going back to In Progress stop hiding.

Assignee Time report

Assignee Time: time with each assignee

Assignee Time shows how long every issue spent with each person — one column per assignee, an Unassigned column for time nobody owned, and a Total Time From Create Issue column. When a ticket moves between people, the time goes to whoever held it, so reassignments stop hiding effort.

  • Hours per assignee — one column per person plus an Unassigned column for the time nobody owned
  • Per status on the dashboard — the report page keeps one column per person; the per-status breakdown is the Assignee Time (Table) gadget, which expands each person into per-status rows
  • Totals and KPI tiles — a Total Time From Create Issue column per issue, and tiles above the table for total time in statuses, issues tracked, assignees and average time per issue — “This page” above the table, “Whole selection” in chart mode
  • Chart mode — the same hours as a donut, stacked bars or an area chart, grouped by day, week, month, quarter or year
  • Any slice — by project, sprint, epic, period or assignee

Learn more about Assignee Time in the docs →Workload per assignee in Jira: where the time actually lands →

Assignee Time in chart mode: KPI tiles and a stacked bar chart of hours per assignee per week, with a legend of totals.
Who spends time where — chart mode stacks the hours per assignee per week over the whole selection, and the table gives every issue a column per person. The per-status breakdown is the Assignee Time (Table) gadget.

Time in Changes report

Time in Changes for Jira Cloud: the issue history report Jira does not have

Time in Changes reads the issue changelog into a report. It covers status, assignee, priority, summary, issue type, reporter, description, labels, due date and resolution — and, since 2.4, custom fields such as Story Points. Every change shows who made it, when, the old and new value, and how long the old value lasted — in business hours. It is the issue history report Jira does not have: expand any issue to read its whole history, field by field, and choose which fields appear.

  • Who changed the status — every transition with its author, timestamp and the time spent in the previous status. A change row, read column by column, is in Jira status change history.
  • Standard fields — assignee, priority, summary, issue type, reporter, description, labels, due date and resolution — the same who, when and how long for each
  • Custom fields, new in 2.4 — Story Points, Sprint and any other custom field Jira records in the issue changelog are read alongside the standard ones
  • History by fields — choose which fields appear in the drill-down; each field lists its changes oldest to newest, ending with the current value and the time since the last change

Learn more about Time in Changes in the docs →Jira custom field history: who changed Story Points, when, and for how long →

Time in Changes: an issue expanded to its changelog — status, assignee and a Story Points change, with time in each value.
Every change, on a timeline — the full field history with who and when, and how long each value lasted, in business hours; status and assignee next to a Story Points 5 → 8 row, because custom fields count too.

Time to Resolution report

Time to Resolution for Jira Cloud: every resolution pass, in business hours

Time to Resolution measures the working time an issue takes to reach each of its resolutions. Every resolution pass gets its own column, so you see how many times an issue came back and what the rework cost. It also lets you track resolution times for support or bug projects without Jira Service Management, and compare them with the target you promised.

  • Working time to resolution — per issue, against your work calendar
  • Reopened issues — each pass in its own column, named after the resolution with an ordinal — Done 1st, Done 2nd
  • Total time to resolution — the working time across an issue’s resolution passes; the stretch it spends already resolved is not counted
  • SLA tracking without JSM — a resolution-time report for any Jira Software project

Learn more about Time to Resolution in the docs →Jira time to resolution: the SLA gap nobody measures →

Time to Resolution: one row per issue, a column per resolution pass and the total time to resolution.
Resolution times issue by issue — the working time to each resolution, reopens kept apart, by epic, sprint or person.

Work calendars

Work calendars: business days, hours, time zones and yearly holidays

Work calendars set business days, per-day hours, a time zone and holidays that repeat every year — and every report that measures time follows them. Weekends and days off never inflate a number, so a ticket opened on Friday evening is not three days old on Monday. Create several calendars for teams in different regions and pick the one that matches the team you are looking at. Your work calendar is a personal setting: pick it once and Time And History remembers it for you across sessions, applying it to every report that measures time — Time in Status, Assignee Time, Time to Resolution and Time in Changes — and to every dashboard gadget you view, without changing anyone else’s results.

  • Business days and hours — which days count and how many hours each
  • Time zones — one calendar per office
  • Holidays — a yearly list, repeated automatically
  • Several calendars — switch between them right from the report; the choice is yours alone and follows you to every report that measures time and to every gadget
  • Except Transition Count — that report counts events rather than time, so it has no work calendar and no time format

Learn more about work calendars in the docs →Jira time in status excluding weekends: what a work calendar changes →

Calendar settings: business days, per-day work hours, time zone and a yearly holiday list for the selected calendar.
Count only real working time — business days, work hours per day, holidays and time zones keep every report honest, with no weekend inflation.

Exports

Share any report outside Jira — Excel, CSV or PNG

One click exports any of the five reports to Excel (XLSX) or CSV, and the open chart to PNG from chart mode on any report. Large exports build in the background and land in the export history, ready to download whenever you come back — no waiting on the page.

  • Excel — the full table with its totals, plus the chart images when you export from chart mode; Time in Status, Assignee Time and Time to Resolution add a chart-data sheet, Transition Count a totals sheet
  • CSV — for your own pivots and BI tools — Between Statuses columns included
  • PNG — the open chart as an image for a slide or a status update, from chart mode on any report
  • Export history — every export covers all matching issues, runs in the background, and your 20 most recent files stay ready to download. Scheduled runs land in the same list

Learn more about exporting in the docs →Jira Time in Status export to Excel: XLSX, CSV and the changelog route →

Time in Status table with the Export History panel open: XLSX, CSV and PNG files, ready or still building.
Share reports outside Jira — export any of the five reports to XLSX or CSV, and the open chart to PNG; async exports build in the background and wait for you in the export history, alongside your scheduled runs.

Dark mode

Time in Status for Jira Cloud, in dark mode too

Dark mode is automatic: every report, dashboard gadget, the issue view panel and every settings page switches with your Jira Cloud theme, and status colours stay readable in both. Nothing to configure — it looks and behaves like part of Jira, not a separate tool.

  • Follows the Jira theme — light or dark, with no in-app switch to remember
  • Charts tuned for dark — tables, charts and dialogs keep the same clarity in both themes
  • Gadgets and the issue panel too — dashboard gadgets match the dashboard around them, and the panel on the issue view matches the issue

Learn more about appearance in the docs →

The Time in Status report in chart mode in dark mode: header chips, KPI tiles and a donut, following the Jira theme.
Follows your Jira theme — reports, dashboard gadgets and settings switch to dark mode together with Jira, automatically, with charts tuned for dark and gadgets too.

Access settings

Who sees what: report access by Jira group

Access settings decide per Jira group who can view Time in Status and the other reports, who edits work calendars and who manages access. Grant or revoke with one click using the Jira groups you already have — nothing new to manage.

  • Reports — which groups can open the report pages
  • Calendars — who can create and edit work calendars
  • Permissions — who can change the access settings themselves
  • Admins keep control — Jira admin groups always keep full access and cannot be locked out
  • Your own Jira permissions still apply — every Jira read runs as the person looking, so a report, a gadget and the issue view panel each show only the issues that user can open in Jira. A scheduled run collects as the schedule owner, so its recipients see the owner’s view

Learn more about access settings in the docs →

Access settings: Jira groups with Allowed and Allow controls for reports, work calendars and access settings.
Decide who sees what — per-group access with three permissions (reports, calendars, access settings) and admin control, using the Jira groups you already have. Inside a report, every viewer sees only the issues their own Jira permissions allow.

Who uses Time And History

Team leads

Balance the workload with Assignee Time: see how long issues sit with each person, find who is overloaded and who has capacity, and move work before the sprint slips.

Project managers

Find the bottleneck status with Time in Status charts, put the same chart on the project dashboard as a gadget, and keep delivery predictable with Time to Resolution in business hours.

Support managers

Track resolution times without Jira Service Management: Time to Resolution shows created-to-done per issue, counts reopened tickets and follows your business-hours calendar.

Scrum masters

Run retros on real numbers: filter Time in Status by sprint or epic, compare it with the previous one and export the table to Excel for the meeting notes.

Rated 5/5 on the Atlassian Marketplace

5.0 out of 5 from 4 reviews — an early sample, and a public one: every review, and our reply to it, is on the listing.

Put the gadget on the team dashboard and managers stopped asking me for numbers every week. That alone changed my Mondays.
Yuki NakamuraJira Cloud · 6 September 2026
We have around forty thousand worklogs and reports still come back in a couple of seconds. I expected much worse at this size.
Olena KovalenkoJira Cloud · 30 August 2026
Great plugin! “Calendars” feature is amazing!
Bohdan BelokurJira Server · 23 September 2020

Read the reviews on the Atlassian Marketplace — all 4 of them, ratings and replies in full.

Time in Status for Jira: frequently asked questions

Open Time And History, choose the Time in Status report and filter by project — and by sprint, epic or assignee if you like. The table shows the working time every issue spent in each status, with a footer giving the average, median, min and max per status for the issues on the current page. Chart mode shows the same time as donut, bar or area charts. Jira itself only lists the transitions in the issue history; the report turns them into durations.

Want the details? Read the full Time And History documentation — every report, gadget, filter, calendar and setting explained.

More on Jira reporting, work calendars and delivery metrics on the SolaceIn blog.

Time in Status for Jira Cloud, in your site today

Install from the Atlassian Marketplace and the app appears in your Jira Cloud site within a minute — reports, gadgets and work calendars included.