01 — The pageNothing here is green
This is Company settings as it would render against production today. Three of these four accounts cannot appear on the page at all right now.
No account is green. PartyPrints, which the shipped page calls Connected, has no Amazon Ads at all, six months of missing search-query data, and a daily inventory feed that has never delivered a row. eComHD is the closest — orders and financials same-day, Ads flowing — and it is still short nine datasets. Keto Vitals has no credentials and says so.
Culinary Couture's legal entity is shown as not recorded, because it is not recorded. Sticky will not infer it from the brand.
Every card now carries a Search query performance row. Read against production today, PartyPrints is missing six months of SQP and eComHD three — while every SQP queue row reads DONE and both SQP workflows are green. None of that has ever been visible anywhere in Sticky.
Company settings
Keep legal entities, brands, Amazon accounts, and runtime sellers explicit. Connected means the required data is flowing today.
- Workspace
- eComHD
Amazon accounts
Connected is a present-tense claim. Every account shows when it was last checked.
02 — One actionStuck accounts stop being puzzles
Today a blocked account shows a coded string and eleven checks to interpret. Here it leads with one sentence, says whose move it is, and keeps the evidence one click away.
Step through it. The detail and the stopping point are real controls, not pictures.
03 — The callHow stale is too stale?
This is the one decision I have not made for you. If required data has not refreshed, at what point does the account stop saying Connected?
Too tight and the badge flips on every transient miss, and you learn to ignore it — which is the problem we are fixing. Too loose and a real outage hides for days. My recommendation tolerates one missed nightly run and not two.
One missed nightly run
Evidence is 26 hours old · inside the window
Two missed nightly runs
Evidence is 2 days old · past the window
04 — Every stateIncluding the ones nobody wants
Each specimen below is the same component as the page above, rendered from different data. Marked Real account where it shows one of your four Amazon accounts in its real situation, and Representative where the state cannot be reproduced from production right now.
The required-check count in every card is derived from the stage registry — currently 12 stages. Add one and every card follows, or a test fails.
05 — What changedSeven corrections, one idea
The look is unchanged on purpose. This is a refinement of the shipped card, not a new page. What changes is what the card is allowed to claim.
| Thing | Shipped today | Proposed |
|---|---|---|
| Accounts shown | One. The page can only render an account that has both a manifest and a connection, so three of four are invisible. | All four, each with its real situation and a path forward. |
| Connected | Eleven setup-day receipts with no age condition, out of the 70 seller-scoped datasets Sticky actually collects. Optional sources were defined as unable to block it, so a missing capability kept the badge green. | Every dataset the account should be receiving, arriving now. No required or optional split. Anything missing means not green. Zero rows returned by Amazon counts as arriving; silence does not. |
| A stuck account | A reason code mapped to a sentence, or a fallback naming the stage. No owner, no stopping point. | One action, attributed to you or to Sticky, with per-check detail and the stopping point one click away. |
| Amazon Ads | A static “Optional” row, plus an optional-health line reading ads · Current · 3 days ago · not configured for a capability that was never authorized. | One live row, three real states. Never reads Current when it was never set up. Still never blocks Connected. |
| Search query performance | Nothing. No lifecycle stage, no freshness check (excluded on purpose, since a 26-hour threshold would false-alarm a monthly source), and a hardcoded seller list in its own workflows. Gaps are invisible. | Its own named row stating coverage, not just recency — the period it is complete through, and how many earlier periods are missing, with a way to request them. Still never blocks Connected. |
| The count |
TOTAL_REQUIRED_STAGES = 11, hardcoded, while the registry
defines twelve.
|
Derived from the registry, with a test that fails when the two disagree. |
| The nightly |
The eligibility cutover shipped; the schedule still runs
legacy. Switching it today would silently stop eComHD and
Culinary Couture.
|
Settled in the open: legacy stays and is documented as the
live selector until every account it would drop has been proven.
|
For comparison — the card as it ships today
PartyPrints, rendered from the same production row by the current page.
06 — What I needTwo decisions, three confirmations
Approve the direction and this becomes the technical plan. Nothing is built, deployed, or changed in production until you do.
1The freshness window
At what age does required data stop counting as current — 24 hours, 40 hours, or 72 hours?
My recommendation: 40 hours. One missed nightly passes quietly, two does not.
2The words on the badge
A stale account currently reads Not connected today. Your approved map calls this state “Connected, something delayed” only for optional sources — required staleness had no agreed label.
My recommendation: keep “Not connected today”. It is the honest reading, and it is distinct from “Not connected”, which means no credentials.
✓Settled today
Connected means connected and all the data arriving; anything missing means not green. That overturns the 15 September decision that optional capabilities could not block readiness, which is what let PartyPrints sit green with no Ads.
Already built into this page and the spec. Nothing further needed from you.
3Getting to green
Under your rule nothing is green until the gaps close. PartyPrints needs Ads authorized and six months of search-query data; eComHD needs three months and a Notifications endpoint; Culinary needs Ads, its legal entity, and eleven months.
My recommendation: this package makes it all visible and requestable per item. The backfills themselves are their own job, so you can see the holes before anyone refills them.
4What stays out
Amazon Ads authorization itself, the unresolved Slack identity, QBO, and accounting posting are deferred operational work. This package only makes the Ads row tell the truth about whatever state that work is in.
Confirm that boundary holds.