URSACORP Apps / Worklog Pivot
Worklog Pivot
A Jira project page that turns logged time into a pivot table: authors down the
side, epics across the top, totals that reconcile, and CSV export.
How it works
Answer "who logged how much time on what" without buying a timesheet suite.
Worklog Pivot adds one page to a Jira project. You pick a date range and it builds a pivot of
logged hours: worklog authors down the side, epics across the top, and totals along both edges.
One toggle splits each author into ISO weeks. Sub-tasks group under their story's epic, and
issues with no epic collapse into a single No epic column.
Why it is correct where simpler tools are not
- All worklogs, not the first twenty. Jira's issue search returns only an
issue's first 20 worklog entries. The app fetches each issue's full worklog list instead,
so heavily-logged issues are not silently truncated.
- Entries are filtered, not issues. A Jira date filter matches issues, not
worklog entries, so an issue touched inside your range drags in entries from outside it.
Every entry is re-filtered against the range in your chosen timezone before it counts.
- The count is shown. The footer reports how many issues were read, how many
entries were counted, and how many were excluded, so you can watch the filtering
happen.
- Totals reconcile. Row totals, column totals and the grand total are summed
from exact seconds rather than from the rounded hours on screen.
Reports covering more than 2,000 issues are truncated, with a visible warning
rather than a silently short answer.
Key features
- Pivot of logged hours by author and epic, for any date range.
- Weekly toggle that splits each author into ISO weeks.
- Row, column and grand totals summed from exact seconds.
- Explicit timezone handling, shown in the footer and stamped into every export.
- CSV export of either the pivot as displayed or the raw worklog rows, generated in your
browser and saved to your own device.
- A footer that reports issues read, entries counted and entries excluded.
- Read-only. Nothing is written back to Jira.
Setup
- Install the app from the Marketplace. This needs Jira administrator rights.
- Open any Jira project.
- In the project sidebar, choose Worklog Pivot.
- Pick a start and end date, and choose the timezone if the default is not the one you
want.
Verifying that it works
What you need on the site first
- A project with worklogs logged against several issues.
- Entries from at least two different people, so there is more than one
row.
- Issues belonging to at least two different epics, plus at least one issue
with no epic, so the No epic column appears.
- At least one worklog entry outside the range you will select, on an issue
that also has entries inside it. This is what proves the entry-level filtering.
Steps
- Open the project and choose Worklog Pivot in the sidebar.
- Set a date range that covers most, but not all, of the worklog entries you created.
- Check the shape. Rows should be worklog authors, columns should be epics,
and there should be a No epic column for issues with no parent epic.
- Check a cell. Pick one author and one epic. Add up the hours that person
logged inside the range on issues under that epic, using the issues' own Work log tabs. The
cell should match.
- Check the totals. Confirm each row total is the sum of its cells, each
column total the sum of its column, and the grand total the sum of both.
- Check the entry-level filtering. The footer should report a non-zero number
of excluded entries, matching the entries you deliberately placed outside the range. This
is the behaviour that distinguishes it from an issue-level date filter.
- Check the weekly split. Turn on the weekly toggle. Each author should split
into ISO weeks, and the totals should still reconcile to the same grand total.
- Check the exports. Export the pivot as CSV and open it. It should match
what is on screen. Then export the raw worklog rows and confirm they are the individual
entries behind the pivot. The filename carries the project, the range and the
timezone.
- Check the timezone. Change the timezone and confirm that entries logged
near midnight move between days as expected.
- Check the permission boundary. Open the page as a user who cannot see some
of the project's issues. Only worklogs on issues that user can already open in Jira should
be counted.
Permissions
The app requests a single read-only permission, read:jira-work, and no write
permission of any kind.
It is used to read worklog entries together with the issues and projects those worklogs belong
to, so time can be grouped by author, by issue and by project. Reading issues and projects is
required because a worklog entry on its own carries no issue summary or project name to group
by.
Every request is made with asUser(), so a viewer only ever sees worklogs on
issues they could already open in Jira themselves.
Data handling
No data leaves your Atlassian site. The manifest declares no external permissions and the
source contains no outbound network call, so the app is eligible for Atlassian's
Runs on Atlassian programme. The app
stores nothing. CSV exports are generated in your browser from the data already on screen and
saved only to your own device. Full detail is in the
privacy policy.
Support
ursacorp.llc@gmail.com