Silence is a project signal

Projects rarely announce that they are going wrong. They go quiet. The status update arrives on time and says nothing, the board stops moving in a way nobody logs, and the last client conversation slides from a fortnight ago to six weeks ago without a single alert.

A configurable gap warning, driven by a setting rather than a hard-coded number.

Why reported status fails here

A status field is somebody's opinion, typed under mild social pressure. Green is the polite answer when the real answer is complicated.

Worse, status is only updated when someone remembers. A project nobody is thinking about is exactly the project whose status goes stale, so the field is least reliable when you need it most.

Absence has the opposite property. Nobody has to remember for a gap to appear. A meeting that did not happen leaves a trace automatically.

The warning, and where the number comes from

The portfolio view shows each project with health, setup and task scores, its client and contact, milestones, and when it was last touched. It also shows how long since the last meeting.

Past a threshold, that becomes a warning on the card. No meeting in thirty-six days is a sentence that starts a conversation.

The threshold is a tenant setting with a default of fourteen days, not a number fixed in the code. A retained support engagement and a discovery project have different natural rhythms, and one number cannot serve both.

Why the meeting record has to be automatic

A gap warning built on manually logged meetings measures diligence, not delivery. The projects with careful project managers look busy and the neglected ones look fine.

So meetings import on their own, through the transcription integration, with their transcript and duration, filed against the project they belong to.

The filing is where it gets messy in practice. Meetings arrive unassigned, or attached to the wrong project. The list has an unassigned filter and a move action for exactly that, plus import by identifier for the ones that never arrived. A signal nobody can correct stops being trusted within a month.

  • Meetings import automatically with transcript and duration.
  • An unassigned filter, so unfiled meetings are visible.
  • A move action to reassign a meeting to the right project.
  • Import by identifier for meetings that never came through.
  • A gap threshold set per tenant, defaulting to fourteen days.

Reading the warning honestly

A gap is a prompt, not a verdict. A project mid-build with a client who prefers written updates will trip it every month and be perfectly healthy.

Some gaps are legitimate, and repeated false alarms are a reason to change the threshold rather than ignore the warning.

What the warning buys you is that the question gets asked. Six weeks of silence should be a decision, not something you notice when the renewal conversation starts.

Other silences worth watching

Meetings are the easiest absence to spot, and not the only one.

A board that has not moved. Tasks can stay in one column for a fortnight while the status field says everything is fine, and the board does not need anyone to remember to update it either.

Hours that stopped. A project quietly dropping from thirty hours a week to four is a decision somebody made without telling anyone.

A milestone date that passed. Not a slipped date, which gets discussed, but one that went by without comment.

Each of those is generated by what happened rather than by what was reported. That is the property worth collecting them for.

Setting a threshold you will not ignore

A warning everyone dismisses is worse than no warning, because now the screen has taught people to skip a colour.

So set the number from how your projects actually run, not from an ideal. Look back at the last quarter and find the gap length that genuinely preceded trouble.

If the warning fires on half the portfolio every week, the number is wrong. Raise it until a warning is unusual, then treat each one as a question with a name against it.

And review the number twice a year. A company whose delivery rhythm changed will have a threshold describing the old one.

Why the client side of it matters most

Internal silence is recoverable. A team that stopped talking to each other notices within a fortnight, because the work stops moving.

Client silence is different. Work continues, invoices go out, everyone feels productive, and the relationship quietly stops being managed.

That is where a renewal gets lost, and it is almost never lost over a delivery failure. It is lost because nobody on the client side has heard from anyone in two months and the internal advocate moved on.

The flag for a meeting with no client present is aimed at exactly this. Plenty of internal meetings about a project are healthy. A month of only internal meetings about a project is a different signal.

Worth separating the two in your own head when you read a gap. Forty days without a client conversation is a bigger number than forty days without any.

Questions people ask

What is the default meeting gap threshold?

Fourteen days. It is a tenant setting, so you change it to match how your projects actually run.

Do meetings have to be logged by hand?

No. They import automatically through the transcription integration, with transcript and duration, filed against a project. Misfiled ones can be moved.

What else does the portfolio view show per project?

Health, setup and task scores, client and contact, status and priority, billable and fixed-price flags, milestones, and when it was last updated.