Voice July 2026 microcopy.md

Microcopy Inventory

The full transcript of every product line on 41 pages, plus where screens say the same thing in different words. By the end of the phase this is the source of truth, with a "was" and a "became" column.

This inventory is Step 1 output. By phase end it gains "was" and "became" columns; nothing here is rewritten yet. It is what the Voice rules are measured against, not the rewrite itself.

Rewrite log (was / became)

The running record of every product line changed in Steps 5 to 7, screen by screen. Step 5 does the sample (the Home set); Steps 6 and 7 add the rest. Lines not listed for a rewritten screen were checked against voice.md and already conform.

The voice was applied to all 41 pages. Home set the sample, the rest rolled out by subagents, and an adversarial four-reviewer pass caught the last misses. Alerts, Cancel Guide, Upgrade, and Settings were already fully in voice.

Home set (Step 5 sample, done)

Updated after publishing, 2026-08-20: the inventory further down now carries three screens that did not exist when this page was written - home-one, home-few and upgrade-renewal-failed, the count ladder and the failed renewal. The rewrite log is history and is not re-opened; the lines for the three new pages were authored against voice.md rather than rewritten from anything. And on 2026-08-21 it lost one: home-savefocus was retired with the Save tab, so its four candidate lines moved onto home as the cancel nudge and its savings line was folded into them. The rewrite log above still names the retired page, and deliberately: a log records what was decided on the day it was decided, and renaming its subject afterwards would make the record say something that did not happen.

All five Home pages (home, home-empty, home-error, home-loading, home-savefocus) were checked line by line against voice.md. Home was the hand-built reference for the whole wireframe set, so it already embodies the voice: only two lines needed normalizing. Structure and markup were not touched, only text.

ScreenZoneWasBecameRule
homeadd-action+ Add subscriptionAdd a subscriptionDictionary D1: one label for the add-one affordance, matching home-empty; drops the decorative "+".
home-savefocussummary-strip... by cutting 2 you might not use.... by cutting 2 you might not be using.Consistency: the recurring cancel-candidates phrase is "you might not be using" (home base, guided-reveal).

Verified already-conformant on the Home set (no change needed), the anchors the rollout must preserve:

Step 6: rollout to the remaining 15 screens (done)

Every non-Home screen was rewritten by one subagent per screen, all writing to voice.md, then reconciled here. 37 lines changed across 11 screens; 4 screens (Alerts, Cancel Guide, Upgrade, Settings) were already fully in voice. Structure, markup, reviewer annotations, aria-labels, user content, and data fixtures were not touched (only visible product copy).

ScreenZoneWasBecameRule
welcomeheroRead-only, we can never move your money.Read-only, we cannot move your money.D7 (firm verb "cannot" in a "we" sentence)
welcomehow-it-works... by hand from 400+ presets.... by hand from 400+ services.D5/D6 (catalog term is "service")
welcometrust... but can never move, spend, or touch your money.... but cannot move, spend, or touch your money.D7
path-choicepath-optionFast and automatic. Read-only, we can never move your money.Fast and automatic. Read-only, we cannot move your money.D7
connect-banktrust-noteWe read your recurring charges, read-only. We can never move your money. Powered by Plaid.We read your recurring charges, read-only, through Plaid. We cannot move your money.D7 + D8 ("through Plaid", not "Powered by")
connect-bankprimary-actionChoose your bankConnect your bankD2
connect-bankprimary-actionAdd them yourself insteadAdd them yourselfD1 (drop "instead")
connect-bank-errorprimary-actionAdd them yourself insteadAdd them yourselfD1
add-subscriptioncustom-fallbackAdd it manuallyAdd it by handD1 (avoid "manually")
add-subscriptionprimary-actionSee my listSee your subscriptionsD3 (second person)
add-subscription-emptyprimary-actionAdd it manuallyAdd it by handD1
add-subscription-emptyprimary-actionSee my listSee your subscriptionsD3
add-subscription-errorprimary-actionTry the list againTry againD4
add-subscription-errorprimary-actionSee my listSee your subscriptionsD3
add-subscription-loadingstate-messageLoading services...Getting the list of services. This usually takes a moment.D10 (loader pattern)
guided-revealreveal-stepYou are subscribed to 14 things.You're paying for 14 subscriptions.D5 ("subscriptions", not "things"); matches Home summary
guided-revealprimary-actionSee my full listSee your subscriptionsD3
subscription-detail-errorstate-messageBack to HomeBack to your subscriptionsD3
cancel-winwin-summaryNice. You just cancelled Netflix and freed up $17.99 a month.You just cancelled Netflix and freed up $17.99 a month.D12 / Principle 5 (drop praise interjection)
cancel-winshareFeeling good about it? You can share a simple card. No bank details, ever.You can share a simple card. No bank details, ever.D12 (drop performative emotion prompt)
cancel-wincontinueDone, back to my listBack to your subscriptionsD3
share-snapshotcontinueDone, back to my listBack to your subscriptionsD3
share-snapshot-errorsecondary-actionDone, back to my listBack to your subscriptionsD3
share-snapshot-loadingheadingCreating your card...Making your cardD10 (no gerund-plus-ellipsis; matches its message line)
history-trendsheaderYour subscriptionslink
history-trendsheaderYour trendsheading
history-trendsheaderProstatus
history-trendsheaderHow your monthly total has moved over time. Nothing to act on here, just the shape of it.body
history-trendstime-range3 months / 6 months / 12 monthsbutton
history-trendschart-areaYour monthly total went from $172.90 in May to $192.90 in July, up about $20 across three months.body
history-trendstrend-listWhat movedheading
history-trendstrend-listUp $2.50 since May, now $17.99 a monthbody
history-trendstrend-listNew since June, $20.00 a monthbody
history-trendstrend-listNo change since March, $17.00 a monthbody
history-trendstrend-listHigher / New / Steadystatus
history-trendstrend-listBy categorybody
history-trendstrend-listStreaming is up $6 since March. Everything else held steady.body
history-trendsexportExport as CSVbutton
history-trendsexportYour history as a spreadsheet, for reading it somewhere else. Part of Tendd Pro. A plain copy of everything we hold is free and lives in Data and privacy.body
history-trends-lockedheaderFreestatus
history-trends-lockedlockTrends are part of Tendd Proheading
history-trends-lockedlockYour list, your total and your alerts stay free and uncapped. What Pro adds here is the past:body
history-trends-lockedlockHow your monthly total moved, over 3, 6 or 12 monthsbody
history-trends-lockedlockWhich subscriptions went up, which are new, which held steadybody
history-trends-lockedlockYour history as a spreadsheetbody
history-trends-lockedprimary-actionSee what Pro addsbutton
history-trends-lockedexportA plain copy of everything we hold about you is free, and it is in Data and privacy. This is the analytical export, which is the Pro one.body
history-trends-emptystate-messageStill gathering your historyheading
history-trends-emptystate-messageTrends need a few months to be worth looking at, and we have less than three so far. Come back in a few weeks and the shape of your spending will be here.state-message
history-trends-emptychart-areaTwo months so far. Your first trend line appears once September closes.body
history-trends-emptyprimary-actionBack to your subscriptionsbutton
history-trends-emptyreassuranceNothing is missing and nothing failed. Your list, your total and your alerts are all working as usual.body
history-trends-loadingstate-messageAdding up your last few months. This usually takes a moment.state-message
history-trends-errorstate-messageWe could not load your trendsheading
history-trends-errorstate-messageSomething on our side did not answer. Your subscriptions, your total and your alerts are not affected: this is only the history view.state-message
history-trends-errorprimary-actionTry againbutton
history-trends-errorsecondary-actionBack to your subscriptionsbutton
history-trends-errorreassuranceNothing about your plan or your data changed. If it keeps happening, tell us and we will look at it.body
upgradeheaderCloselink
upgradeheaderTendd Proheading
upgradeheaderFreestatus
upgradeheaderPay less per month than most of the subscriptions you will cancel.body
upgradecontextYou came here from Your trends. History and trends are part of Tendd Pro.body
upgradefeature-listHistory and trends (3, 6 and 12 month views)body
upgradefeature-listAdvanced alerts (Trial ending, unusual, duplicate)body
upgradefeature-listFull cancel guides (Step by step, with the direct link)body
upgradefeature-listExport (Your history as a spreadsheet)body
upgradeprice$69 a yearheading
upgradepriceThat is $5.75 a month. Our calmest option, and it saves about $27 a year versus paying monthly.body
upgradepriceBest valuestatus
upgradeprice$7.99 a monthheading
upgradepriceMonth to month. Cancel any time, no lock-in.body
upgradepriceLifetimeheading
upgradepriceOne payment, and Tendd Pro stays open. For people who would rather never think about a renewal again.body
upgradeprice[? D4, the lifetime price, $99 to $139, is still being decided]body
upgradeprimary-actionStart Tendd Pro - $69 a yearbutton
upgradeprimary-actionMaybe laterbutton
upgradeprimary-actionPays for itself with the first subscription you cancel.body
upgrade-processingstate-messageSetting up your Pro planheading
upgrade-processingstate-messageThis takes a few seconds. Do not close this page, and nothing is charged twice if it takes a moment longer.state-message
upgrade-processingcontextWhen it is done you go straight back to Your trends, open.body
upgrade-payment-failedstate-messageThat payment did not go throughheading
upgrade-payment-failedstate-messageYour bank did not approve it, so nothing was charged. This happens most often with a card that has expired or a bank that wants to confirm a new payment.state-message
upgrade-payment-failedfactsWhat was charged: Nothing. There is no payment to reversebody
upgrade-payment-failedfactsYour plan: Still Free, and everything free is still workingbody
upgrade-payment-failedprimary-actionTry another payment methodbutton
upgrade-payment-failedsecondary-actionMaybe laterbutton
upgrade-payment-failedreassuranceYou can come back to this from any Pro feature. Nothing about your subscriptions or your data changed.body
upgrade-current-planappbar‹ Backlink
upgrade-current-planappbarProstatus
upgrade-current-plantitleYou are on Tendd Proheading
upgrade-current-plantitleEverything below is open to you. Nothing here needs doing unless you want to stop.body
upgrade-current-planfactsYour plan / Tendd Pro, yearlyfield-label
upgrade-current-planfactsRenews / 1 May 2027, at $69field-label
upgrade-current-planconsequenceCancelling keeps everything you can see without Pro. Your subscriptions, the monthly total and the basic alerts are Free and uncapped, and they stay. History, trends and the advanced alerts close at the end of the period you have already paid for, on 1 May 2027, and you can start Pro again any time.body
upgrade-current-planprimary-actionCancel Tendd Prolink
upgrade-current-planfeature-listHistory and trends (3, 6 and 12 month views)body
upgrade-current-planfeature-listAdvanced alerts (Trial ending, unusual, duplicate)body
upgrade-current-planfeature-listFull cancel guides (Step by step, with the direct link)body
upgrade-current-planfeature-listExport (Your history as a spreadsheet)body
upgrade-current-planlaterBack to your settingslink
connectionsconnection-rowBank connection via PlaidBank connection through PlaidD8
connections-reconnectconnection-rowBank connection via PlaidBank connection through PlaidD8
connectionsconnection-rowRead-only, cannot move moneyRead-only, cannot move your moneyD7 (keep "your")
connectionsconnection-rowAdd another by handAdd a subscriptionD1 (canonical add-one affordance)
connectionsadd-sourceConnect a bankConnect your bankD2
connectionsadd-sourceAdd manuallyAdd them yourselfD1 (manual method)
connections-emptyempty-inviteConnect a bankConnect your bankD2
connections-emptyempty-inviteAdd manuallyAdd them yourselfD1
connections-emptyempty-inviteConnect a bank to find your subscriptions...Connect your bank to find your subscriptions...D2 (same-screen prose consistency)
data-privacyprivacy-sectionWe can never move your money.We cannot move your money.D7
data-privacyprivacy-sectionRead-only transaction history via PlaidRead-only transaction history through PlaidD8

Fully conformant, no change (verified line by line): Alerts (and states), Cancel Guide (and states), Upgrade, Settings. Their in-voice anchors: the alert lines name the actor in active voice ("A payment to Amazon Prime did not go through"), Cancel Guide keeps the reversible-action framing ("you can always resubscribe later") and the non-judgmental "it is not your fault", Upgrade keeps the single dismissible Pro gate with "Maybe later", Settings keeps its plain notification copy.

Cross-screen consistency (checked after the rollout). The canonical labels now read identically everywhere they appear: "Back to your subscriptions" (7 pages), "See your subscriptions" (4), "Connect your bank" (5), "Add them yourself" (6), "through Plaid" (6), and the read-only line "cannot ... your money" on every trust surface. The manual-add family carries three distinct labels on purpose, one per action: "Add them yourself" (the method, paired against Connect your bank), "Add a subscription" (the affordance to add one, on Home, empty states, and Connections), and "Add it by hand" (the in-page toggle on Add Subscription that reveals the custom-entry fields when a preset is not found). These are three different actions, so they keep three labels; none uses the banned word "manually".

Finalization fixes (accessibility and reviewer notes). Three references outside the visible copy still named retired labels; they were synced so nothing points at a string that no longer exists:

Step 7: verify and fix (done)

Four adversarial reviewers re-checked all 41 pages against voice.md. They found four real voice misses (fixed below), two consistency judgments (resolved with no change), and coverage gaps (now recorded). Screens and this log were fixed together.

ScreenZoneWasBecameRule
connect-bank-loadingstate-messageThis takes a few seconds. We are reading your recurring charges, read-only.We are reading your recurring charges, read-only. This usually takes a moment.D10 (single loader pattern, canonical closer)
history-trends-emptystate-message... the shape of your spending will be here.... the shape of your monthly total will be here.D9 / Principle 3 (no spending/exposure frame)
history-trendschart summaryyour monthly recurring total went from $172.90 in May ...your monthly total went from $172.90 in May ...D9 (canonical "monthly total"; matches the header)
data-privacyexportExporting your spend history as a CSV ...Exporting your history as a CSV ...D9 / Principle 3 (drop "spend")
cancel-guide-no-guidedetail-head (data fix)$4.25 / month, you can always resubscribe later$17.00 / month, you can always resubscribe laterData fixture: The New York Times is $17.00/month in the canonical dataset.

Consistency judgments (resolved, no change):

Coverage additions (lines on screen but missing from the Step 1 inventory, now recorded so nothing ships outside this file):

Reviewer-note syncs (outside visible copy, aligned to current labels):

Wireframes rebuild, Home as the etalon (2026-08-05)

The wireframe stage was re-run against the upgraded IA, and Home was rebuilt as the etalon. No line was rewritten. What changed is which lines the screen carries and where they sit, and this inventory follows, because a line inventory that lists lines no screen shows is wrong in the same way a missing line is.

ScreenZoneChangeWhy
homeadd-actionInventory row corrected to "Add a subscription"The Step 5 log had already resolved D1 and the screen already said it. The inventory row still carried the pre-rewrite "+ Add subscription".
homesummary-strip to trust-line"Read-only. Tendd cannot move your money." moved zoneNode 2.6 gives the strip the count, the total and one line of context. Source and trust are block 7, GC6, whose content order states read-only in the same breath as the source. The line itself is untouched (D7 anchor).
hometrust-lineThree lines added: the source, the last successful check, and the way to the full answerNode 2.6 block 7 requires GC6, and GC6 requires the last successful check. Home showed a figure with no source and no freshness. "Data and privacy" is the existing name of node 6.15, not a new label.
homelist-groupThe five subtotals recordedNode 2.6 block 4: each group carries its own subtotal. They are derived from the canonical dataset, not authored.
homecancel-candidatesThree lines retired from the base screenThe nudge is not one of the eight blocks of node 2.6, and its own state is 2.6.4, whose trigger is "the person came here to cut". home-savefocus carries the same lines and keeps them. The Save tab is the door.
homehistory-link"Pro" status badge retiredNode 5.12 requires a route from Home, and node 2.6 forbids an upsell on the calm view ("any upsell" is the load-bearing skip of the type). The route stays, the badge goes: the gate belongs to node 5.12, where GC7 shows a real preview.
homedetail-paneFive lines retired with the pane itselfThe desktop right-hand pane was removed: one action must not have two destinations depending on the width of the window, and the pane duplicated node 2.7. The lines live on subscription-detail, which is where they were copied from. Ground: the decision log, 2026-08-05.

Not a copy change, but recorded here because the screen reads differently: the next charge is rendered days first and the date second (wireframe conventions section 5, and node 2.6 block 5), against a fixed fixture date of 1 August. "in 2 days, Aug 3", and "tomorrow" at one day.

The four states of Home (2026-08-05, same rebuild)

Again no line was rewritten. Two stale inventory rows were corrected against the Step 5 log, which had already resolved both and whose decisions the screens have been rendering since July: home-savefocus summary-strip is "you might not be using", and the door label is "Add a subscription".

ScreenZoneChangeWhy
home-emptystate-messageThe two door support lines recordedNode 2.6.1 says both paths are offered "in the same words used at node 1.2", so the doors carry the path-choice support lines. They were on screen and missing from the inventory.
home-errortrust-lineGC6 added, with the link pointing at connections rather than data-privacyNode 2.6.3 requires a way into node 6.14 from this state: the figures are stale, and the place to do something about that is the source.
home-savefocustrust-lineGC6 addedEvery populated Home page shows where its figures came from. The state does not change the source.

Two findings for Voice, left open rather than fixed here, because the words are not the wireframe stage's to change. Both closed on 2026-08-11, in Round 4.

  1. home-empty carried two headings that say the same thing a hundred pixels apart: "Nothing to add up yet" in the summary strip and "Nothing here yet" over the two doors. Became: the second heading is now "Two ways to start". The first says what is true, the second says what to do, and neither says the other's job twice.
  2. The two home-savefocus candidate rows put the date first ("Trial ends: Aug 18", "Next: Aug 11") while every other row in the product leads with the days. Became: "trial ends in 17 days" and "next in 10 days", each still paired with how long it has been unopened. The date moved into the accessible name, where it is useful and costs no width.

The rest of the main flow (2026-08-05, same rebuild)

Nodes 1.1, 1.2, 1.3 with its four returns, 1.5 with its empty state, and 2.7 with its five states. Unlike the Home rebuild this one does add lines: three blocks of the landing and most of the detail screen had no copy at all, because the July screens did not have the blocks. Every new line is in the inventory below. What follows is what changed about lines that already existed.

ScreenZoneChangeWhy
welcomesocial-proofSeven lines retired with the blockNode 1.1 names the testimonial block as a SKIP row of the block bank: authored copy with no real quote behind it. It was carried from July and is now off the screen
welcomehow-it-works"from 400+ presets" to "from 400+ services", and "Securely connect your bank" to "Connect your bank read-only"The dictionary makes "service" the word for a catalog entry (D5), and "securely" is exactly the vague reassurance the trust block exists to replace with a fact
welcometrust"Bank-level connection" to "Bank connection through Plaid", and the body rewritten to lead with signing in on your own bank siteD8 fixes the preposition. A label whose content is the reassurance itself is the pattern this audience distrusts
welcomehero, trust"can never move your money" to "cannot move your money"D7 fixes the verb of the fixed trust line. The Step 6 log had already resolved it for path-choice, and three inventory rows still carried the old form
welcometop-nav"Pricing" lands on the page own pricing block instead of node 5.13Node 5.13 is reached only from a real gate. A public nav item pointing into the in-app upgrade screen is a gate with nothing behind it
path-choicepath-optionBoth support lines rewrittenNode 1.2 block 4 asks each door for one line of consequence ("read-only, about a minute" against "start with one, add more later"). The July lines described the doors instead ("Fast and automatic", "Private")
path-choicereassurance"What does each option access?" retiredThe two doors answer it themselves now, and node 1.2 block 6 asks for a legal line in that place
connect-bankprimary-action"Choose your bank" to "Connect your bank"D2, resolved at Step 6 of the Voice stage and never applied to the inventory row
connect-banktrust-noteOne sentence became three named factsNode 1.3 block 5 asks for three lines: what Tendd can see, what it can never do, what you can undo. The fixed trust line is the middle one, verbatim, directly above the button
guided-revealreveal-step"You are subscribed to 14 things." to "You're paying for 14 subscriptions"The Forbidden table names this exact line. The screen was fixed in July, the inventory row was not
guided-revealprimary-action"See my full list" to "See your subscriptions", and "Review these 2" retired with the save-focus lineD3 for the label. The second button left with it: one action at the emotional peak, and node 2.6.4 is one tap away the moment the tab bar appears
guided-revealreveal-step"That is $192.90 a month." became the summary strip form: the number, then the context lineGC3 has one rendering. The reveal and Home now show the total the same way, which is what makes it the same component
guided-revealreveal-step"Show me what they are" to "See what they are", same for the totalButtons are Tendd labels in the second person. "Show me" is the person speaking, which the address rule reserves for the share card alone
subscription-detailheader"Home" to "Your subscriptions" on the back controlD3: the tab keeps its nav label, the descriptive control says where you land
subscription-detailmaster-paneRetired with the pane itselfdocs/decisions.md, 2026-08-05
subscription-detailhistory-link"See price and payment history" and the "Pro" badge retiredThree months of charges are on the screen and free (D3, node 2.7 block 6). GC7 sits below them, states what Pro adds, and carries "Maybe later" beside it
subscription-detailalert-banner"The price went up by $2.50 on Jul 28, now $17.99 a month." to "Netflix went up by $2.50 on Jul 28. Your next charge is $17.99 instead of $15.49."Active voice names who did the thing (Principle 2), and the old price beside the new is what node 2.7.2 asks the state to show
subscription-detail-unrecognizedstate-message"Not a subscription" to "This is not a subscription"It is the same correction control as on the base screen, so it is the same label
subscription-detail-errorstate-message"We could not load this subscription" to "We could not load the rest of this subscription. This is usually temporary, and nothing about your money changed."The name and the amount survive from the list, so the old line overstated the loss. The money-screen reassurance is the error rule

Two fixtures corrected, which is data and not copy. The base detail page now renders Spotify Premium, because the screen exists for the decoder line and its default should be the case that shows one; Netflix moved to the price-change state, which is where the canonical alert case belongs. And the failed payment is Amazon Prime, not Peloton: alerts.html and this inventory both said Amazon Prime, and only wireframes/docs/conventions.md said Peloton. It has been corrected there. The failure was dated Jul 2 on the July screen, which its own billing cycle contradicts; the rebuilt Alerts dates it Jul 20, and that is now the only date in the set.

One finding for the map, not for Voice. Node 2.7 block 8 asks for "edit the details" and the map has no node to send it to: node 1.4 owns the only form in the product, and the grey screen borrows it. Recorded in ia/docs/nodes/2-7-subscription-detail.md.

The rest of the set (2026-08-05, same rebuild)

The nineteen MVP pages that were still on the July frame: node 1.4 with its three states, node 3.8 with its three, node 4.9 with its two, node 4.10, node 6.14 with its three, node 6.15 with its dialog, and node 6.16. Two of those state pages had never existed. The three LATER screens (4.11, 5.12, 5.13) are untouched and keep their rows above: round 2 brings them to the same contract.

ScreenZoneChangeWhy
add-subscriptionfieldThe Category select retiredNode 1.4 names category among the fields it does not ask for: it is derived from the service, and every extra field on this screen is a reason to close the tab. It was on the July form
add-subscriptionpresetsA "Most tracked" tile row added, with six servicesNode 1.4 block 3. The July screen went straight from the search field to its results, so the catalogue never appeared to a person who had not typed anything, which is the arrival case this block exists for
add-subscriptioncustom-fallback"Add it manually" to "Add it by hand"The reviewer-note sync of the Voice rollout had already resolved this; the inventory row still carried the old form
add-subscriptionprogressThe saved-as-you-go line became one sentenceIt is the anti-abandon block of Flow B and it was two fragments in a callout. One sentence says the same thing where a person actually reads it
add-subscription-emptyprimary-action"Add it by hand" to "Add subscription" on the form buttonThe dictionary gives the form submit one label. "By hand" is the method, and it is already said above the form
alertsgroupTwo groups added: "Needs you" and "Just so you know"Node 3.8 block 2 and block 3, and the invention the node is built on. The July screen was one feed sorted by date, which makes a person scan to find out whether anything is wrong. Sorting by whether it needs them answers that before they read
alertsalert-rowEvery meta line now carries the amount, the date and the sourceNode 3.8 block 4: an alert that cannot say where it came from is a rumour. The July lines named the type and the merchant and stopped
alertsalert-rowThe price-change alert shows the old price, the new price and the differenceNode 3.8 block 5, which exists in none of the sources. Every product shows the new number; the old one beside it turns a surprise into an explanation
alertsalert-rowThree items added: two upcoming charges and one newly detected subscriptionNode 3.8 block 3. Without them "Just so you know" would have had nothing in it, and the group is the half of the screen that is usually not empty
alertsalert-rowThe Amazon Prime failure is dated Jul 20, not Jul 2Its billing cycle is the 20th, so Jul 2 was impossible. Carried in from the conventions fixture list
alertsalert-rowOlder moved into a collapsed groupNode 3.8 block 6: the recent past is the job of this screen and the distant past is node 5.12
alertssettings-link"What Tendd tells you about" addedNode 3.8 block 7. One place that answers what will reach you, instead of a reminder toggle on every subscription
alerts-emptygroup"What shows up here" added, with the four thingsNode 3.8.1 asks the empty state to say what would appear if it did. An empty screen that does not say what it is for reads as broken rather than as calm
cancel-guidewhat-happensWhat happens when you cancel, with the real dateNode 4.9 block 3, missing from the July screen. The category can only promise this in general; we know the billing period, and the anxiety of an irreversible action is mostly the not knowing
cancel-guidestripThe meta strip: about five minutes, and where the steps came fromNode 4.9 block 4, missing from the July screen
cancel-guidefreshnessWhen we last checked these stepsNode 4.9 block 10, missing from the July screen. A guide that silently rots is worse than no guide
cancel-guidestepThe steps became the netflix.com path specificallyNode 4.9 block 5, the sharpest difference in the block bank. ReSubs publishes three channel sections because it does not know how you subscribed. The decoder line on node 2.7 says NETFLIX.COM, so we do
cancel-guideprimary-action"Open netflix.com/account" to "Open netflix.com and cancel"A button says the result, not the URL
cancel-guidepro-calloutThe Pro line now says the free steps stay free before it says what Pro addsD3 binds hardest on this screen: the basic instruction is always free and always first, and the Pro block is an addition below it
cancel-guide-blockedstate-messageThe not-your-fault sentence became the headingIt is the whole job of this state, and it was a callout under a heading that repeated the subscription name
cancel-winwin-summary"Nice." dropped, and the sentence split into a line and a numberThe Forbidden table bans praise interjections by name and the Voice log had already dropped this one. The number is the emotional payload, so it is the large thing rather than a clause in the middle of a sentence
cancel-winshareThe two share lines are off the screenNode 4.11 is LATER under D-Share, so an MVP screen cannot lead there. The lines stay in this inventory rather than being deleted and rewritten later
connectionsconnection-rowThe last successful check added to every sourceNode 6.14 block 4, and GC6 requires it. A silently stale connection makes the whole calm view quietly wrong and the person has no way to know
connectionsconnection-rowDisconnect now states the consequence in the same sentenceNode 6.14 block 6. Every product offers this control and none of them says what becomes of the data already collected
connectionsconnection-rowChase shows 11 subscriptions on both the default and the reconnect stateThey were 11 and 8: same source, same story, two numbers. A stale connection does not reduce the count
connectionsconnection-rowThe card digits are gone from the source nameNode 2.7 already banned card digits on the payment source line, and there is no reason for this screen to hold to a different rule
connectionsadd-sourceThe inline chooser became a real dialog pageNode 6.14.3, which had no page. It creates no new screen: it reopens node 1.3 and node 1.4 and returns here
data-privacydeleteThe delete confirmation became its own pageNode 6.15.1, which lived inside the page and had no page of its own
settingsaccountThe Name field retired, and a Currency row addedNode 6.16 block 2: an email and a currency, and nothing else. We have no reason to hold a name, and not holding it is easier to explain than protecting it
settingsnotificationsThe failed-payment example is Amazon Prime, not PelotonOne fixture for one event across the whole product

Every carried fix from the IA work is closed. The share block is off cancel-win, the Name field is off settings and the currency row is on it, cancel-guide has the three blocks the block bank found missing, and connections states the last check and the disconnect consequence on every source with one number for Chase instead of two.

Nothing was rewritten for style. Every change above is a block the node asks for and the screen did not have, a fixture that disagreed with itself, or a label the dictionary had already settled and the inventory had not caught up with.

The critique (2026-08-05, Step 9)

One line left the product, and it is the only copy change the critique produced.

ScreenZoneChangeWhy
guided-revealheader"Step 3 of 3" retired from the headerThe screen carries its own three steps, so two counters read "of 3" at once and meant different things: the header said step 3 of the chain while the first line under it said step 1 of the reveal. The chain ends when the reveal starts, so the counter that stays is the reveal's own. guided-reveal-empty keeps the header counter: it has no reveal to count, and there the chain genuinely ended

Everything else the critique found was structure or a document that had fallen behind the screens, and none of it touched a line. The log is wireframes/docs/critique.md.

Round 2: the three LATER screens (2026-08-05)

The last seven pages left the July frame and three states were drawn for the first time, so the inventories for node 4.11, node 5.12 and node 5.13 are rewritten below. Their compositions come from the second bank round (ia/docs/blocks.md, types H, I and J), which ran before the screens were drawn.

ScreenZoneChangeWhy
history-trendsheader"How your recurring spend has moved" to "How your monthly total has moved"The dictionary settled on "monthly total" at D5, and the node block says the same. The inventory was the last place still saying "recurring spend"
history-trendschart-areaThe summary sentence moved above the chart and lost the words "Text summary"Node 5.12 block 4 and the whole of bank type H: in every source the number lives inside the picture, and growth zone 3 says a picture is what makes this person close a finance app. The sentence is the fact; the chart illustrates it
history-trendstrend-listThe New York Times reads $17.00 a month, not $4.25One fixture for one subscription across the product. $4.25 was a July invention and it contradicted the canonical set on Home
history-trendsexportThe export line now names the free export beside the Pro oneD-Export: a plain copy of your own data is free and lives on node 6.15, and the screen that sells the analytical one is where that split has to be visible
history-trends-lockedwhole screenNew. The frame, the person's own category labels, what Pro adds, and the gateNode 5.12.4, numbered on 2026-08-05. Emma is on Free everywhere else in the product, so this is the only view of this screen she can have, and node 5.13 says she came to the upgrade screen "from Your trends"
history-trends-emptystate-message"We have less than three months so far" gained the date the first line appearsNode 5.12.1 is not the lock: this person has paid, so the screen owes them a date and never an offer
history-trends-errorwhole screenNew. Node 5.12.3It says what is unaffected in the same breath: the list, the total and the alerts are a different request
upgradeheader"Close" addedNode 5.13 block 1: close, not back. The screen interrupts something the person was doing
upgradefeature-list"One-tap links" to "with the direct link"The dictionary has no "tap" in it: the product is a responsive web app read on a desktop as often as a phone
upgrade-processingwhole screenNew. Node 5.13.1The payment provider owns its sheet; we own the wait around it. It says nothing is charged twice, which is the fear at that moment
upgrade-payment-failedwhole screenNew. Node 5.13.2A payment that did not go through is a fact with a next step, never a fault. It states that nothing was charged before it offers to try again
share-snapshotheader"Card preview" to "Share this win", with "nothing is shared until you tap Share"The old heading named the component. The new one names the moment, and the second line answers the only question a person has on this screen
share-snapshotprivacy-noteThe list of what is on the card is now specificBank type J: this exists in no source, and it is the one thing this screen adds to the category. "No account numbers" is a promise; naming the three things that are on it is proof
share-snapshotcontinue"Done, back to my list" to "Back to your subscriptions"The dictionary gives this destination one label, in second person. D3 in the discrepancy list settled it and this page had not caught up

Round 3: the auth model (2026-08-10)

Five pages and one field, from the decision that closed the last structural ? in the map. This is the round that re-opened a stage marked Done, and the copy carries the reason rather than hiding it: on the bank path the email is asked with the trust argument attached, not as a signup.

ScreenZoneChangeWhy
sign-inwhole screenNew. Node 1.6, with 1.6.1 and 1.6.2The landing header already said "Sign in" and Settings already said "Sign out", so the product had a door in and a door out of an account nothing in it created
sign-in-expiredstate-messageWritten in the reconnect register, not the error registerNode 6.14.2 already settled the tone for a credential that expired by design: it is maintenance, and the screen says nothing was lost before it asks for anything
connect-bankaccountNew field, with the reason in the hint rather than in a tooltipNode 1.3 block 4. The category asks for an account before showing anything; this asks on the one screen where the reason is true and fits in a sentence. "cannot" and "delete" are spelled out, per the contraction rule for money and data
settings-no-accountwhole screenNew. Node 6.16.1, which stood as "logged out ?" until the auth modelThe manual path creates no account, so this is a steady state and not an edge case. Its three lines say what an account changes in the person's terms, never in ours
upgrade-current-planwhole screenNew. Node 5.13.3Settings routed "manage plan" into the screen that sells Pro, and there was no way anywhere to cancel it. The cancel line carries no discount, no "are you sure", and no "tell us why"

Round 4: the copy latch after UI + Visual (2026-08-11)

Stage 07 compared every coloured page against this inventory and found thirteen divergences. None was a colouring error: the visible text of all 28 coloured pages is character-identical to its grey original, so every one of them was a gap between the frozen grey and this file, opened before colour existed. Voice reopens for exactly that, and closes them here.

WhereWasBecameWhy
upgrade and the welcome landing, lifetime cardNot on sale yet. [? D4, the lifetime price, $99 to $139, is still being decided]Not on sale yet. We are still working out the price.The worst of the thirteen, and it was on two screens rather than one. The project's own open-question notation was printed as product copy, and this file carried the bracket verbatim on both, so the inventory blessed the leak. Stage 07 saw it only on the paywall, because the landing is not in the coloured sample; the twin was found by grepping the notation across all 55 grey pages before fixing the one that was reported. The question is not closed, it lives where a question belongs: node 5.13's Status and the decision log
upgrade, plan cardsone feature list inventoried, two renderedfeature-list-compact declared beside feature-listThe four lines appear three times inside the plan row and once, alone, on current-plan. Inside a card the label carries it; standing alone it earns its parenthetical. One list, two authored forms, and the form is now named instead of being a silent difference
upgrade, yearly cardThat is $5.75 a month. Our calmest option, and it saves about $27 a year...That is $5.75 a month, and it saves about $27 a year...The screen had already dropped it. "Our calmest option" is an adjective about ourselves standing next to a figure that argues better than it does
upgrade, welcomefour strings shipped and never inventoried"Everything in Tendd Pro", "Start Tendd Pro - $7.99 a month", "one payment", the rewritten lifetime sentenceA shipped line that is in no inventory is a line nobody owns
home-empty, second headingNothing here yetTwo ways to startTwo headings a hundred pixels apart doing one job. Logged at the wireframes critique and never closed
home-empty, bodyPick the way that feels rightPick the one that feels right"Two ways to start" above it already said ways
home-empty, the two doorsFast and automatic. Read-only, we can never move your money. / Private. Pick from 400+ services...the lines the screen actually shipsHere the screen was right and the document was wrong. This file still held "we can never move your money", the exact form D7 retired. Shipping the inventory yesterday would have shipped a banned variant
home-savefocus, both candidate rowsTrial ends: Aug 18 / Next: Aug 11trial ends in 17 days / next in 10 daysEvery other row in the product leads with the days, and the group list on the same screen says "trial ends in 17 days" for the same subscription. The date stays in the accessible name
subscription-detail-errorBack to your subscriptionsYour subscriptionsOne destination, two wordings, one screen apart. The documented exemption rested on the chevron saying "Home", which a later round changed
add-subscriptionTypically $17.99 a monthTypically $AMOUNT a month, marked as a patternSix strings are six renderings of one authored line. An inventory that lists one of six teaches the wrong thing about the other five
history-trends-lockedthe rule said "Maybe later" is always presentthe rule narrowed, the screen unchangedOn the full-screen gate the appbar chevron is the exit, and a second control one line under it going to the same place is chrome, not kindness. What "always" protects is that no gate is a dead end, and a chevron protects that too. It was a real decision either way, and this is the way

What this round did not do. It did not touch the eleven ARIA and form-semantics findings from the same pass. Those are markup, not copy, and they belong to the stage that owns structure. It also rebuilt this page's whole line inventory from microcopy.md rather than patching the changed rows: the published tables had drifted from the file on the upgrade screen before today, and a page that renders a document has to render the document.

Canonical subscription dataset

The 14-subscription sample repeats across Home, its states, and the Subscription Detail master pane. This is product data, not authored copy, and is not rewritten. It is listed once here and referenced elsewhere as "the canonical list". Total: $192.90 / month.

CategorySubscriptionAmountNext / TrialStatus
StreamingNetflix$17.99 / monthNext: Aug 3Active
StreamingDisney+$13.99 / monthNext: Aug 12Active
StreamingAmazon Prime$14.99 / monthNext: Aug 20Active
StreamingHulu$7.99 / monthNext: Aug 25Active
SoftwareAdobe Creative Cloud$22.99 / monthNext: Aug 15Active
SoftwareChatGPT Plus$20.00 / monthNext: Aug 5Active
SoftwareiCloud+$2.99 / monthNext: Aug 2Active
SoftwareNotion$8.00 / monthNext: Aug 9Active
MusicSpotify Premium$11.99 / monthNext: Aug 7Active
MusicApple Music$10.99 / monthNext: Aug 14Active
FitnessPeloton App$12.99 / monthTrial ends: Aug 18Trial
FitnessStrava$11.99 / monthNext: Aug 22Active
NewsThe New York Times$17.00 / monthNext: Aug 11Active
NewsThe Economist$19.00 / monthNext: Aug 28Active

The line inventory

Every interface line on all 55 wireframe pages, verbatim, grouped by cluster. Zone is the region of the screen the line sits in; Type is heading, button, link, field-label, hint, body, state-message, status, nav, or footer. A line a user types is tagged (USER) and is never rewritten. Not listed, on purpose: the reviewer wireframe tree and deferred asset placeholders ([logo], [chart], [preview image]).

Cluster A: Welcome landing and Path Choice

ScreenZoneLineType
welcometop-navTenddnav
welcometop-navHow it worksnav
welcometop-navTrust and securitynav
welcometop-navPricingnav
welcometop-navSign inlink
welcometop-navGet started freebutton
welcomeheroFor people who are not into financebody
welcomeheroSee what you're paying for. Calmly.heading
welcomeheroTendd shows every subscription and recurring charge in one calm view, so you always know what is going out. No spreadsheets, no judgment, no surprises.body
welcomeheroGet started freebutton
welcomeheroSee how it worksbutton
welcomeheroNo bank connection needed to start. Read-only, we cannot move your money.body
welcomestoryExample, not your databody
welcomestory$192.90 / $174.91 / $161.92 / $144.92body
welcomestory14 subscriptions / 13 subscriptions / 12 subscriptions / 11 subscriptionsbody
welcomestorya month, for what you have signed up forbody
welcomestoryActivebadge
welcomestoryTrialbadge
welcomestoryCancelledbadge
welcomebenefit-cardCalm control of your recurring moneyheading
welcomebenefit-cardTendd is not a budgeting app. It is a simple, low-pressure way to see and control what you are subscribed to.body
welcomebenefit-cardEverything in one placeheading
welcomebenefit-cardEvery subscription and recurring charge, pulled together and grouped by category. One calm list instead of a dozen forgotten logins.body
welcomebenefit-cardClear, never judgedheading
welcomebenefit-cardNo budgets to set up, no red warnings, no lectures. Just your numbers in plain language, so you feel in control instead of anxious.body
welcomebenefit-cardNever caught off guardheading
welcomebenefit-cardTendd tells you in plain words when a price goes up, a free trial is about to end, or a payment does not go through.body
welcomehow-it-worksHow Tendd worksheading
welcomehow-it-worksThree steps, a few minutes. You are in control the whole way.body
welcomehow-it-worksConnect or addheading
welcomehow-it-worksConnect your bank read-only, or add your subscriptions yourself from 400+ services. Your choice, no pressure to link an account.body
welcomehow-it-worksSee it all, calmlyheading
welcomehow-it-worksTendd finds your recurring charges and shows them in one clear list, with your real monthly total as the biggest thing on screen.body
welcomehow-it-worksCancel and saveheading
welcomehow-it-worksSpot what you no longer use and cancel it with a step-by-step guide. Feel the small win when the number goes down.body
welcometwo-pathsTwo ways to startheading
welcometwo-pathsNeither one is the real way in. You pick when you start, and you can add the other later.body
welcometwo-pathsConnect your bankheading
welcometwo-pathsRead-only, through Plaid, and about a minute. Tendd finds the charges that repeat and names them for you.body
welcometwo-pathsAdd them yourselfheading
welcometwo-pathsPick from 400+ services and add what you already know about. No bank is involved, and nothing leaves your control.body
welcometrustTrusted with your moneyheading
welcometrustTrust is earned, not claimed. Here is exactly what Tendd can and cannot do.body
welcometrustRead-only, alwaysbody
welcometrustTendd can see your recurring charges but cannot move, spend, or touch your money.body
welcometrustBank connection through Plaidbody
welcometrustYou sign in on your bank's own site, through Plaid, the same service many major finance apps use. We never see your bank password.body
welcometrustYou are in controlbody
welcometrustDisconnect any account or delete all of your data at any time, in one tap. It is gone when you say so.body
welcometrustWe never sell your databody
welcometrustYour financial life is yours. Tendd does not sell or share it, full stop.body
welcometrustRead what we accesslink
welcomepricingSimple, honest pricingheading
welcomepricingThe whole calm view is free. Tendd Pro adds history, trends and advanced alerts.body
welcomeprice$69 a yearheading
welcomepriceThat is $5.75 a month, and it saves about $27 a year versus paying monthly.body
welcomepriceBest valuestatus
welcomeprice$7.99 a monthheading
welcomepriceMonth to month. Cancel any time, no lock-in.body
welcomepriceLifetimeheading
welcomepriceone paymentbody
welcomepriceTendd Pro stays open, for people who would rather never think about a renewal again.body
welcomepriceNot on sale yet. We are still working out the price.body
welcomeplan-cardEverything in Tendd Profield-label
welcomefeature-list-compactHistory and trends / Advanced alerts / Full cancel guides / Exportbody
welcomeprimary-actionStart Tendd Pro - $69 a yearbutton
welcomeprimary-actionStart Tendd Pro - $7.99 a monthbutton
welcomepricingThe whole calm view is free. Tendd Pro, $7.99 a month or $69 a year, adds history, trends, and advanced alerts.body
welcomepricingNo cap on subscriptions and no cap on banks in Free. Cancelling is free, always.body
welcomefaqQuestions people ask firstheading
welcomefaqDo I have to connect my bank?heading
welcomefaqNo. You can add your subscriptions yourself from 400+ services and get the same calm view. Connecting a bank is one of two ways in, not the price of entry.body
welcomefaqIs connecting my bank safe?heading
welcomefaqYou sign in on your bank's own site, through Plaid, so Tendd never sees your password. The connection is read-only. Tendd cannot move your money, and you can disconnect at any time.body
welcomefaqWhat does Tendd cost?heading
welcomefaqThe calm view is free, with no cap on how many subscriptions or banks you add. Tendd Pro is $7.99 a month or $69 a year, and it adds history, trends, and advanced alerts.body
welcomefaqCan Tendd cancel subscriptions for me?heading
welcomefaqTendd shows you how to cancel, step by step, and that part is free. It does not cancel on your behalf, because that would mean asking for more than read-only access to your money.body
welcomefinal-ctaSee what you're paying for. Calmly.heading
welcomefinal-ctaStart free. No bank connection needed, and nothing to cancel later if it is not for you.body
welcomefinal-ctaGet started freebutton
welcomefinal-ctaAlready using Tendd?body
welcomefinal-ctaSign inlink
welcomefooterA calm way to see and control your recurring payments. Built for people who are not into finance.footer
welcomefooterProduct / Company / Legal (How it works, Trust and security, Pricing, About, Contact, Careers, Privacy, Terms, Data and privacy)footer
welcomefooter-bar© 2026 Tenddfooter
welcomefooter-barRead-only. Tendd cannot move your money.footer
path-choiceappbar‹ Backlink
path-choiceappbarStep 1 of 3status
path-choicetitleHow do you want to start?heading
path-choicetitleEither way you land on the same calm view, and you can add the other one later.body
path-choicepath-optionConnect your bankheading
path-choicepath-optionRead-only, through Plaid, and about a minute. Tendd cannot move your money.body
path-choicepath-optionChoose this pathbutton
path-choicepath-optionAdd them yourselfheading
path-choicepath-optionStart with one and add more later. No bank is involved, and nothing leaves your control.body
path-choicepath-optionChoose this pathbutton
path-choicelaterDo this laterlink
path-choicelegalBy starting you agree to our Terms and Privacy Policy. Tendd asks for read-only access and never for permission to move money.body

Cluster B: Connect Bank, Add Subscription, Guided Reveal, Sign In

ScreenZoneLineType
connect-bankappbar‹ Backlink
connect-bankappbarStep 2 of 3status
connect-banktitleConnect your bankheading
connect-banktitleNext you'll pick your bank and sign in on your bank's own site. Tendd never sees your password, and you choose which accounts to share.body
connect-bankfactsHow long it takes / About a minutefield-label
connect-bankfactsWhat you need / Your online banking login, entered on your bank's sitefield-label
connect-bankaccountYour emailfield-label
connect-bankaccountBank data needs somewhere that is yours: a place you can sign back into, and a place you can tell us to delete. We'll send a link to confirm it, and you can carry on now.hint
connect-banktrust-noteWhat Tendd can seebody
connect-banktrust-noteThe charges that repeat on your account, and nothing else you do with your money.body
connect-banktrust-noteWhat Tendd can never dobody
connect-banktrust-noteRead-only. Tendd cannot move your money.body
connect-banktrust-noteWhat you can undobody
connect-banktrust-noteDisconnect at any time, and your bank data goes with it.body
connect-bankprimary-actionConnect your bankbutton
connect-bankprimary-actionAdd them yourselfbutton
connect-bankregion-noteAvailable for US banks today. More regions soon.body
connect-bank-loadingstate-messageSyncing your bankheading
connect-bank-loadingstate-messageWe are reading your recurring charges, read-only. This usually takes a moment.state-message
connect-bank-errorstate-messageWe could not connect to your bankheading
connect-bank-errorstate-messageThis is usually temporary. You can try again, or add your subscriptions yourself and connect later.state-message
connect-bank-errorprimary-actionTry againbutton
connect-bank-errorprimary-actionAdd them yourselfbutton
connect-bank-errorlaterDo this laterlink
connect-bank-emptystate-messageConnected, but nothing recurring yetheading
connect-bank-emptystate-messageWe linked your bank but did not find recurring charges yet. Some show up only on the next billing cycle. You can add the ones you know about now.state-message
connect-bank-emptyprimary-actionAdd them yourselfbutton
connect-bank-emptyprimary-actionCheck againbutton
connect-bank-emptytrust-lineConnected to Chase, read-only. Tendd cannot move your money. Last checked today, 9:14 AM.body
connect-bank-emptytrust-lineYour sourceslink
connect-bank-cancelledstate-messageYou came back without connectingheading
connect-bank-cancelledstate-messageNothing was shared and nothing was lost. Both ways in are still open, and you can pick either one now.state-message
connect-bank-cancelledprimary-actionConnect your bankbutton
connect-bank-cancelledprimary-actionAdd them yourselfbutton
connect-bank-cancelledlaterDo this laterlink
add-subscriptionappbar‹ Backlink
add-subscriptionappbarStep 2 of 3status
add-subscriptiontitleAdd a subscriptionheading
add-subscriptiontitlePick from 400+ services, or add your own. Nothing leaves your control.body
add-subscriptionfieldFind a servicefield-label
add-subscriptionfieldSearch 400+ serviceshint
add-subscriptionpresetsMost trackedheading
add-subscriptionpresetsNetflix / Spotify Premium / Disney+ / Amazon Prime / Adobe Creative Cloud / The New York Timesbody
add-subscriptionpresetsTypically $AMOUNT a monthbody (PATTERN, once per preset tile)
add-subscriptioncustom-fallbackCan't find it?body
add-subscriptioncustom-fallbackAdd it by handlink
add-subscriptioncustom-fallbackand fill the details yourself.body
add-subscriptionfieldName / Amount / Billing frequency / Next payment datefield-label
add-subscriptionfieldNetflix / $17.99 / Monthly / Aug 3, 2026field-label (USER)
add-subscriptionfieldMonthly / Every 4 weeks / Quarterly / Yearly / Custombody
add-subscriptionfieldFor example, Aug 3, 2026hint
add-subscriptionprimary-actionAdd subscriptionbutton
add-subscriptionprimary-actionAdd anotherbutton
add-subscriptionprogressSaved as you go: 3 added so far. Your list is saved, so you can stop and come back any time.body
add-subscriptionprimary-actionSee your subscriptionsbutton
add-subscription-loadingstate-messageGetting the list of services. This usually takes a moment.state-message
add-subscription-errorstate-messageWe could not load the service listheading
add-subscription-errorstate-messageYou can still add subscriptions by hand below, and the search will come back on its own.state-message
add-subscription-errorprimary-actionTry againbutton
add-subscription-errorfieldFor example, Spotify Premiumhint
add-subscription-errorfieldEnter an amount, like $9.99hint
add-subscription-emptyfieldCerebro Cloudfield-label (USER)
add-subscription-emptystate-messageNo match for "Cerebro Cloud"heading
add-subscription-emptystate-messageNot every service is in our list yet. You can add it by hand below, and it will sit alongside the rest.state-message
add-subscription-emptyprimary-actionSearch againbutton
guided-revealreveal-stepStep 1 of 3status
guided-revealreveal-stepYou're paying for 14 subscriptionsheading
guided-revealreveal-stepFound in your Chase account. No total yet, and no verdict.body
guided-revealreveal-stepSee what they arelink
guided-revealreveal-stepStep 2 of 3status
guided-revealreveal-stepHere they are, groupedheading
guided-revealreveal-stepFive categories, and the real names behind the charges.body
guided-reveallistStreaming (4) / Software (4) / Music (2) / Fitness (2) / News (2), each with its merchant names and no amountsbody
guided-revealreveal-stepSee the monthly totallink
guided-revealreveal-stepStep 3 of 3status
guided-revealreveal-stepAll togetherheading
guided-revealreveal-step$192.90body
guided-revealreveal-stepa month, for what you have signed up forbody
guided-revealtone-lineThis is what you have signed up for, not what you wasted.body
guided-revealprimary-actionSee your subscriptionsbutton
guided-reveal-emptystate-messageNothing to reveal yetheading
guided-reveal-emptystate-messageAdd at least one subscription and your list appears here. Even a partial list is saved, so you can come back any time.state-message
guided-reveal-emptyprimary-actionAdd a subscriptionbutton
guided-reveal-emptylaterDo this laterlink
sign-inappbar‹ Backlink
sign-intitleSign inheading
sign-intitleType the email you used, and we'll send you a link. There is no password to remember, and nothing to reset.body
sign-inaccountEmailfield-label
sign-inaccountThe address your list is kept under.hint
sign-infactsWhat arrives / A link you tap. There is no code to copy outfield-label
sign-infactsHow long it works / Once, and then it expires. You can send another at any timefield-label
sign-inprimary-actionSend a sign-in linkbutton
sign-inlaterNo account yet? Start herelink
sign-intrust-lineTendd holds an email and a currency, and nothing else.body
sign-intrust-lineWhat we readlink
sign-in-sentstate-messageCheck your emailheading
sign-in-sentstate-messageA link is on its way to emma@example.com. Tap it and you are back in your list.state-message
sign-in-sentfactsIf it has not arrived / Give it a minute, and look in your spam folderfield-label
sign-in-sentfactsIf the address is wrong / Go back and type it again. Nothing was sent anywhere elsefield-label
sign-in-sentsecondary-actionSend another linkbutton
sign-in-sentlaterUse a different emaillink
sign-in-expiredstate-messageThat link has expiredheading
sign-in-expiredstate-messageA sign-in link works once and then stops, which is what keeps an old email from being a way in. Nothing is wrong with your account and nothing was lost.state-message
sign-in-expiredprimary-actionSend a new linkbutton
sign-in-expiredlaterUse a different emaillink

Deliberately absent, and it is a line that must never be written here: "that email is not registered", or any wording that tells the reader whether an address has an account. Saying it to one person says it to anybody who asks. The screen behaves the same either way, and the mail that arrives is the one that fits.

Cluster C: Home and Subscription Detail

ScreenZoneLineType
homeheaderHi, Emmabody
homesummary-stripYou're paying for 14 subscriptionsbody
home-cancelledsummary-stripYou're paying for 13 subscriptionsbody
home-cancelledsummary-stripOne more is cancelled and stops on 18 August.body
home-cancelledlist-rowCancelledstatus
home-cancelledlist-rowcancelled - stops Aug 18body
homesummary-stripa month, for what you have signed up forbody
homealert-bannerNetflix went up by $2.50, now $17.99 a month.body
homealert-bannerSee what changed →link
homelistStreaming (4) / Software (4) / Music (2) / Fitness (2) / News (2)heading
homelist-group$54.96 a month / $53.98 a month / $22.98 a month / $24.98 a month / $36.00 a monthbody
homelist-row(the canonical list, one GC4 row each)body
homeadd-actionAdd a subscriptionbutton
homehistory-linkSee your trendsbutton
hometrust-lineFrom Chase, 11 subscriptions, and 3 you added yourself.body
hometrust-lineRead-only. Tendd cannot move your money.body
hometrust-lineLast checked today, 9:14 AM.body
hometrust-lineData and privacylink
hometab-barHome / Alerts / Save / Younav
home-emptysummary-stripNothing to add up yetbody
home-emptysummary-stripConnect your bank or add a subscription, and your monthly total appears here as the biggest thing on screen.body
home-emptystate-messageTwo ways to startheading
home-emptystate-messageSee everything you pay for in one calm place. Pick the one that feels right; you can change it later.body
home-emptystate-messageConnect your bankbutton
home-emptystate-messageRead-only, through Plaid, and about a minute. Tendd cannot move your money.body
home-emptystate-messageAdd a subscriptionbutton
home-emptystate-messageStart with one and add more later. No bank is involved, and nothing leaves your control.body
home-errorstate-messageWe could not refresh just now. Showing your last update from today, 9:14 AM.state-message
home-errorstate-messageTry againbutton
home-errorsummary-stripa month, as of your last updatebody
home-errortrust-line(the GC6 lines as on home, with the link pointing at connections)body
home-errortrust-lineYour sourceslink
home-loadingsummary-stripGetting your subscriptions. This usually takes a moment.body
homecancel-nudgeTwo you have not opened in a while. No pressure, just a nudge. Cutting both would save you $29.99 a month.body
homecancel-nudgetrial ends in 17 days · not opened in 3 weeksbody
homecancel-nudgenext in 10 days · not opened in 6 weeksbody
homecancel-nudgeCancelbutton
home-onesummary-stripYou're paying for 1 subscriptionbody
home-onelist-rowSpotify Premium / in 6 days · Aug 7 / $11.99body
home-oneway-onThat is the whole list. Add more as you think of them, or connect your bank and Tendd finds the rest.body
home-onetrust-line1 subscription, added by you. / No bank is connected, so nothing is read from anywhere. / Last updated by you, today, 9:14 AM.body
home-fewsummary-stripYou're paying for 3 subscriptionsbody
home-fewlist-row(three GC4 rows, by the next charge date, soonest first)body
home-fewway-on(the home-one line, unchanged)body
home-fewtrust-line3 subscriptions, added by you. / (the other two lines as on home-one)body
subscription-detailappbar‹ Your subscriptionslink
subscription-detailheroSpotify Premiumheading
subscription-detailhero$11.99body
subscription-detailheroa monthbody
subscription-detailstatusActivestatus
subscription-detailfactsNext charge / Billing cycle / Charged to / Category / Paid so farfield-label
subscription-detailfactsin 6 days, Aug 7 / Monthly / Chase checking / Music / $143.88 since Aug 2025body
subscription-detaildecoderAppears on your statement asbody
subscription-detaildecoderSPOTIFYAB STOCKHOLMbody (USER)
subscription-detailchargesRecent chargesheading
subscription-detailgateThree months are free. Longer history and trends are part of Tendd Pro.body
subscription-detailgateSee what Pro addsbutton
subscription-detailgateMaybe laterbutton
subscription-detailcancel-actionCancel this subscriptionbutton
subscription-detailcorrectionEdit the detailsbutton
subscription-detailcorrectionThis is not a subscriptionbutton
subscription-detailremovalThis one came from Chase, so removing it hides the row rather than deleting it. If the charge appears again, Tendd will show it again.body
subscription-detailremovalRemove from your listlink
subscription-detailtrust-lineFrom Chase, read-only. Tendd cannot move your money.body
subscription-detailtrust-lineLast checked today, 9:14 AM.body
subscription-detailtrust-lineData and privacylink
subscription-detail-price-changeheroNetflix / $17.99 / a monthheading
subscription-detail-price-changestatusPrice changedstatus
subscription-detail-price-changealert-bannerNetflix went up by $2.50 on Jul 28. Your next charge is $17.99 instead of $15.49.body
subscription-detail-price-changechargesAug 3, next / $17.99 / was $15.49body
subscription-detail-payment-failedheroAmazon Prime / $14.99 / a monthheading
subscription-detail-payment-failedstatusPayment failedstatus
subscription-detail-payment-failedstate-messageA payment to Amazon Prime did not go through on Jul 20. Amazon usually tries again within a few days, and Tendd will tell you when it does. Nothing is wrong with your money.state-message
subscription-detail-payment-failedfactsNext attempt / expected in the next few daysfield-label
subscription-detail-payment-failedchargesJul 20 / $14.99 / did not go throughbody
subscription-detail-payment-failedcorrectionSee all your alertsbutton
subscription-detail-unrecognizedheroSQ *BLUEBOTTLE 8890heading (USER)
subscription-detail-unrecognizedhero$14.00, seen monthlybody
subscription-detail-unrecognizedstatusNot identifiedstatus
subscription-detail-unrecognizedstate-messageIt repeats like a subscription, but we could not match it to a service. Name it and pick a category so it reads clearly next time.state-message
subscription-detail-unrecognizedfactsSeen / Last charge / Charged to / Categoryfield-label
subscription-detail-unrecognizedfacts3 times, monthly since May / Jul 12 / Chase checking / not set yetbody
subscription-detail-unrecognizeddecoderAll we have is how it appears on your statementbody
subscription-detail-unrecognizedprimary-actionName this chargebutton
subscription-detail-loadingstate-messageGetting the details. This usually takes a moment.state-message
subscription-detail-errorstate-messageWe could not load the rest of this subscription. This is usually temporary, and nothing about your money changed.state-message
subscription-detail-errorprimary-actionTry againbutton
subscription-detail-errorsecondary-actionYour subscriptionsbutton
subscription-detail-errortrust-lineYour sourceslink

Cluster D: Alerts, Cancel Guide, Cancel Win, Share Snapshot

ScreenZoneLineType
alertstitleAlertsheading
alertstitleThe few things worth knowing about. A quiet dot marks what is new since your last visit.body
alertsgroupNeeds youheading
alertsalert-rowNetflix went up by $2.50, now $17.99 a monthbody
alertsalert-rowPrice change · Netflix · Jul 28 · from Chasebody
alertsalert-rowWas $15.49 / Now $17.99 / Difference $2.50body
alertsalert-rowSee what changedlink
alertsalert-rowA payment to Amazon Prime did not go throughbody
alertsalert-rowPayment failed · Amazon Prime · $14.99 · Jul 20 · from Chasebody
alertsalert-rowWhat to dolink
alertsgroupJust so you knowheading
alertsalert-rowiCloud+ charges $2.99 tomorrowbody
alertsalert-rowComing up · iCloud+ · Aug 2 · from Chasebody
alertsalert-rowChatGPT Plus charges $20.00 in 4 daysbody
alertsalert-rowTendd found a new subscription, Strava, $11.99 a monthbody
alertsalert-rowNew subscription · Strava · found Jul 29 · from Chasebody
alertsalert-rowYour Peloton App trial ends soonbody
alertsalert-rowTrial ending · Peloton App · Aug 18 · Tendd Pro explains what happens nextbody
alertsalert-rowWe noticed something about your Adobe Creative Cloud chargebody
alertsalert-rowUnusual charge · Adobe Creative Cloud · Jul 15 · Tendd Pro explains what we sawbody
alertsalert-rowSee what Pro addslink
alertsalert-rowProstatus
alertsgroupOlderheading
alertsalert-rowWe could not take your Spotify Premium payment on Jun 28body
alertsalert-rowPayment failed · Spotify Premium · $11.99 · from Chase · this one has since gone throughbody
alertsalert-rowSee Spotify Premiumlink
alertssettings-linkWhat Tendd tells you aboutlink
alerts-emptystate-messageAll clearheading
alerts-emptystate-messageNothing needs your attention right now. If a price changes or a payment does not go through, you will see it here first, in plain language.state-message
alerts-emptygroupWhat shows up hereheading
alerts-emptygroupA price goes up (with the old price beside the new one) / A payment does not go through (and what usually happens next) / A charge is coming (in the next seven days) / Tendd finds a new subscription (on one of your sources)body
alerts-emptyprimary-actionBack to your subscriptionsbutton
alerts-loadingstate-messageChecking for anything worth knowing about. This usually takes a moment.state-message
alerts-errorstate-messageWe could not load your alertsheading
alerts-errorstate-messageNothing is wrong with your money, we just could not reach your alerts right now. Give it another try, or head back to your subscriptions.state-message
alerts-errorprimary-actionTry againbutton
alerts-errorsecondary-actionBack to your subscriptionsbutton
alerts-errortrust-lineYour sourceslink
cancel-guideappbar‹ Netflixlink
cancel-guidetitleCancel Netflixheading
cancel-guidetitle$17.99 a month. You can always resubscribe later.body
cancel-guidewhat-happensYou keep Netflix until / Aug 3, the end of the month you paid forfield-label
cancel-guidewhat-happensAfter that / no further charges, and $17.99 a month stops going outfield-label
cancel-guidewhat-happensIf you change your mind / resubscribing takes a minute and your profiles are keptfield-label
cancel-guidestripAbout five minutesbody
cancel-guidestripSteps for netflix.com, which is how you pay for this onebody
cancel-guidestepHow to cancel Netflixheading
cancel-guidestepGo to netflix.com and sign in. / Open Account, then Membership and Billing. / Choose Cancel Membership. / Netflix will offer to pause instead. Keep choosing Cancel, and watch for the confirmation email.body
cancel-guidefreshnessWe last checked these steps on Jul 24. If Netflix has changed them, tell us and we will fix the guide.body
cancel-guideprimary-actionOpen netflix.com and cancelbutton
cancel-guidepro-calloutThe steps above are free and always will be. Tendd Pro adds screenshots for each one and a direct link that skips the retention screens.body
cancel-guidepro-calloutSee what Pro addsbutton
cancel-guidepro-calloutMaybe laterbutton
cancel-guideconfirmManaged to cancel? Mark it here and we will show what you saved.body
cancel-guideconfirmI cancelled itbutton
cancel-guidehelp-pathRan into a wall or a "please stay" screen?body
cancel-guidehelp-pathCouldn't cancel?link
cancel-guide-no-guidetitleCancel The New York Timesheading
cancel-guide-no-guidestate-messageWe do not have step-by-step for this one yetheading
cancel-guide-no-guidestate-messageHere is the general way most subscriptions cancel. It works for The New York Times too.state-message
cancel-guide-no-guidestripThe general path, because we have no tailored steps for this service yetbody
cancel-guide-no-guidestepThe general wayheading
cancel-guide-no-guidestepOpen the service's website and sign in. / Go to Account or Subscription settings. / Look for Cancel or Manage plan. / Confirm, and watch for a confirmation email.body
cancel-guide-no-guidefreshnessThese general steps were last checked on Jul 24.body
cancel-guide-no-guiderequest-guideWant a tailored guide? Tell us and we will add one for The New York Times.body
cancel-guide-no-guiderequest-guideAsk us to add this guidebutton
cancel-guide-no-guideconfirmManaged to cancel with the general steps? Mark it here.body
cancel-guide-blockedstate-messageCancelling can be made deliberately hard, and it is not your faultheading
cancel-guide-blockedstate-messageNetflix is still active. Here is what else to try, and none of it costs you the progress you have made.state-message
cancel-guide-blockedstepSkip the "special offers" screen and keep choosing Cancel, not Pause. / Try cancelling from a web browser instead of the app. / If you are billed through Apple or Google, cancel in your device subscriptions instead. / Still stuck? Leave it and come back. Nothing is lost, and we will remind you before the next charge on Aug 3.body
cancel-guide-blockedprimary-actionI cancelled itbutton
cancel-guide-blockedsecondary-actionRemind me laterbutton
cancel-guide-blockednext-movePrefer a guided walk-through with a direct link that skips the retention screens?body
cancel-guide-blockednext-moveSee what Pro addslink
cancel-winheaderA small winbody
cancel-winwin-summaryYou just cancelled Netflix and freed upheading
cancel-winwin-summary$17.99 a monthbody
cancel-winwin-summaryThat is $215.88 a year back in your pocket.body
cancel-winwin-summaryOn your word. You can always resubscribe if you miss it.body
cancel-winrunning-totalWith Tendd so far / $32.98 a month freed upfield-label
cancel-winrunning-totalOver a year / about $395, across the subscriptions you have cutfield-label
cancel-wincontinueBack to your subscriptionsbutton
cancel-winshareFeeling good about it? You can share a simple card. No bank details, ever.body, LATER
cancel-winshareShare this winbutton, LATER
share-snapshotheaderBacklink
share-snapshotheaderShare this winheading
share-snapshotheaderHere is the card, exactly as it will look. Nothing is shared until you tap Share.body
share-snapshotshare-previewOn Tendd, I am keeping an eye onbody
share-snapshotshare-preview13 subscriptionsbody
share-snapshotshare-preview$174.91body
share-snapshotshare-previewa month, all in one calm placebody
share-snapshotshare-previewJust cancelled Netflix and freed up $17.99 a month.body
share-snapshotprimary-actionSharebutton
share-snapshotsecondary-actionBack to your subscriptionsbutton
share-snapshotprivacy-noteWhat is on this cardheading
share-snapshotprivacy-noteThe number of subscriptions, the monthly total, and the one you just cancelled. No account numbers, no bank details, and no list of what you pay for.body
share-snapshot-loadingstate-messageMaking your card. This usually takes a moment.state-message
share-snapshot-loadingprivacy-noteNothing is shared while this is being made, and nothing is shared afterwards until you tap Share.body
share-snapshot-errorstate-messageWe could not create the cardheading
share-snapshot-errorstate-messageNothing is wrong with your account, and your cancel win is saved. This is only the picture.state-message
share-snapshot-errorprimary-actionTry againbutton
share-snapshot-errorsecondary-actionBack to your subscriptionsbutton
share-snapshot-errorprivacy-noteNothing was shared, and nothing was posted anywhere.body

Cluster E: History and Trends, Upgrade, Connections, Data and Privacy, Settings

ScreenZoneLineType
history-trendsheaderYour subscriptionslink
history-trendsheaderYour trendsheading
history-trendsheaderProstatus
history-trendsheaderHow your monthly total has moved over time. Nothing to act on here, just the shape of it.body
history-trendstime-range3 months / 6 months / 12 monthsbutton
history-trendschart-areaYour monthly total went from $172.90 in May to $192.90 in July, up about $20 across three months.body
history-trendstrend-listWhat movedheading
history-trendstrend-listUp $2.50 since May, now $17.99 a monthbody
history-trendstrend-listNew since June, $20.00 a monthbody
history-trendstrend-listNo change since March, $17.00 a monthbody
history-trendstrend-listHigher / New / Steadystatus
history-trendstrend-listBy categorybody
history-trendstrend-listStreaming is up $6 since March. Everything else held steady.body
history-trendsexportExport as CSVbutton
history-trendsexportYour history as a spreadsheet, for reading it somewhere else. Part of Tendd Pro. A plain copy of everything we hold is free and lives in Data and privacy.body
history-trends-lockedheaderFreestatus
history-trends-lockedlockTrends are part of Tendd Proheading
history-trends-lockedlockYour list, your total and your alerts stay free and uncapped. What Pro adds here is the past:body
history-trends-lockedlockHow your monthly total moved, over 3, 6 or 12 monthsbody
history-trends-lockedlockWhich subscriptions went up, which are new, which held steadybody
history-trends-lockedlockYour history as a spreadsheetbody
history-trends-lockedprimary-actionSee what Pro addsbutton
history-trends-lockedexportA plain copy of everything we hold about you is free, and it is in Data and privacy. This is the analytical export, which is the Pro one.body
history-trends-emptystate-messageStill gathering your historyheading
history-trends-emptystate-messageTrends need a few months to be worth looking at, and we have less than three so far. Come back in a few weeks and the shape of your spending will be here.state-message
history-trends-emptychart-areaTwo months so far. Your first trend line appears once September closes.body
history-trends-emptyprimary-actionBack to your subscriptionsbutton
history-trends-emptyreassuranceNothing is missing and nothing failed. Your list, your total and your alerts are all working as usual.body
history-trends-loadingstate-messageAdding up your last few months. This usually takes a moment.state-message
history-trends-errorstate-messageWe could not load your trendsheading
history-trends-errorstate-messageSomething on our side did not answer. Your subscriptions, your total and your alerts are not affected: this is only the history view.state-message
history-trends-errorprimary-actionTry againbutton
history-trends-errorsecondary-actionBack to your subscriptionsbutton
history-trends-errorreassuranceNothing about your plan or your data changed. If it keeps happening, tell us and we will look at it.body
upgradeheaderCloselink
upgradeheaderTendd Proheading
upgradeheaderFreestatus
upgradeheaderPay less per month than most of the subscriptions you will cancel.body
upgradecontextYou came here from Your trends. History and trends are part of Tendd Pro.body
upgradeplan-cardEverything in Tendd Profield-label
upgradefeature-list-compactHistory and trendsbody
upgradefeature-list-compactAdvanced alertsbody
upgradefeature-list-compactFull cancel guidesbody
upgradefeature-list-compactExportbody
upgradeprice$69 a yearheading
upgradepriceThat is $5.75 a month, and it saves about $27 a year versus paying monthly.body
upgradepriceBest valuestatus
upgradeprice$7.99 a monthheading
upgradepriceMonth to month. Cancel any time, no lock-in.body
upgradepriceLifetimeheading
upgradepriceone paymentbody
upgradepriceTendd Pro stays open, for people who would rather never think about a renewal again.body
upgradepriceNot on sale yet. We are still working out the price.body
upgradeprimary-actionStart Tendd Pro - $69 a yearbutton
upgradeprimary-actionStart Tendd Pro - $7.99 a monthbutton
upgradeprimary-actionMaybe laterbutton
upgradeprimary-actionPays for itself with the first subscription you cancel.body
upgrade-processingstate-messageSetting up your Pro planheading
upgrade-processingstate-messageThis takes a few seconds. Do not close this page, and nothing is charged twice if it takes a moment longer.state-message
upgrade-processingcontextWhen it is done you go straight back to Your trends, open.body
upgrade-payment-failedstate-messageThat payment did not go throughheading
upgrade-payment-failedstate-messageYour bank did not approve it, so nothing was charged. This happens most often with a card that has expired or a bank that wants to confirm a new payment.state-message
upgrade-payment-failedfactsWhat was charged: Nothing. There is no payment to reversebody
upgrade-payment-failedfactsYour plan: Still Free, and everything free is still workingbody
upgrade-payment-failedprimary-actionTry another payment methodbutton
upgrade-payment-failedsecondary-actionMaybe laterbutton
upgrade-payment-failedreassuranceYou can come back to this from any Pro feature. Nothing about your subscriptions or your data changed.body
upgrade-current-planappbar‹ Backlink
upgrade-current-planappbarProstatus
upgrade-current-plantitleYou are on Tendd Proheading
upgrade-current-plantitleEverything below is open to you. Nothing here needs doing unless you want to stop.body
upgrade-current-planfactsYour plan / Tendd Pro, yearlyfield-label
upgrade-current-planfactsRenews / 1 May 2027, at $69field-label
upgrade-current-planconsequenceCancelling keeps everything you can see without Pro. Your subscriptions, the monthly total and the basic alerts are Free and uncapped, and they stay. History, trends and the advanced alerts close at the end of the period you have already paid for, on 1 May 2027, and you can start Pro again any time.body
upgrade-current-planfeature-listHistory and trends (3, 6 and 12 month views)body
upgrade-current-planfeature-listAdvanced alerts (Trial ending, unusual, duplicate)body
upgrade-current-planfeature-listFull cancel guides (Step by step, with the direct link)body
upgrade-current-planfeature-listExport (Your history as a spreadsheet)body
upgrade-current-planprimary-actionCancel Tendd Prolink
upgrade-current-planlaterBack to your settingslink
upgrade-renewal-failedappbarClose / Prolink
upgrade-renewal-failedtitleTendd Pro did not renewheading
upgrade-renewal-failedtitleYour bank did not approve the payment on 1 May, so nothing was charged. This happens most often with a card that has expired, or with a bank that wants to confirm a repeat payment.body
upgrade-renewal-failedfactsWhat was charged / Nothing. There is no payment to reversefield-label
upgrade-renewal-failedfactsYour plan / Still Tendd Pro until 8 May, while the payment is tried againfield-label
upgrade-renewal-failedfactsYour subscriptions / All 14 are here, with the monthly total and your alertsfield-label
upgrade-renewal-failedprimary-actionUpdate your payment methodbutton
upgrade-renewal-failedsecondary-actionNot nowbutton
upgrade-renewal-failedconsequenceIf it has not gone through by 8 May, your plan goes back to Free. Nothing is deleted and nothing is capped: your subscriptions, your monthly total, your basic alerts and this month against last stay exactly as they are. The 3, 6 and 12 month views, the full cancel guides and the advanced alerts come back the moment a payment works.body
connectionsappbar‹ Youlink
connectionsheaderYour sourcesheading
connectionsheaderWhere Tendd gets the list of what you pay for. You are always in control of these. Read-only. Tendd cannot move your money.body
connectionsconnection-rowChaseheading
connectionsconnection-rowBank connection through Plaidbody
connectionsconnection-rowConnected / Private / Reconnect neededstatus
connectionsconnection-rowLast checked / Accounts included / Tracking from here / Accessfield-label
connectionsconnection-rowtoday, 9:14 AM / Checking / 11 subscriptions / Read-only. Tendd cannot move your money.body
connectionsconnection-rowDisconnecting stops Tendd from reading new charges. The 11 subscriptions already found stay on your list and become yours to keep up to date.body
connectionsconnection-rowDisconnect Chasebutton
connectionsconnection-rowAdded by youheading
connectionsconnection-rowPrivate, entered by handbody
connectionsconnection-rowLast updated / Tracking here / Accessfield-label
connectionsconnection-rowby you, Jul 30 / 3 subscriptions / Only what you type. Nothing is read from anywhere.body
connectionsconnection-rowRemoving this source deletes the 3 subscriptions you typed. They exist nowhere else, so this one cannot be undone.body
connectionsconnection-rowAdd a subscriptionbutton
connectionsconnection-rowRemove this sourcebutton
connectionsadd-sourceAdd a sourcebutton
connectionsprovider-noteUS banks connect through Plaid. More regions soon.body
connectionsprovider-noteWhat we readlink
connections-emptystate-messageNo sources yetheading
connections-emptystate-messageAdd one and your subscriptions appear on your list. You can change this later, and you can have both.state-message
connections-emptystate-messageConnect your bank / Add a subscriptionbutton
connections-reconnectstate-messageChase needs to reconnect. Banks ask for this now and then to keep your connection secure. Your last update is still below, and nothing about your money has changed.state-message
connections-reconnectconnection-rowUntil it reconnects, your list is the one from Jul 29. New charges and price changes will not appear.body
connections-reconnectconnection-rowJul 29, 8:02 AMbody
connections-reconnectprimary-actionReconnect Chasebutton
connections-add-sourcestate-messageAdd a sourceheading
connections-add-sourcestate-messageThe same two ways in, and you can have both. There is no limit on how many you add.state-message
connections-add-sourcepath-optionConnect your bankheading
connections-add-sourcepath-optionRead-only, through Plaid, and about a minute. Tendd cannot move your money.body
connections-add-sourcepath-optionAdd them yourselfheading
connections-add-sourcepath-optionStart with one and add more later. No bank is involved, and nothing leaves your control.body
connections-add-sourcepath-optionChoose this pathbutton
connections-add-sourcelaterNot nowlink
data-privacyappbar‹ Youlink
data-privacyheaderData and privacyheading
data-privacyheaderExactly what Tendd reads, and how to remove it whenever you want.body
data-privacyprivacy-sectionWorried what an app does with your bank data? Here is exactly what we do.body
data-privacyprivacy-sectionWe read your recurring chargesbody
data-privacyprivacy-sectionRead-only, and nothing else you do with your money.body
data-privacyprivacy-sectionWe can never move your moneybody
data-privacyprivacy-sectionThe connection has no permission to, and we never ask for one.body
data-privacyprivacy-sectionWe do not sell your databody
data-privacyprivacy-sectionNot to advertisers, not to anyone, on any plan.body
data-privacyprivacy-sectionWhat each source can reachheading
data-privacyprivacy-sectionBank connection / read-only transaction history, through Plaidfield-label
data-privacyprivacy-sectionAdded by you / only what you typefield-label
data-privacyprivacy-sectionYour sourceslink
data-privacypermissionsControlsheading
data-privacypermissionsRefresh my bank data automaticallyfield-label
data-privacypermissionsRead-only. Keeps your list current without you asking.hint
data-privacypermissionsUse my activity to improve Tenddfield-label
data-privacypermissionsOff by default. We never sell your data either way.hint
data-privacyexportYour dataheading
data-privacyexportDownload everything Tendd holds for you. This is your right and it is free. Exporting your history as a spreadsheet is a separate Tendd Pro feature, on Your trends.body
data-privacyexportDownload your databutton
data-privacydeleteDeleting removes your subscriptions, your sources and your account. It cannot be undone.body
data-privacydeleteDelete everythingbutton
data-privacypolicyThe full privacy policy is at tendd.com/privacy.body
data-privacy-delete-confirmstate-messageDelete everything Tendd holds for you?heading
data-privacy-delete-confirmstate-messageThis deletes your 14 subscriptions, both of your sources, and your account. It cannot be undone, and we keep no copy.state-message
data-privacy-delete-confirmconsequenceYour subscriptions / deleted, including the 3 you typedfield-label
data-privacy-delete-confirmconsequenceYour bank connection / disconnected at Chase, and the read access endsfield-label
data-privacy-delete-confirmconsequenceYour account / closed, and you are signed outfield-label
data-privacy-delete-confirmexportWant a copy first? Download your data is free and takes a moment.body
data-privacy-delete-confirmprimary-actionDelete everythingbutton
data-privacy-delete-confirmprimary-actionKeep my databutton
settingsaccountYouheading
settingsaccountYour details, your plan, and the two screens that hold everything about your data.body
settingsaccountYour detailsheading
settingsaccountEmailfield-label
settingsaccountemma@example.combody (USER)
settingsaccountCurrencyfield-label
settingsaccountUS dollar ($) / Euro / British poundbody
settingsaccountEvery amount in Tendd is shown in this currency.hint
settingsplan-cardYour planheading
settingsplan-cardFree / Prostatus
settingsplan-cardUnlimited subscriptions and unlimited bank connections. History, trends and advanced alerts are part of Tendd Pro.body
settingsplan-cardManage planbutton
settingsnotificationsWhat Tendd tells you aboutheading
settingsnotificationsAll in plain language, never alarming.body
settingsnotificationsA price goes up (Like "Netflix went up by $2.50".)field-label
settingsnotificationsA payment does not go through (Like "A payment to Amazon Prime did not go through".)field-label
settingsnotificationsA free trial is ending soon (Part of Tendd Pro.)field-label
settingsnotificationsWeekly email digest (A calm Sunday summary of what is coming up.)field-label
settingsappearanceHow Tendd looksheading
settingsappearanceDark mode (Easier on the eyes at night. Nothing else changes.)field-label
settingssettings-rowYour sources (Banks and manual entries you track)body
settingssettings-rowData and privacy (What we read, and delete everything)body
settingssettings-rowHelp and support (Guides and how to reach us)body
settingssettings-rowSign outbody
settings-no-accountaccountYouheading
settings-no-accountaccountYour plan, and the two screens that hold everything about your data.body
settings-no-accountaccountCreate an account to keep your listheading
settings-no-accountaccountYou have 3 subscriptions saved in this browser. An account is one email, and it is what lets them follow you.body
settings-no-accountaccountEmailfield-label
settings-no-accountprimary-actionSend a sign-in linkbutton
settings-no-accounttrust-noteYour list follows youbody
settings-no-accounttrust-noteRight now it lives in this browser only. Clear it, or open Tendd on your phone, and the list is not there.body
settings-no-accounttrust-noteWhat we tell you about can reach youbody
settings-no-accounttrust-noteA price change or a payment that did not go through can be sent to you, instead of waiting here until you look.body
settings-no-accounttrust-noteWhat we would holdbody
settings-no-accounttrust-noteAn email and a currency. Nothing is read from a bank, because you have not connected one.body
settings-no-accountsettings-rowYour sources (3 subscriptions you typed, and nothing connected)body
settings-no-accountsettings-rowAlready have an account? (Sign in and this list joins it)body

On the cancel line, and the three things it does not say. No discount, no "are you sure you want to lose", no "tell us why". A product whose whole promise is that cancelling should be easy cannot make its own subscription the hard one, and every retention pattern the category uses here is the pattern node 4.9 exists to help people survive. The consequence is stated above the action rather than sprung after it, and what it says first is what the person is actually afraid of: the list stays.

Two rows are missing from this state on purpose. There is no "What Tendd tells you about" block, because there is no address to send anything to, and a preference screen for messages that cannot arrive is theatre. That fact is not hidden: it is the second of the three lines above, written as what an account changes rather than as a lack. And there is no "Sign out", because there is nothing to sign out of.

Discrepancies flagged

Nothing below is rewritten. These are the places where the product says the same thing in different words, or slips into a tone Tendd said it would avoid. Step 3 (Dictionary and Forbidden) and Step 4 (Microcopy rules) decide each one. See Voice: Dictionary and Voice: Forbidden.

D1. The manual-add action has 7 different labels

The single job "add a subscription by hand" is written many ways. Needs one canonical button label. Resolved by the Dictionary.

Add them yourself Add them yourself instead Add subscription Add it manually + Add subscription Add a subscription Add manually Add another by hand

D2. The connect-bank action has 3 labels

Connect your bank (path-choice, connect-bank, home-empty) vs Choose your bank (connect-bank primary button) vs Connect a bank (connections, connections-empty).

D3. "Go back to Home" is the same destination under 4 names

All of these land on Home.

Back to your subscriptions (alerts-empty, alerts-error) Back to Home (subscription-detail-error, history-trends-empty) Done, back to my list (cancel-win, share-snapshot, share-snapshot-error) See my list / See my full list (add-subscription, guided-reveal).

D4. The retry action has 4 labels

Try again (connect-bank-error, home-error, alerts-error, subscription-detail-error, share-snapshot-error) vs Check again (connect-bank-empty) vs Search again (add-subscription-empty) vs Try the list again (add-subscription-error).

D5. The tracked thing is named 5 ways

The Dictionary must fix one term per concept and say when "service" (the catalog entry) legitimately differs from "subscription" (the thing being tracked). The catalog of presets is presets on welcome but services everywhere else.

subscription (most screens) thing (guided-reveal: "subscribed to 14 things") service (add-subscription: "Find a service", "400+ services", "Loading services") recurring charge (welcome, connect-bank, data-privacy) what you pay for (connections, home-empty).

D6. The bank-or-manual origin is named 3 ways

One dictionary term needed, with "connection" reserved for the Plaid link specifically if we keep both.

source (connections: "Your sources", "Add a source"; settings; data-privacy) connection ("Bank connection via Plaid", "bank connections") bank / account.

D7. The read-only trust line drifts across 4 forms

Two variables move independently: "we" vs "Tendd", and whether "Read-only" leads. This is Tendd's most important trust sentence and should be one fixed line.

Read-only, we can never move your money. (welcome, path-choice) We can never move your money. (connect-bank, data-privacy) Read-only. Tendd cannot move your money. (home, connections) Read-only, cannot move money (connections access value).

D8. "Plaid" takes 3 prepositions

Pick one.

Powered by Plaid (connect-bank) via Plaid (connections) through Plaid (connections, welcome).

D9. The monthly total concept is phrased 4 ways

Choose one label for the headline number.

monthly total (welcome, home-empty) recurring spend (history-trends header) monthly recurring total (history-trends summary) recurring money (welcome benefit card).

D10. Loading screens are inconsistent

Most loaders use one calm sentence ending "This usually takes a moment." (home-loading, alerts-loading, history-trends-loading, share-snapshot-loading). But two use a terse gerund title with an ellipsis: Loading services... (add-subscription-loading) and Creating your card... (share-snapshot-loading). The ellipsis + "-ing..." pattern reads generic and is the one place loaders drift from the calm sentence. The Microcopy rule (Step 4) should settle the loading pattern.

D11. Contractions are used inconsistently

The clearest clash: You're paying for 14 subscriptions (home) vs You are subscribed to 14 things (guided-reveal), the same statement, one contracted and one not, with a different noun on top of it. Voice needs one rule on contractions.

Contracted in places: You're paying Can't find it? Couldn't cancel? Let's try the card again. Spelled out elsewhere: We could not cannot did not It is That is.

D12. Celebratory / hype tone (candidates for the Forbidden list)

Design principle 5 says the cancel moment is the one place a small win is allowed, so this is a deliberate-versus-drift call for Step 3, not an automatic delete. See Voice: Forbidden.

Nice. opener and A small win (cancel-win); Feeling good about it? (cancel-win share); It felt great. (welcome testimonial, quoted, so lower priority).

User content, never rewritten

Values a user types or that stand in for their input: the add-subscription form values (net, Netflix, $17.99, Aug 3, 2026, Cerebro Cloud), the unrecognized raw descriptor SQ *BLUEBOTTLE 8890 (subscription-detail-unrecognized), the sample account Emma Carter / emma@example.com (settings), and the three quoted testimonials on welcome. Merchant names in the canonical dataset (Netflix, Spotify Premium, and so on) are product fixtures, not authored voice copy, and also stay.

Allowed placeholders (deferred assets, not copy)

[logo], [merchant logo], [chart], [preview image]. These stand for a Design-phase asset, not for missing text, and are out of scope for voice.