Privacy Policy
Visual Progress Tracker for Jira ยท Last updated: October 12, 2026
1. Introduction
This Privacy Policy explains how Visual Progress Tracker ("the App"), developed by Janek Behrens ("we", "us", "our"), handles data when installed on your Atlassian Jira Cloud instance. We are committed to protecting your privacy and being transparent about our data practices.
2. Data We Access
The App reads the following Jira data, only to calculate and show progress:
- Work items: keys, titles (summaries), statuses and status categories, work item types, priorities, resolution, parent and subtask links, and, when the Epic Progress Tracker measures story points, the story point estimate.
- Assignees: the account ID and display name of the assignee, only when the Epic Progress Tracker groups work by assignee.
- Projects and fields: project keys and names (project picker) and the list of Jira fields (to find the App's own fields and the story point field).
- Custom field values: the progress values in the App's own custom fields.
The dashboard gadgets and widgets, the project picker and the progress details on a work item read Jira with the permissions of the person viewing them. The App's custom fields (status and subtask progress) and "Recalculate All Fields" read statuses and subtasks with the App's own account and write progress values into the App's own custom fields; nothing else in Jira is changed. Work item descriptions, comments and attachments are never read.
3. Data We Store
The App stores only the following, using Atlassian Forge storage, which is hosted and managed by Atlassian for your site:
- Result cache of the dashboard gadgets and widgets, per viewer: for the Progress Tracker Overview, the work items it shows (keys, titles, statuses, status categories, types, priorities and progress values) and the average; for the Epic Progress Tracker, the epics (keys and titles) or, when grouped by assignee, the assignees' account IDs and display names, each with its progress. Each entry is stored under the viewer's Atlassian account ID, the project key, the view settings and a hash of the JQL filter (never the filter text). Every viewer's search runs with their own permissions, so a cached result is never shown to anyone else. An entry is used for at most 5 minutes (see section 7).
- Review prompt, per user: whether the user dismissed the request to review the App (and when) or completed it, stored under the user's account ID; and the date the App was installed.
- Admin settings: the status-to-progress mapping (Jira status names with a percentage) and the color thresholds.
- Technical records: the IDs of the App's custom fields and of the story point field, the time of the last "Recalculate All Fields" run and a random ID of the run in progress, and the subscription state (licensed or not, trial or not, licence type and billing period; no licence IDs or end dates).
- Anonymous daily usage counters: per day, how often features were used (for example "a gadget was loaded" or "a progress field was shown"). No IDs, names or content.
The App stores no email addresses, avatars or other profile data. Atlassian account IDs are used only as keys of the per-viewer cache entries and of the review prompt state; the cache of the Epic Progress Tracker grouped by assignee also holds the assignees' account IDs and display names as Jira shows them. Titles are free text written by your team: if your team writes personal data into the title of a work item or epic, the cache contains it as written.
The gadget and widget settings (for example the project, the view and a JQL filter) are stored by Jira itself as part of the dashboard, not by the App. The progress values in the App's custom fields are stored by Jira as custom field data.
4. Data We Do NOT Collect
- We do not run any servers. There is no developer-operated backend or database.
- We do not store email addresses, avatars or other profile data (account IDs and display names only as described in section 3).
- We do not use cookies, tracking pixels, analytics platforms or advertising networks.
- We do not send any data to external services. The App makes no network calls outside the Atlassian platform.
- We do not read work item descriptions, comments or attachments.
Technical logs and usage counts: Like most Forge apps, the App writes technical log lines (for example "a gadget was loaded" or "Jira did not answer") and, once a day, the anonymous usage counters and the subscription state listed above to Atlassian's app logging, which Atlassian makes available to us as the app vendor. Log lines may contain identifiers from your site, namely project keys and, when "Recalculate All Fields" skips or cannot update a work item, its key, as well as counts, progress averages, modes, HTTP statuses and error codes, but never titles, names, email addresses, account IDs or JQL text (a JQL filter is described only by a hash, its length and its number of clauses). We use them only to find errors and to see which features are used.
5. Data Processing Location and Data Residency
All data processing occurs entirely within the Atlassian Forge runtime environment. The App runs on Atlassian's infrastructure as part of the Runs on Atlassian program. No data is transmitted to servers operated by us or any third party outside the Atlassian platform.
Everything listed in section 3 is stored in Forge hosted storage, which supports Atlassian's data residency: it is held in the same location as your Jira site and moves with it when an admin moves the site's data to another location. Not in scope: Jira data the App reads without storing it, the progress values in the App's custom fields and the gadget and widget settings (both stored by Jira under Jira's own data residency), and the technical logs in section 4, which are handled by Atlassian's app logging.
6. Third-Party Services
The App does not integrate with or send data to any third-party services. There are no external API calls, no AI services, no analytics services, and no advertising networks.
7. Data Retention and Deletion
- Result cache: an entry is used for at most 5 minutes. After that, the next load by the same viewer with the same settings reads Jira again and replaces it; clicking "Refresh" in a gadget or widget does so at once. Each entry expires one day after it was written and is then deleted by Forge storage (Forge removes expired entries within 48 hours); a weekly cleanup deletes older entries written before version 4.65 (October 2026).
- Review prompt state, admin settings, technical records and usage counters are kept while the App is installed.
- Custom field values are stored by Jira as standard custom field data. Removing the custom fields from Jira deletes these values.
- Gadget and widget settings are stored by Jira with the dashboard and removed with the gadget or widget.
- After you uninstall the App, Atlassian keeps the App's storage, the result cache included, for 28 days and then deletes it (Forge documentation: data recovery for apps with hosted storage). During that time the App cannot read it. Within 21 days of the uninstall, you can ask us to have Atlassian restore it to a new installation of the App.
8. Personal Data and GDPR
The App stores personal data only as described in section 3: Atlassian account IDs as keys of the per-viewer cache and of the review prompt state, and, in the cache of the Epic Progress Tracker grouped by assignee, the assignees' account IDs and display names. It stores no email addresses, avatars or other profile data, and all of it stays in Forge storage on Atlassian's platform (section 5). Titles in the cache are kept as your team wrote them in Jira.
Data held by Jira itself remains entirely within your Atlassian site and under Atlassian's controls; GDPR data subject requests relating to it should be directed to your admin or Atlassian. For App-specific concerns, contact us at the email address below. After you uninstall the App, Atlassian deletes all App-related data from Forge storage after 28 days (section 7).
9. Security
The App follows Atlassian Forge security best practices:
- Runs in a sandboxed environment with no egress to external networks.
- The dashboard gadgets and widgets read Jira with the permissions of the person viewing them, and cached results are kept per viewer.
- Uses scoped Jira API permissions: it reads work items and writes only progress values into the App's own custom fields.
- Does not store credentials, tokens, or secrets.
See our Security Policy for full details.
10. Children's Privacy
The App is a business productivity tool and is not directed at children under 16. We do not knowingly collect data from children.
11. Changes to This Policy
We may update this Privacy Policy from time to time. Changes will be reflected in the "Last updated" date above. Continued use of the App after changes constitutes acceptance of the updated policy.
12. Contact
For questions or concerns about this Privacy Policy, contact us at:
Email: support@janekbehrens.de