Findings sat in the backlog with no status change for two weeks, these are the ones losing money silently.
At a glance
The number of open Teamwork tasks withvortex_iq_finding_idwhoselast-changed-ontimestamp is older than 14 days. On Teamwork specifically this card has dual significance: stale tasks are an operations-discipline signal AND a billing-margin signal. Audit-finding tasks that sit untouched for 14+ days while logged time accrues against them are the agency’s silent-margin-leak pattern.
| What it counts | Open Teamwork tasks with vortex_iq_finding_id set, completed = false, status ∈ {new, reopened}, AND last-changed-on older than 14 days. The 14-day window is fixed by default; tunable per organization. |
| API endpoint | GET /projects/api/v3/tasks.json?completedOnly=false&updatedBefore={now-14d}&include=customfields paged via meta.page.hasMore. |
| What counts as “movement” | Any of: status change, assignee change, due-date change, comment posted, custom-field edit, time-tracking entry logged against the task, description edit, name edit. Teamwork updates last-changed-on on each. Note that on Teamwork (unlike most PM tools), time-tracking entries DO bump the timestamp, this is intentional from Teamwork’s data model. |
| Closed tasks excluded | Yes. The moment a task is marked complete, Teamwork’s webhook fires and the task drops from this count. |
| Archived projects | Excluded server-side. Archived Teamwork projects return no tasks via the API. |
| Project scope | All vortex_iq_outbound Teamwork projects across all connected Sites. |
| Time window | RT. The 14-day staleness clock is rolling, evaluated on every webhook event with a 60-second poll safety net. |
| Alert trigger | > 5 (warn), > 15 (critical). On agency Teamwork installations, even 5 stale tasks across the client portfolio is a billing/margin yellow flag. |
| Sentiment | Threshold-based, {warn: 5, critical: 15}. |
| Time zone | last-changed-on arrives as UTC; the cutoff is applied in UTC. |
| Multi-Site aggregation | Yes; per-Site stack panel available. |
| Roles | owner, operations |
Calculation
Calculated automatically from your Teamwork 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 ecommerce-focused agency running 6 retainer clients on Teamwork. Snapshot taken on 02 May 26 at 15:30 BST.| Teamwork project (client) | Open | Abandoned (>14d no movement) | Notes |
|---|---|---|---|
| Client A (Shopify Plus DTC apparel) | 7 | 1 | One product-image-CDN finding hand-balled to a freelance dev who never started. |
| Client B (Adobe Commerce homewares) | 5 | 4 | Four findings logged in mid-April; client paused the retainer for end-of-quarter, agency did not close the loop. |
| Client C (BigCommerce wellness) | 4 | 0 | Healthy; the account lead runs a weekly client check-in that closes everything. |
| Client D (Shopify food brand) | 3 | 1 | One finding parked while waiting on a vendor decision. |
| Client E (BigCommerce B2B) | 2 | 2 | Both findings 18+ days old; this is the relationship-cooling client from last week’s open-card example. |
| Client F (Shopify electronics) | 1 | 0 | Brand-new client, no time for staleness yet. |
| Total open | 22 | 8 | Warn threshold crossed. |
- Status in warn, sharp delta vs 30D average. 8 stale findings across 6 clients on an agency Teamwork is the leading indicator of margin compression on retainer relationships.
- Client B drives half the staleness. Four stale findings on a paused-retainer client is the textbook agency anti-pattern: the agency wrote findings, the client paused, the agency never went back to close the loop. Right action: close all four as Won’t Do with a comment, and re-create them when the client returns. This stops the stale items inflating the next month’s abandoned-rate report.
- Client E is the relationship-cooling marker, again. Two stale findings AND zero logged hours from last week’s example. This is the “client about to churn” composite signal. The single most actionable item on this entire dashboard is to schedule a Client E check-in this week.
- The Client A and Client D singletons are normal noise. One stale finding per active client per quarter is roughly the platform-typical rate; the action is the weekly triage call, not panic.
- The right operational discipline on Teamwork is the client-portal weekly check-in. Teamwork’s strength is the integrated client portal; agencies that publish the audit-findings list to the client portal as a recurring weekly artefact almost never have abandoned-rate problems, because the client itself surfaces the staleness.
Sibling cards merchants should reference together
| Card | Why pair it with Abandoned Findings | What the combination tells you |
|---|---|---|
| VortexIQ Findings Open | Abandoned is a subset of open. The ratio is the steadier read. | Abandoned ÷ Open above 30% means a third of the queue has gone dormant; on an agency this maps directly to retainer-margin risk. |
| Finding Resolution Rate (90d) | Resolution rate drops first, abandoned rises second. | Resolution falling for two weeks then abandoned spiking is the textbook capacity-collapse sequence; on agencies, also a paused-retainer signal. |
| Avg Time-to-Fix (days) | Distinguishes “slow but moving” from “abandoned”. | Time-to-fix rising AND abandoned rising = team starting then stalling. |
| Tickets by Assignee | Whether abandonment concentrates on one team member. | A single team member with several stale items across multiple clients is a workload-rebalance signal. |
| Sprint Progress | Whether findings are entering the agency’s sprint cadence. | Findings that never enter a sprint are the ones that abandon. |
| Throughput Weekly | All-task completion rate, not just findings. | Strong overall throughput with rising abandoned-findings means audit work is being deprioritised against billable feature work. |
| Scope Added Mid-Sprint | Mid-sprint client requests that crowd out audit work. | High scope creep + rising abandoned = the team is reactive to client urgency at the expense of audit closure. |
Reconciling against the vendor’s own dashboard
Where to look in Teamwork’s own UI:teamwork.com then for each connected project open Tasks. Click Filter and addWhy our number may legitimately differ from a saved Teamwork filter:Status → Active,Custom field: vortex_iq_finding_id → has any value,Last changed → before 14 days ago. Save the view as Stale Findings per project; or use the Reports module’s Tasks Overview report with the same filter applied across multiple projects for an agency-level rollup.
| Reason | Direction | Why |
|---|---|---|
| Time zone | Boundary day off | Teamwork’s UI uses your account-profile timezone; we apply the cutoff in UTC. |
| Time-tracking entries | Same | Teamwork bumps last-changed-on when time is logged against a task; this matches our card. Note this is a Teamwork-specific behaviour, on Asana/ClickUp/Linear etc. time logging does NOT bump the staleness clock. |
| Subtask handling | Either | Subtasks with their own vortex_iq_finding_id count separately for us; Teamwork’s filter may collapse them depending on view setting. |
| Custom-field deletion | Ours lower | If the custom field was cleared on a stale task, the task drops from our count even though it is still abandoned. |
| Multi-Site aggregation | Ours wider | Teamwork’s UI scopes to one Site; we sum across all connected Sites. |
| Webhook delay vs polling | Ours up to 60s stale | Webhook + 60-second poll. |
| Project archive | Ours lower | Archived projects return no tasks via the API. |
| Card | Expected relationship | What causes the divergence |
|---|---|---|
datadog.dd_incidents_active | Often correlated for engineering-heavy clients. A Datadog incident on Client X’s stack pulls the agency engineering capacity off Client X’s audit work. | Use the per-project stack panel here in Vortex IQ to attribute the incident impact to a specific client; this is the core agency-margin reasoning. |
newrelic.nr_open_incidents | Same shape. | Same. |
Known limitations / merchant FAQs
Teamwork shows my task last changed today (because I logged time) but you say it’s abandoned. What’s wrong? You may have logged the time against a different task. Open the task and check the Activity sidebar; if the most recent entry is more than 14 days old, our count is correct. Note: time-tracking entries DO bumplast-changed-on on Teamwork (unlike most other PM tools), so a single time entry should reset the staleness clock.
What counts as movement?
Any of: status change, assignee change, due-date change, comment posted, custom-field edit, time-tracking entry logged against the task, description edit, name edit. Time-tracking is the Teamwork-specific addition; this matches Teamwork’s data model.
The 14-day window feels appropriate for retainer clients but I have one client on a monthly cadence. Can I tune it?
Yes. Settings → Connectors → Teamwork → Abandonment threshold (days). The threshold is global per Teamwork connection, but agencies running multiple Sites can connect each Site separately and tune per Site.
A client paused their retainer and the findings are now stale. What’s the right action?
Close them as completed with a comment (“client paused, will re-create on resumption”) or delete them. If the agency convention is to retain history, mark complete with the comment, this stops them inflating future abandoned-rate reports. When the client returns, the audit programme will surface the issues again on the next run.
We have multiple Teamwork Sites. The count looks alarming.
Open the per-Site stack panel; on multi-Site agencies the staleness usually concentrates on one Site, often the regional one with the smaller team or the one with a paused client.
Resolution rate dropped, abandoned rising. What changed?
Standard playbook: (1) Tickets by Assignee for sudden concentration. (2) Per-project breakdown for which clients are driving the gap. (3) Throughput Trend for whether the agency overall is closing slower. On agency Teamwork, also check whether any client paused or churned in the last 4 weeks.
The abandoned count appears suddenly higher overnight. Why?
The 14-day clock keeps ticking even when no one is editing. If 5 tasks were last touched on the same day exactly 14 days ago, all 5 become abandoned at the same time the next day. Self-corrects within 24 hours of the team picking the queue back up.
Should I close abandoned tasks or fix them?
Both, depending on the client situation. The agency-specific framing is: paused-client tasks should be closed (re-create on resumption); active-client tasks should be reassigned and put in the next sprint. Teamwork’s project-level view makes this triage natural because the breakdown by client is one click away.
Is this the right card for my context, or should I focus on Findings Open?
On agency Teamwork specifically, this card carries dual significance: ops discipline AND retainer-margin signal. For agency owners, this is the more important card to watch because the abandoned-rate is a leading indicator of margin compression and client-relationship cooling, both of which show up here weeks before they show up in the P&L.
Why doesn’t Teamwork ship a built-in “abandoned” view?
Teamwork’s product strength is integrated time tracking and client-portal features; the “abandoned” overlay is operational discipline that works on top of the structured task data. Same applies to Asana, ClickUp, Linear, Monday, Trello, Basecamp, Smartsheet. None of them ship an abandoned-task primitive natively; all of them have task-modification timestamps we can read.