Source: Activation, plan and limit copy for agent-operated products
Status: source note, research pass on 29 September 2026 by two research agents. External sources were fetched on that date; general web search was exhausted in both passes, so some vendor research (ProfitWell value-metric data, an NN/g pricing-page article, the Baymard survey year) is unverified and not load-bearing. Evidence classes: R research, G platform guideline or specification, P practitioner, E live product exemplar (dated), S statute or court ruling, I inference. Legal content is orientation, not legal advice.
Scope: products where the customer's own AI agent does the work (a chat assistant, a desktop agent or a coding agent connected over a protocol such as MCP) and the product keeps the results, shows them and enforces access and limits. Part A covers activation copy: first run, connecting, consent, empty states and developer setup. Part B covers plan, capacity and in-product limit copy, including German price display rules.
In short
Rules it backs: principles 40 to 44 and 45 to 49: plans in the reader's units, with numbers; what happens at the limit, on the plan card; limit messages in four parts; a first screen that carries a job; the customer's agent as the actor. Principles holds where this note differs.
Use-case page: A2. Use-case page checklist. Connect page, setup page, docs: A3. Developer-copy rules.
Plan cards and limit messages: B1. Principles and B2. Reader units.
German prices: B4. German price display checklist, orientation, not legal advice.
Part A: Activation copy when the customer's agent is the actor
A1. Principles
P1. The first screen carries a job, not a tour.
Rule: every first-run surface (hero, connect page, welcome document, setup checklist, empty states) names a job and the artifact it produces. Setup is presented as the way to get that job done. A setup checklist includes at least one job step (for example "Get your first useful document"), and the prompt that connects an agent ends at a job, not at "set up my account".
Test: the reader can answer "What will I use this for tomorrow?" without inventing a workflow.
Evidence: [R] NN/g, 70 users: deck-of-cards tutorials did not improve success (91% vs 94%, not significant), and people who read them rated tasks harder (single ease question 4.92 vs 5.49, p=0.047). NN/g also advises against feature-promotion onboarding at first launch. [P] Samuel Hulick: "People don't buy products, they buy better versions of themselves." Onboarding gets people "from Point A to Point B in their lives", and a tutorial straight after signup breaks the momentum of "go mode".
P2. The agent is the actor and the person is the principal. The product only keeps, shows and enforces.
Rule: verbs of doing take "your agent" as the subject, named when known (for example "Claude"). Verbs of deciding and approving take "you". The product is the subject only of keeping, showing and enforcing. It never writes, suggests or thinks.
Never write "the agent" where several agents may be connected unless the identity is known.
Avoid: "The product will soon suggest matching items." The product does not suggest; an agent does, on the person's behalf.
Evidence: [G] MCP tools specification: "there SHOULD always be a human in the loop with the ability to deny tool invocations". [I] Presenting the product as the intelligence contradicts the bring-your-own-agent boundary and sets a false expectation of a built-in model.
P3. Explain access beside the action it enables.
Rule: say what the agent will be able to do, in which spaces, and why, at the moment of connecting and on the consent screen. Frame it by benefit, with the limit beside it, and make reversal visible ("you can revoke it anytime in Connected apps").
If one grant covers every space the person belongs to, including ones joined later, say so plainly on the connect page and the consent screen.
Show the redirect hostname on the consent screen itself, not inside a collapsed "Technical details" section.
Evidence:
[R, via NN/g] Users were 12% more likely to grant a permission when given a reason (Tan et al.). NN/g's formula is "[app] would like to access your [resource] so that you can [benefit]". Ask in context, not up front, and make reversal easy.
[G] Google OAuth best practices: incremental authorization, "request scopes in context", "the smallest, most limited scopes possible".
[G] GitHub Apps: request minimum permissions; explain elevated permissions on the app's homepage.
[G] Slack: install with a minimum scope list.
[G] MCP security best practices: an MCP proxy server's consent page MUST name the client, the third-party scopes and the redirect_uri. Listed risk: "Consent abandonment: users decline dialogs listing excessive scopes".
[G] MCP authorization security considerations (2026-07-28): authorization servers accepting Client ID Metadata Documents "MUST clearly display the redirect URI hostname during authorization".
[P] Hulick's LessAccounting teardown, as Wired reported it (2015), faulted asking for bank details too early.
[I] A low price does not remove trust friction; the delegation scope has to be explained at consent.
P4. State capacity in the reader's units.
Rule: the reader's units are the thing they are trying to do, when it works again, and who can change it. Every limit message has four parts: what is paused, what still works, when or by what it resumes, and who can act. Use at most one number per sentence and none of the system's own internal names for its limits.
Every refusable action says that the allowance is refilling and from what time, never a generic error.
Evidence:
[G] Microsoft Windows error-message guidelines: problem, cause and solution; "specific names, locations, and values"; "Describe the problem in terms of user actions or goals, not in terms of what the software is unhappy with".
[R/G] NN/g error-message guidelines: precise, constructive, human-readable, positive tone.
[G] Google technical writing: "What went wrong? How does the user fix that problem?"
For agents:
[G] MCP tools specification: tool execution errors "contain actionable feedback that language models can use to self-correct".
[G] Anthropic, "Writing tools for agents" (2025-09-11): errors should "clearly communicate specific and actionable improvements, rather than opaque error codes".
[I] A good agent-facing capacity contract carries a reason field that alone tells the agent whether waiting can help, plus a retry time.
P5. State the boundary positively.
Rule: lead with what the person keeps and chooses ("Use the agent you already work with. You keep everything it makes."). Use the negation ("no built-in model") only once, where a reader's expectation would otherwise mislead them, and as a secondary clause.
Evidence: [P] Hulick: "talk about them, not you". No external empirical study found; the rest is [I].
P6. Empty states say which empty they are.
Rule: distinguish three states: no agent connected, connected but nothing yet, and filtered or no access. Each teaches what fills the area and offers one direct path, ideally a ready prompt.
Avoid one string for all three, such as "The agent hasn't added anything yet", shown whether or not an agent is connected.
Evidence: [G/R] NN/g, Kaplan 2021: empty states communicate system status, give learning cues and give direct pathways.
P7. One term per referent.
Rule: use one word for the access and billing boundary (for example "organization") wherever access, capacity, billing, consent or invitations apply. A second word such as "workspace" may appear only as a usage-pattern word in marketing, and never in the same sentence as the boundary word.
Evidence: [I] The consent and billing screens are exactly where a reader decides based on the boundary's name. See also Part B principle 2 and NN/g on defining terms in context (E13).
P8. Copy addressed to agents is copy.
Rule: it is actionable, points to one source of truth, states the value exchange, and carries a machine field for branching plus one human sentence.
Evidence:
[G] MCP and Anthropic, as in P4.
[E] Vercel's getting-started page opens with an "Agent prompt" block (read 2026-09-29).
[E] Cloudflare developer docs offer "Copy as Markdown" and "Agent setup" (read 2026-09-29).
[E] Stripe CLI "login --non-interactive" prints JSON with browser_url, verification_code and next_step (read 2026-09-29).
P9. Register follows consequence.
Rule: onboarding, empty states and completions may be warm. Trust, permission, capacity, pricing and destructive actions stay exact and terse. Playfulness never appears where the reader may be confused, blocked or worried about data.
Evidence: [I], consistent with the Microsoft and NN/g error guidance in P4.
P10. Mechanics.
No em or en dashes (a house-style choice). Spell the brand one way everywhere, including on the consent screen and in connected-app lists. Explain a technical term at first use. Any fact that changes carries a date or a check path.
Evidence: [G] Google developer style, timeless documentation. [I] for the rest.
A2. Use-case page checklist
[ ] Trigger: a dated, felt moment in the hero or the "current mess" section ("Monday, three client calls recorded, no brief written"). It is not a category.
[ ] Operator: one named person and role, plus the agent they already use, named ("in ChatGPT"). The agent appears as the actor (P2).
[ ] Artifact: the finished thing, shown as a real document with a title, sections and citations (a worked example). It is not "knowledge" or "context".
[ ] Destination: where the artifact has to work: a client, a publishing system through an API, a teammate, the next agent session. Say where it lives and who can open it.
[ ] Success condition: something observable: faster, cheaper, safer or newly possible. Label it "demonstration" until customer evidence exists.
[ ] Access line beside the action: the minimum source or connector needed and why (P3). Expansion is named only as the next step.
[ ] Continuation beat: a second person or agent starts from the artifact; a correction outlives the output that prompted it.
[ ] Starter prompt that uses an input the reader already has, deep-linked to the common chat agents and copyable for any other. It must be runnable against a fresh, empty account.
[ ] Tests passed: "What will I use this for tomorrow?"; the substitution test (if the page would fit a generic note app, word processor or chatbot equally well, it is too weak); the "a place to store data" test (if that is all the page says, it is too weak); the three claim tests: the reader can picture it, it could be proven false, and nobody else could say it (Harry Dry's three tests).
[ ] Claim boundary: limits sit beside claims; no superiority claims; no vague category words in place of the artifact.
[ ] Agent-readable operating guide from the same source document: goals, inputs, method, done condition, escalation.
[ ] One action: inspect the example, ask your agent to evaluate fit, or start in the current space (keep the space visible).
A3. Developer-copy rules (connect page, setup page, docs, errors)
D1. One pasteable block per client that works as pasted, with the endpoint filled in per environment. [E] Linear and Supabase give per-client blocks for Claude Code and Codex (read 2026-09-29).
D2. Name what sign-in will show. Say that the browser opens, which account it asks for, and that a consent screen lists access. [E] Stripe CLI login shows a pairing code and lets the user configure access (read 2026-09-29).
D3. Offer the access-mode choice in setup copy, not only on the consent screen. [E] Linear offers a read-only endpoint or a read scope; Supabase offers a read_only parameter with a caution banner beside the command (read 2026-09-29). If unticking a write permission at consent connects read-only, say so in setup, after checking the behaviour.
D4. End setup with a check and a first job. [E] Supabase docs: run the client's MCP status command to verify ("/mcp" inside Codex). Linear links example prompts right after setup. Vercel suggests next steps (read 2026-09-29; the Supabase Codex line read 29 October 2026).
D5. Pin versions so they cannot quietly rot.
(a) State floors, not exact versions ("0.20.2 or higher"), as Supabase does for Gemini CLI, or a support policy, as Cloudflare does for Node ("the Current, Active, and Maintenance versions of Node.js") (both read 29 October 2026).
(b) Every pin says what it unlocks and when it can be removed; an experimental feature flag gets a note to remove it once the client enables the feature by default.
(c) Every third-party click path carries "verified [date] against [client and version]", with an owner who re-walks it each release. Docs that name a button the client no longer shows mislead the reader and the agent. [I]
(d) Show a page-level "Last updated" date, as Cloudflare does.
(e) Avoid time words ("now", "new", "currently", "latest"). [G] Google timeless documentation.
(f) Each pinned fact has exactly one home. Prompts point to it instead of repeating it.
(g) Tell the agent that client interfaces change faster than the page and that it should adapt.
D6. Errors carry a branch field, a sentence, a retry time and a link. [G] MCP isError with actionable text; [E] Twilio returns a more_info documentation URL per error code (read 2026-09-29). A browser rendering of the same refusal keeps all four as plain language.
D7. Put the security caution beside the command, not on another page. [E] Supabase (read 2026-09-29). A grant over every space, including ones joined later, needs such a caution (P3).
D8. Quickstarts say what you will build and how long it takes, then work as pasted. [P] Twilio practice (Decibel interview with Andrew Baker; Quinton Wall, DevRel Collective, 2024). Unsourced conversion statistics from secondary blogs were excluded.
D9. Every setup and onboarding page has a Markdown form an agent can read (an llms.txt entry, a .md twin of the page). [E] Cloudflare "Copy as Markdown" (read 2026-09-29).
A4. Tensions between these rules and a layered capacity model
One number cannot say which of several limits binds. When a space has its own allowance, an account shares a ceiling across several spaces and a grace margin sits past the allowance, "N left" cannot say which limit applies, and members may not be allowed to see the account's figures. Resolution: name the binding limit and who can raise it; send the numbers to the billing page.
Approximate units on an exact surface. If enforcement counts something finer than the unit shown (for example chunks rather than documents), "room for about N documents" can be wrong for large items on a trust surface that must stay exact. Keep "about", and check what is actually enforced.
Percent left against the exact register. Showing only a percentage lets the vendor recalibrate freely, but "40% of reads left" does not tell a reader whether the agent can finish the job. Resolution: pair the percent with the time until full and the consequence; never promise job counts in the product.
"What still works" is conditional. When new items are paused, edits may still draw on one allowance and reads on another. "Everything already here is kept" holds at every limit; "your agents can keep editing" may not. Mention activity only when that allowance is actually limited.
Positive boundary against an expectation that needs a negation once. A reader looking for a built-in chat box needs to hear "there is no built-in model". Lead positive and use the negation once, at that moment.
Incremental consent against a broad grant. Google and MCP guidance say request minimum scopes incrementally. If the product's grant covers all spaces, now and future, copy can only state that plainly; narrowing it is a product and trust decision, not a copy fix.
A null retry time. "Refilling from what time" needs honest variants when no reliable forecast exists or the operation is too large: "refills continuously; no reliable time yet" and "too large to run; split it".
A warm first run against new-account limits. If unverified accounts get smaller capacity or no bulk imports, hitting that in the first session, the activation moment, contradicts any promise that the free plan supports a real job. Say so before an import, not after a refusal.
Public readers drawing on the owner's allowance. If visitors to a public space spend its read allowance, owners see usage they cannot explain unless the copy names the cause.
A5. Study design: five moderated first-run sessions
Question: where does copy, as opposed to software or the third-party client, stop a new person between the landing page and a first document they would keep?
Participants (5): a mix across the clients the product supports, for example two chat-web users, one desktop-app user, one terminal coding-agent user and one other coding-agent user. Each has frontier-agent habits (setup-tolerant early users) and no history with the product. Each brings one real job they want done this week. They use their own device and their own agent account, since the product is bring-your-own-agent, and a fresh account with no private data required.
Format: remote, moderated, think-aloud, 45 minutes. Record the screen and the agent transcript. No help until 3 minutes of being stuck; any help is logged as assisted and measured separately. A 5-minute follow-up after 48 hours asks: did you return, and why.
Path:
Landing page and fit-check prompt.
Signup.
Welcome document.
Connect page.
The client's connector settings.
Consent screen.
First prompt.
First document.
Participant says where the document lives and who can open it.
Probes:
After consent: "What can this app do now, and where?" Score against the real scope: correct, partial or wrong.
After first contact with the home screen: "What would you ask it first?"
At the end, a staged comprehension probe of three capacity notices (approaching a limit, a shared account ceiling, paused by someone else's limit), since no one reaches a limit in 45 minutes: "What is paused, what still works, who can fix it?"
Coding each stop (two coders, disagreements reconciled):
COPY: the participant quotes or misreads on-screen text, or text meant for the agent (llms.txt, setup pages, prompts) misleads the agent.
SOFTWARE: a bug or missing affordance.
CLIENT: third-party interface, such as a chat client's developer mode.
TRUST: hesitation at consent or access.
EXPECTATION: looking for a built-in chat.
Attribute a stop to COPY only if the step succeeds after a wording change alone. Test that counterfactually at the end with prepared rewrites, never mid-task.
Per-step measures: reached, unassisted, assisted or abandoned; time; single ease question (the measure NN/g used); verbatim quote; string key.
Example hypotheses (replace with the product's own):
Participants cannot say which job connecting enables.
A grant covering "all spaces, now and in the future" is missed or misread.
A welcome document that says "ask your agent to create its first document" produces a trivial artifact.
A client's developer-mode step loses people at an elevated-risk warning.
Capacity notices fail the three-part comprehension probe.
Output: a step-by-participant grid of codes; the five worst copy stops, each with screen, string key, quote and proposed rewrite; separate lists of software and client stops for their owners.
Limits: five sessions find problems; they do not estimate rates. Five also matches Hulick's advice to observe early users personally.
Part B: Plan, capacity and limit copy
B1. Principles
Lead each plan with the number people read first, then say what fits in a day, in words for actions. For a knowledge product that number is usually items stored per space; each higher plan is visibly larger on it. Evidence: E13 (make attributes concrete), E20 and E21 (vendors publish multiples or message counts per window, not internal units).
One noun per concept, used everywhere. Pick one word for the boundary and drop its synonym in customer strings. Say "free allowance", not "capacity account"; say "daily activity", not "activity capacity". Evidence: E13, E14.
Translate units into actions, state the conversion once, and say "about". For example "about N edits a day", derived in a footnote from the allowance divided by the typical cost of an edit. Say "about", because item size changes the cost. Evidence: E13, E20 (Claude lists the factors that change usage).
Say what happens at the limit, on the plan card, before anyone buys. Three parts: what stops (new items, or activity until it refills), what keeps working (reading, search, everything stored), and the ways out (wait for the refill, upgrade, or an opt-in overage where one exists). Evidence: E18 and E19 (vendors state failure behaviour), E16 (Linear does not, which leaves a gap), E21, E12 (extra costs and an unclear total drive abandonment).
"Reaching a limit never deletes" is a separate promise from cancellation rules. Keep the limit wording exact. If content can be removed some time after a paid plan ends, that rule gets its own dated line with its own timeline and reminders, and it appears in the present tense only once the behaviour is deployed. Present tense is for deployed behaviour only, everywhere. Evidence: E6 (misleading statements about the service), [I].
No surprise bills is the headline promise. State it as a mechanism, not a slogan. Without overages: "No overages. A limit pauses; it never charges." With an opt-in overage: "No automatic overages. An optional overage stays off until an admin turns it on, with a spend limit." Evidence: E19 (Vercel shows that a spend limit can still overshoot, so hard stops are worth saying), E6 (where a price cannot be calculated in advance, state how it is calculated).
Never write "free forever" or "always free". Write "Free plan: 0" with the currency, and keep "No card needed to start" only while it is true. If free capacity can be reduced, or new free starts closed when a budget is full, a promise of free capacity is untrue. Card verification without a charge is compatible with "no charge", not with "no card". Evidence: E5, E6.
Show one total price with its unit and tax status next to it. "[amount] per month, incl. VAT". Do not show a price plus a tax figure that could read as something to add; checkout copy says "includes", never "plus". Evidence: E2, E3.
Explain a shared free allowance on the free card only, in reader words. "Each free space: N items. All your free spaces together: M." Paid cards stay free of it. Evidence: [I].
Keep enforcement values off the page. Publish the limits a reader can plan with, not the internal values a system uses to enforce them; a test can guard this. Evidence: [I].
For agents and APIs, give numbers and reset times; for humans, give words and percentages. Evidence: E18 (a developer platform publishes the exact number and reset time), E20, E21.
Test with first-time readers before shipping. The team's own vocabulary is the risk. Evidence: E14.
B2. Reader units: the four concepts
Worked example: the boundary is an organization and the item is a document. Adapt the nouns.
| Concept | Internal words to avoid | Reader words (EN) | Reader words (DE) | Rule |
|---|---|---|---|---|
| Documents or items stored | "stored knowledge", "space size", "items in one space" | "documents" / "Documents in this organization" | "Dokumente" / "Dokumente in dieser Organisation" | Count, cap and percent full. If a grace margin exists, name the real pause point: "you can add documents until N". |
| Daily activity that refills | "input, read and search capacity", "replenishing" | "Daily activity: edits, reads, searches. Refills around the clock." | "Tägliche Aktivität: Bearbeiten, Lesen, Suchen. Füllt sich laufend wieder auf." | Show a percent and when it is full again. Promise "a full day's allowance returns within 24 hours" only while every allowance refills within one day. |
| Shared free allowance across several spaces | "spaces your account supplies", "capacity account", "shared ceiling" | "Your free allowance: all free organizations on your account share N documents." | "Dein kostenloses Kontingent: Alle kostenlosen Organisationen deines Kontos teilen sich N Dokumente." | Always say which limit binds (this space, or all your free spaces together) and who can lift it. |
| Pause, never delete | "stored knowledge is preserved", "frozen" | "New documents are paused. Nothing is deleted." | "Neue Dokumente sind pausiert. Es wird nichts gelöscht." | Two short sentences. Add what still works. Do not extend "never deleted" to cancellation. |
Example wording for the four-part limit message (placeholders in braces; adapt the nouns):
Approaching: "{percent}% of this organization's documents used. You can add documents until {pauseAt}." / "{percent} % der Dokumente dieser Organisation belegt. Neue Dokumente gehen bis {pauseAt}."
Grace: "About {remaining} more documents fit before new documents pause. Nothing is deleted, and reading and searching keep working." / "Noch etwa {remaining} Dokumente, dann pausieren neue Dokumente. Es wird nichts gelöscht, Lesen und Suchen gehen weiter."
Paused by a shared limit: "New documents are paused because your free organizations reached {cap} documents together. This organization still has room of its own; a paid plan for it lifts the shared limit. Nothing is deleted." / "Neue Dokumente sind pausiert, weil deine kostenlosen Organisationen zusammen {cap} Dokumente erreicht haben. Diese Organisation hat selbst noch Platz; ein bezahlter Tarif für sie hebt das gemeinsame Limit auf. Es wird nichts gelöscht."
Paused by someone else's limit (member view): "New documents are paused by a limit on the account that set up this organization's free plan. Only that account can raise it. Nothing is deleted." / "Neue Dokumente sind durch ein Limit des Kontos pausiert, das den kostenlosen Tarif dieser Organisation bereitstellt. Nur dieses Konto kann es anheben. Es wird nichts gelöscht."
Refilling: "This organization's allowance is refilling. The earliest you can try again is {time}." / "Das Kontingent dieser Organisation füllt sich wieder auf. Frühestens um {time} kannst du es erneut versuchen."
Footnote for action estimates: "Edits, reads and searches are estimates for typical documents; large documents use more. Your billing page shows exactly how much is left and when it is full again." / "Bearbeitungen, Lesevorgänge und Suchen sind Richtwerte für typische Dokumente; große Dokumente brauchen mehr. Deine Abrechnungsseite zeigt genau, was übrig ist und wann es wieder voll ist."
Before shipping "readable and searchable" wording for a paused state, verify that reads and search really stay open and whether edits to existing items are allowed.
In German, "gemeinnützig" is a legal tax status; write "im öffentlichen Interesse" unless that status is really meant.
B3. External evidence register
All read 2026-09-29 unless an entry gives its own date. Numbers E10 and E11 are not used.
| # | Class | Claim | Source |
|---|---|---|---|
| E1 | S | PAngV covers only business-to-consumer prices ("gegenüber Verbrauchern"). Prices must be clearly assigned, easy to see, and follow "Preisklarheit und Preiswahrheit". | https://www.gesetze-im-internet.de/pangv_2022/__1.html |
| E2 | S | Total price required (§ 3(1)). State the unit if that is common practice (§ 3(2)). If a price is split, highlight the total (§ 3(3)). | https://www.gesetze-im-internet.de/pangv_2022/__3.html |
| E3 | S | Distance sales must state "dass die ... Preise die Umsatzsteuer und sonstige Preisbestandteile enthalten" (§ 6(1) Nr. 1). | https://www.gesetze-im-internet.de/pangv_2022/__6.html |
| E4 | S | A price reduction for goods ("Ware") offered to consumers must state the lowest total price of the previous 30 days (§ 11(1)). § 11 names goods only; for services, check with counsel. Separately, UWG § 5(5) presumes a price reduction misleading where the earlier price was charged only for an unreasonably short time. | https://www.gesetze-im-internet.de/pangv_2022/__11.html and https://www.gesetze-im-internet.de/uwg_2004/__5.html (both read 29 October 2026) |
| E5 | S | UWG annex item 20: calling a product "gratis", "umsonst" or "kostenfrei" is always unfair "wenn ... gleichwohl Kosten zu tragen sind". The annex hangs off § 3(3), the consumer blacklist. | https://www.gesetze-im-internet.de/uwg_2004/anhang.html |
| E6 | S | Essential information includes the total price, or the method of calculating it where it cannot be calculated in advance (§ 5b(1) Nr. 3). Misleading statements about price or its calculation are covered by § 5. | https://www.gesetze-im-internet.de/uwg_2004/__5b.html and https://www.gesetze-im-internet.de/uwg_2004/__5.html |
| E7 | S | BGH I ZR 99/08 (29.04.2010, "Preiswerbung ohne Umsatzsteuer"): net prices are allowed only with "geeignete Kontrollmaßnahmen" ensuring that only business buyers can buy. | https://dejure.org/dienste/vernetzung/rechtsprechung?Gericht=BGH&Datum=29.04.2010&Aktenzeichen=I%20ZR%2099/08 |
| E8 | S | Order button: "zahlungspflichtig bestellen" or an equally unambiguous wording (§ 312j(3) BGB). Cancellation button: "Verträge hier kündigen" (§ 312k(2) BGB). | https://www.gesetze-im-internet.de/bgb/__312j.html and https://www.gesetze-im-internet.de/bgb/__312k.html |
| E9 | S | Distance contracts concluded through an online interface need a withdrawal function labelled "Vertrag widerrufen" or equally clear wording, prominent and available throughout the withdrawal period, with a confirmation function "Widerruf bestätigen" and an acknowledgement of receipt on a durable medium (§ 356a BGB, in force since 19 June 2026). | https://www.gesetze-im-internet.de/bgb/__356a.html (read 29 October 2026) |
| E12 | R | Checkout abandonment reasons among US shoppers who abandoned, excluding those just browsing: "Extra costs too high (shipping, tax, fees)" 40 percent; "couldn't see / calculate total order cost up-front" 12 percent. Survey year and sample not shown on the page. | https://baymard.com/lists/cart-abandonment-rate |
| E13 | R | NN/g, Moran and Dykes, 9 Feb 2024: "define unfamiliar terms in context, and connect vague attributes to something concrete"; translate specifications into relatable comparisons; at most 5 items; "do the work for the consumer". | https://www.nngroup.com/articles/comparison-tables/ |
| E14 | P | Wynter (Peep Laja), 50 senior B2B SaaS leaders: 62 percent gate pricing behind "contact sales"; 58 percent never tested their pricing page. "Your team has seen the pricing page a hundred times. They know what every term means. Your first-time visitor doesn't." | https://wynter.com/post/b2b-saas-pricing-data and https://wynter.com/pricing-page-test |
| E15 | E | Stripe lists what is not charged ("Keine Einrichtungsgebühren, monatlichen Gebühren oder versteckten Gebühren") and gives one per-transaction formula. | https://stripe.com/pricing |
| E16 | E | Linear: Free plan with unlimited members and capped issues and teams; paid plan per user per month, billed yearly. The page says nothing about what happens at the Free limit. | https://linear.app/pricing |
| E17 | E | Notion Free: "Unlimited for individuals", "limited for 2+ members" on blocks; a per-file size cap; price shown in EUR with an exchange-rate link. | https://www.notion.com/pricing |
| E18 | E | Cloudflare Workers Free: 100,000 requests a day, resetting at midnight UTC; above it Cloudflare returns Error 1027, or bypasses the Worker when its route fails open. Paid plan: included amounts plus per-million rates. | https://developers.cloudflare.com/workers/platform/pricing/ and https://developers.cloudflare.com/workers/platform/limits/ (limits read 29 October 2026) |
| E19 | E | Vercel: Pro includes a usage credit equal to its price; Hobby is "limited to the usage caps and cannot purchase additional usage". Spend Management alerts at 50, 75 and 100 percent, and "Setting a spend amount does not stop usage on its own"; checks run every few minutes, so overshoot is possible. | https://vercel.com/pricing and https://vercel.com/docs/spend-management |
| E20 | E | Claude: "Pro gives you at least 5x more usage per 5-hour session than Free", "Max gives you 5x or 20x more usage ... than Pro". Footnote: "Usage limits apply. Prices shown don't include applicable tax." Limits depend on message length, attachments, conversation length, tools, model and effort. | https://claude.com/pricing and https://support.claude.com/en/articles/9797557-usage-limit-best-practices |
| E21 | I | AI chat plans state limits as multiples of a usage window (Claude, E20) or as message counts per window (ChatGPT Plus: up to 160 GPT-5.5 messages every 3 hours), not as token counts. They show usage and reset time and offer three ways out at the limit: wait, upgrade, or pay extra at a published rate. The message count is from OpenAI's help page; the rest is inference from E19, E20 and earlier surveys, not re-surveyed. | https://help.openai.com/en/articles/11909943-gpt-52-in-chat (read 29 October 2026); inference |
B4. German price display checklist
Consumer self-serve (consumers can buy, so PAngV and the consumer rules apply):
[ ] Total price including VAT shown next to the offer, easy to see (PAngV § 1(3), § 3(1)).
[ ] Unit next to the price: "pro Monat" / "per month" (§ 3(2)).
[ ] "inkl. USt." / "incl. VAT" on the pricing page and on plan cards inside the product (§ 6(1) Nr. 1).
[ ] If a price is split (base plus add-on, or an overage), the total is highlighted (§ 3(3)). An overage whose amount cannot be calculated in advance states how it is calculated: "[Betrag] je [Menge] über dem Kontingent, Ausgabenlimit [Betrag]" (UWG § 5b(1) Nr. 3).
[ ] Any launch price or strikethrough shown as a reduction refers to a price really charged, and not only for an unreasonably short time (UWG § 5(5) presumes that misleading). For goods, it also states the lowest total price of the previous 30 days (PAngV § 11).
[ ] "Kostenlos" or "Free" only where nothing is charged; card verification with no charge is fine. "No card" only where no card is asked for. Never "free forever" or "immer kostenlos" (UWG Anhang Nr. 20, § 5).
[ ] Limits and their at-limit behaviour stated before purchase (UWG § 5 on the conditions of the service; principle 4).
[ ] Order button reads "zahlungspflichtig bestellen" or equivalent (BGB § 312j(3)); check what a hosted checkout shows in the German locale.
[ ] Cancellation button "Verträge hier kündigen" reachable on the website for subscriptions, leading straight to a confirmation page with a "jetzt kündigen" button; both buttons and the page stay permanently available (BGB § 312k(2)); check that a hosted billing portal satisfies it.
[ ] Withdrawal function "Vertrag widerrufen" or an equally clear label, prominent and available throughout the withdrawal period, leading to a confirmation function "Widerruf bestätigen" and an acknowledgement of receipt on a durable medium, such as email, wherever a contract concluded online carries a withdrawal right (BGB § 356a, since 19 June 2026, E9); check what a hosted checkout or billing portal provides.
[ ] Currency: if prices are in USD on a German-language page, confirm with counsel; PAngV does not name a currency and no source confirming USD was fetched.
[ ] Present tense only for deployed behaviour; house style rules (for example no em or en dashes) applied.
Business-only offers:
[ ] Offer clearly addressed to businesses, with real checks that only businesses can buy (contract, data processing agreement, company details). Then net prices are allowed (BGH I ZR 99/08).
[ ] Billing unit defined, with where the count is visible.
[ ] A conversion into the buyer's own cost unit (for example per participant or per course hour) where the buyer has to justify costs per unit.
[ ] Volume steps published rather than "ab" or "auf Anfrage" prices. [I] House practice, not a PAngV rule: PAngV covers only consumer prices (E1), and no "ab"-price case law was verified.
[ ] AI costs: separate line, ceiling per period, warning threshold, no retroactive charges.
External sources for Part A
All read 2026-09-29 unless an entry gives its own date. Part B sources are in the register above.
https://www.nngroup.com/articles/empty-state-interface-design/ (Kaplan, 2021-09-19)
https://www.nngroup.com/articles/error-message-guidelines/ (Neusesser and Sunwall, 2023-05-14)
https://www.nngroup.com/articles/mobile-tutorials/ (2020-03-08)
https://modelcontextprotocol.io/docs/2026-07-28/tutorials/security/security_best_practices (read 29 October 2026)
https://modelcontextprotocol.io/specification/2026-07-28/server/tools (read 29 October 2026)
https://www.thedevrelcollective.com/writing/great-developer-documentation-is-your-best-marketing (Wall, 2024-08-09, read 29 October 2026)
Live pages: https://linear.app/docs/mcp ; https://supabase.com/docs/guides/getting-started/mcp ; https://docs.stripe.com/stripe-cli ; https://docs.stripe.com/stripe-cli/use-cli ; https://developers.cloudflare.com/workers/get-started/guide/ (showed "Last updated Oct 12, 2026", read 29 October 2026) ; https://developers.cloudflare.com/workers/wrangler/install-and-update/ (read 29 October 2026) ; https://vercel.com/docs/getting-started-with-vercel
Not verified or excluded: the Microsoft Writing Style Guide error-message page (fetch failed; the Win32 guideline was used instead); individual UserOnboard teardown pages (the primer PDF and interviews were used); Google's brand-verification and unverified-app screens; direct documentation of Slack's consent-screen UI; secondary-blog conversion statistics without a primary source; ProfitWell value-metric data; an NN/g pricing-page article; the Baymard survey year and sample; "ab"-price case law; EU UCPD Annex I point 20 (the German transposition, UWG Anhang Nr. 20, was fetched instead).