Channel card — treatment 2, resolved

The solid status pill you picked, with the three things you flagged fixed.

1 · The pill no longer competes with the badge. The channel badge was a filled, text-bearing chip sitting beside a filled, text-bearing status pill — two of the same object. The channel is now a small brand mark plus its name in ink, so the status pill is the only filled element on the card and wins by default.

2 · The gate chips are gone. Three soft-tinted chips reading "Comments live · Moderation live · DMs off" were key:value crammed into decoration. They are now aligned rows — surface on the left in muted, state on the right in its own colour, on one spine. Same pattern as the spec sheet that worked.

3 · The trend captions now have rules, or they are not there. See below.
Instagram@silveroakproperties Receiving
Comments
116
Most in two weeks
Messages
34
None answered
Replies to commentsLive
Hides bad commentsLive
Answers messagesOff
WhatsApp+971 4 512 8840 Disabled
Messages
0
Nothing for 3 days
Answers messages3 test numbers
Quality ratingHigh
Sent today0 of 1,000
FacebookSilver Oak Properties Gone quiet
Comments
12
Messages
Replies to commentsWaiting for your OK
Hides bad commentsWaiting for your OK
Answers messagesNot built

The trend caption is a rule, or it is blank

You called these a promise. Each one is now a stated condition on the series; when none fires the slot stays empty, which is why Facebook's two tiles carry no caption above. The slot keeps its height so cards stay aligned. "Drifting down all fortnight" is deleted — it was a slope judgement I could not defend, and a vague trend claim is worse than silence.

CaptionFires whenNeeds
Most in two weekstoday > max(previous 13 days)the 14-point daily series
Fewest in two weekstoday < min(previous 13 days) && today > 0the 14-point daily series
Nothing for N daystoday === 0 && the last N days are all 0the 14-point daily series
None answeredinbound > 0 && outbound === 0today's counts only — no series needed
(blank)everything elsenothing
Drifting down all fortnightdeleted — an undefendable slope claim

What each channel shows, and why only that

You said not every condition — just what matters per channel. The surface rows differ per channel on purpose, because the channels genuinely differ.

ChannelRows shownLeft out, and why
InstagramReplies to comments · Hides bad comments · Answers messagesComment → DM omitted. It is off, and while DMs are also off it cannot do anything, so it is a setting with no consequence. It appears only once DMs go live.
FacebookReplies to comments · Hides bad comments · Answers messagesSame. "Not built" is kept rather than hidden, because a blank would read as off, and off is a choice you could reverse.
WhatsAppAnswers messages · Quality rating · Sent todayNo comment rows at all — WhatsApp has no comments. Quality and the daily limit appear here and nowhere else, because they exist for WhatsApp alone.

The canary state is spelled out, not abbreviated. WhatsApp reads "3 test numbers" rather than "Canary" or "Live", because everyone not on that allowlist silently gets no reply at all, and that is the single most misreadable state in the product.

What this card needs from the refactor, in the order I would do it.
· Facebook on the payload — a third member of HomeChannel, a facebook key in WEBHOOK_SOURCE so silence and mute work, a facebook key in HomeToday.messages, and its errors. Without this the whole Facebook card is fiction.
· Comments and messages counted apart — the two tiles need two numbers; today Instagram's figure is the comment stream alone.
· The remaining six gates — the surface rows read instagram:dms, facebook:comments, facebook:comments:moderation and facebook:dms, none of which reach the browser.
· The 14-point daily series per channel — the sparkline and three of the four captions. The cheapest to defer: without it the tiles keep their figures and lose the line, and only "None answered" survives.
· The canary list lengthcanaryIds is resolved server-side but its count is not sent.