How fast we get findings into Jira after detection. Slow dispatch = cold leads by the time the ops team sees them.
At a glance
p95 of time-from-finding-detection-to-Jira-ticket-existence over the trailing 30 days. Measures the responsiveness of the Vortex IQ → Jira dispatch pipeline. Healthy dispatch is sub-2-minute p95; anything north of 2 hours means findings are arriving cold to a team that has already moved on to something else.
| What it counts | p95(jira.tracker_item.created_at - audit_finding.created_at) over the trailing 30 days, for findings that have a Jira ticket. Findings without a ticket are out of scope here, see Critical Findings Without a Jira Ticket for that gap. |
| Why p95 not avg | The merchant cares about the worst-case dispatch experience, not the typical one. Avg is misleading because batch-dispatch is fast for the median and slow for the tail. p95 cleanly captures the experience of the slowest 5 percent of findings, which is where the operational pain lives. |
| Why merchant-impact matters | Slow dispatch erodes the audit→fix loop’s value. A finding detected at 09:00 and ticketed at 09:01 lands while the audit context is fresh; the same finding ticketed at 16:00 lands six hours after detection, by which time the audit run, the page deploy that caused it, and the customer-impact wave have all moved on. The team treats it as a backlog item, not an incident. |
| Typical lag sources | (1) Atlassian API rate-limit backpressure (most common). (2) Bulk-create stampede after an audit cycle that produces 50+ findings simultaneously. (3) Token rotation gap (lag temporarily infinite during the rotation window). (4) Custom-field validation failure causing the API call to retry. (5) Jira project being archived mid-dispatch. |
| Bulk vs individual dispatch | Vortex IQ uses Atlassian’s bulk-create endpoint (POST /rest/api/3/issue/bulk) when 5+ findings dispatch in a 60-second window, individual POST /rest/api/3/issue otherwise. Bulk-create’s p95 is typically 3 to 10 seconds; individual is sub-2 seconds. Lag rising past 60 seconds means either rate-limit backpressure or a pipeline-side bug. |
| Severity weighting | All severities count equally toward p95. Critical findings dispatched 2h late are no less of an alert than Medium findings dispatched 2h late, but the consequence of late Critical dispatch is materially worse; pair with Critical Findings Without a Jira Ticket to see severity context. |
| Refresh cadence | Recomputed every 5 minutes. The 30-day rolling p95 is robust to short-window noise. |
| Time window | 30D (rolling 30 days). |
| Alert trigger | >2h p95. Anything beyond 2 hours indicates pipeline degradation worth investigating; healthy is sub-2-minute. |
| Roles | owner, operations |
Calculation
Calculated automatically from your Jira data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
A UK retailer on Shopify, mid-sized team, audit cycle runs every 6 hours. Reading taken at 11:00 GMT on 04 Apr 26, 30-day window covers 05 Mar 26 to 04 Apr 26.| Percentile | Lag (detection to ticket) |
|---|---|
| p50 | 1.4 seconds |
| p75 | 4.2 seconds |
| p90 | 12.8 seconds |
| p95 (this card) | 47 seconds |
| p99 | 38 minutes |
| max | 4 hours 12 minutes |
>2h p95 is comfortably clear (well under threshold).
What this tells the merchant:
- Healthy dispatch. Sub-minute p95 is the gold standard. The audit team can trust that any finding the merchant looks at the next morning was filed within seconds of detection, the audit and the ticket reference the same world.
- The p99 of 38 minutes flags a bulk-create stampede. Once or twice in the 30-day window an audit cycle produced 80+ findings simultaneously (typically the post-deploy audit after a major release); Atlassian’s bulk-create endpoint rate-limited the burst, and the slowest 1 percent of dispatches sat in retry-with-backoff for up to 38 minutes. Pair with API Rate-Limit Headroom to see the corresponding headroom dip.
- The 4h 12m max is the token-rotation gap. On 23 Mar the merchant rotated their Atlassian token; for ~4 hours during business hours the dispatch pipeline retried-with-backoff until the new token was in place. The findings filed during that window dispatched as soon as the token was active. This is normal during planned rotations; the Atlassian Token Expiry Imminent card prompted the rotation.
Sibling cards merchants should reference together
| Card | Why pair it with Finding-to-Ticket Dispatch Lag | What the combination tells you |
|---|---|---|
| Critical Findings Without a Jira Ticket | The hard-failure side. Lag is degrading; this is when degradation tips into outage. | Lag rising for 24h then this card going non-zero is leading-then-lagging, dispatch was slow then stopped. |
| Atlassian Token Expiry Imminent | Most common cause of lag spikes. | If both fire, rotate the token; lag returns to baseline within minutes. |
| Rate-Limit Exhausted | Second-most-common cause. | If both fire, throttle-back the dispatch rate or upgrade the Atlassian plan. |
| API Rate-Limit Headroom | Real-time leading indicator. | Headroom <30% predicts p95 dispatch lag rising; address before this card fires. |
| VortexIQ Findings Open | Downstream count. | Lag rising plus open count climbing equals queue building because ingestion is slowing, not because the team is slowing. |
| Open Tickets | Total Jira queue. | Helps separate Vortex IQ-specific dispatch issues from generic Atlassian-side latency. |
| Cross-connector: Datadog API Error Rate | Adjacent connector latency / error peer. | Multiple connector lags rising together points to network or Vortex IQ infrastructure, not Atlassian-specific. |
| Cross-connector: GitHub Action Dispatch Lag | Same pattern, different tracker. | Cross-tracker dispatch latency benchmark; Atlassian and GitHub typically run within an order of magnitude of each other. |
Reconciling against the vendor’s own dashboard
Where to look in Jira: Jira does not publish per-ticket creation latency anywhere in the UI; it only records thecreated timestamp. To verify this card’s reading, you would compare the created timestamp on a Vortex-IQ-filed ticket against the corresponding Vortex IQ audit-finding detected_at timestamp:
- Open Vortex IQ → Audit → Findings → pick any recent finding → note
detected_at. - Click through to the linked Jira ticket → note Jira’s
createdtimestamp. - The difference is the per-finding dispatch lag.
| Reason | Direction | Why |
|---|---|---|
| Time zone display | Either | Jira’s UI shows ticket created in user-local TZ; Vortex IQ stores in UTC. A spot-check made without TZ-normalising can look wildly wrong. |
| Sampling vs full population | Spot-check noisier | A single spot-checked finding tells you nothing about p95; only an aggregate over 30 days is meaningful. Don’t base a verdict on one ticket. |
| Replay / backfill writes | Spot-check overstated | If Vortex IQ replays a missed finding (e.g. after a backfill), the detected_at is the original detection moment but the created_at is the replay moment, lag looks high. The aggregate p95 excludes replays via a is_replay = false filter. |
| Manual ticket creation | Excluded | Tickets created manually in Jira (without Vortex IQ dispatching) are excluded from this metric, they have no audit-finding pair. |
| Polling jitter | Sub-second noise | Vortex IQ’s audit detection runs in a 60-second poll loop; the detected_at timestamp resolves to the poll instant, not the underlying-event instant. Adds <60 sec noise at the floor. |
| Card | Expected relationship | Causes of legitimate divergence |
|---|---|---|
github.gh_workflow_lag | Same dispatch-latency pattern, different vendor. | Atlassian and GitHub APIs have different rate-limit shapes; absolute numbers are not comparable, but trend direction often correlates if the cause is Vortex IQ-side. |
datadog.dd_api_error_rate | Connector-side latency / error peer. | Datadog rising while this card holds equals connector-specific issue; both rising together equals broader Vortex IQ-side or network issue. |
audit_finding registry | This card’s domain. | Findings in the registry without a corresponding Jira ticket pair are excluded from the lag computation but counted in Critical Findings Without a Jira Ticket. |