Skip to content

Weekly client update

Every Friday. Same time, same shape, written. Three sections: what shipped · what is in progress · what is blocked. Under 200 words. The discipline is consistency, not eloquence — a client who reads ten weekly updates that look the same has a model of the team.

TL;DR

A weekly client update is three sections, under 200 words, sent every Friday before the team's wrap. The same time, the same shape, the same channel. What shipped · in progress · blocked. It is what makes the bi-weekly sync a conversation, not a download. A client who first hears something at a sync that wasn't in the prior weekly update is a client whose no-surprises contract is broken.

What it is

The weekly client update is named in Did We Serve · The Ongoing Relationship. It is written — not a meeting, not a Slack thread, not a Loom video. The PO writes it, before the team's Friday wrap. It goes to the named client contact in their preferred channel (most often email, sometimes a shared Notion page or Confluence space).

Distinguish from

Bi-weekly sync — spoken; signal readings + decisions. Release brief — sent before flag-flip, bound to a specific release. Status page — operational; uptime and incidents only. See Confusable with at the foot.

Why it matters

Without the weekly update:

  • The bi-weekly sync becomes a download. Half the time is spent telling the client what happened, leaving no time for decisions.
  • The client invents narratives. Silence is read; in the absence of an update, the client constructs a worse story than the team would have told.
  • Surprises accumulate. The client first learns of slippage, scope cuts, or incidents in person, not in writing — the no-surprises contract breaks.
  • The team has no record of the cadence. Three months later, nobody can answer what did we ship in week 7? without git archaeology.

The update is short on purpose. Under 200 words forces honesty; longer updates hide.

How to do it

Step 1 — Same time, same channel, same shape

Pick once: which day, which time, which channel. Do not vary. Friday 16:00 in email is the corpus default. A client who reads ten updates at the same time on the same day has a model of when the team works.

Step 2 — Three sections, in order

text
Subject: 200apps × [client name] · Week of [date]

WHAT SHIPPED THIS WEEK
- [Shipped item 1 — named in the client's language, with a
   one-line outcome they can recognise.]
- [Shipped item 2]

IN PROGRESS
- [Item 1 — what it is, expected ship date.]
- [Item 2 — what it is, expected ship date.]

BLOCKED
- [Blocker 1 — what is blocked, who/what is blocking it,
   what would unblock it.]
[OR: "Nothing blocked this week."]

Best,
Alex

What shipped is past tense, observed. In progress is current, with a dated commitment. Blocked names the constraint; if nothing is blocked, say so — empty is data.

Step 3 — Under 200 words

The corpus rule: if the update is longer than 200 words, the team has either shipped a quarter's worth of work this week (unlikely) or has hidden bad news in volume. Cut.

If a particular item needs more than two lines, it is bound for the bi-weekly sync, not the update.

Step 4 — Send before the team's wrap

The update goes before 17:00 Friday in the client's local time. Sending Monday morning is not a weekly update — it is a delayed Friday update. The discipline holds because the team writes the update while the week is still in memory.

Step 5 — The update feeds the sync

The next bi-weekly sync reads against the two prior weekly updates. Any item the sync surfaces that wasn't in either of the two preceding updates is a no-surprises failure — name it as such, not as a normal agenda item.

A complete weekly update

text
Subject: 200apps × Acme University · Week of 2026-05-18

WHAT SHIPPED THIS WEEK
- Hebrew-name grading flow enabled for the first cohort of
  six graders. First-48-hour watch closed clean; median
  focused-grading time at 13 min on partial observation
  (target <15).
- Per-tenant rate-limit override for the new endpoint. Tests
  passing in staging; not yet flag-flipped to production.

IN PROGRESS
- Cohort 2 rollout (additional 8 graders) — flag-flip
  planned 2026-05-21 after one more day of cohort 1 watch.
- Cold-cache warming job — Story re-prioritised after last
  week's INC-058 postmortem; live in production by 2026-05-30.

BLOCKED
- Nothing blocked this week.

Next sync: Thursday 2026-05-29 · 15:00 GMT+3.

Best,
Alex

172 words. Three sections. Same shape as last week. Read in 60 seconds.

Copy the template →

Evidence

Across our client engagements, weekly updates that protected the relationship shared three properties.

  1. They were sent at the same time every week. Updates sent on the same weekday within a one-hour window in 80%+ of weeks produced bi-weekly syncs that closed in 45 minutes. Updates with variable timing produced syncs that ran 60–90 minutes.
  2. They named blockers honestly. Updates that wrote Nothing blocked when something was actually blocked produced surprise-driven escalations 3× more often than updates that named the blocker, even when the blocker was uncomfortable.
  3. They were under 200 words. Updates over 300 words were read by the client in 40% of weeks; updates under 200 words were read in 90%+.

Anti-patterns

PatternWhat it looks likeWhere to fix
Variable shapeDifferent sections each weekSame three sections, every week. Consistency is the contract.
Variable timingSometimes Friday, sometimes MondayPick once; do not vary.
Hidden bad newsA blocker is paraphrased as "in progress"Move it to BLOCKED. Honesty is the discipline.
Update becomes a sync500 words, multiple sub-sectionsCut. Surplus belongs at the bi-weekly sync.
Update never sent the week of a slipThe PO ducked the awkward weekSend anyway. We slipped X, here's what's changing is the corpus's discipline.
Update sent to no oneDistribution list is unclear; nobody knows who reads itName the recipient list; confirm the client reads it. If they don't, the update isn't doing its job.

Confusable with

ThisNot thisDifference
Weekly updateBi-weekly syncUpdate is written, one-way, short. Sync is spoken, two-way, longer.
Weekly updateRelease briefUpdate spans everything this week; release brief is bound to one release.
Weekly updateStatus pageStatus page is operational uptime; weekly update is project state.
BlockedAt riskBlocked means the team cannot proceed. At risk belongs in IN PROGRESS with a named risk.

Further reading

200apps · How We Work · NWIRE