{"data":{"patterns":[{"id":"sneak-into-basket","name":"Sneak Into Basket","category":"sneaking","description":"Items, insurance, warranties, or donations are added to the cart without explicit user action.","detection_signals":["Cart line items not corresponding to an explicit add action","Pre-ticked add-on checkboxes at checkout","Total exceeding the sum of user-selected items"],"regulatory_refs":[{"regulation":"Consumer Rights Directive Art. 22","jurisdiction":"EU","concern":"Additional payments require express consent; pre-ticked boxes do not qualify."},{"regulation":"FTC Act §5","jurisdiction":"US","concern":"Unauthorised charges."}],"severity":95,"ethical_alternative":"Offer add-ons unticked with a clear price, after the core purchase decision is made."},{"id":"fake-social-proof","name":"Fabricated Social Proof","category":"social-proof-abuse","description":"Invented testimonials, purchased reviews, or fake recent-activity notifications (\"Sarah in Leeds just bought this\").","detection_signals":["Activity notifications cycling from a fixed client-side name list","Testimonials using stock photography with no attributable source","Review timestamps clustered implausibly"],"regulatory_refs":[{"regulation":"UCPD Annex I, paras. 22-23b","jurisdiction":"EU","concern":"Fake reviews and endorsements are per-se unfair practices."},{"regulation":"FTC Rule on Consumer Reviews and Testimonials","jurisdiction":"US","concern":"Fake or misrepresented reviews carry civil penalties."}],"severity":95,"ethical_alternative":"Publish real, attributable customer evidence — even if there is less of it."},{"id":"roach-motel","name":"Roach Motel","category":"obstruction","description":"Signing up takes one click; cancelling requires a phone call, a retention gauntlet, or a hidden settings path.","detection_signals":["Signup completes in-app but cancellation requires email or telephone contact","Cancellation path buried more than three levels deep in settings","Multiple interstitial retention offers before cancellation completes"],"regulatory_refs":[{"regulation":"ROSCA / Negative Option Rule","jurisdiction":"US","concern":"Cancellation must be at least as simple as the mechanism used to subscribe."},{"regulation":"DSA Art. 25","jurisdiction":"EU","concern":"Making termination materially more difficult than subscription."}],"severity":90,"ethical_alternative":"Provide symmetric flows: if signup is one click in-app, cancellation is one click in-app. Ask for feedback after cancelling, not before."},{"id":"fake-urgency","name":"Fake Urgency","category":"urgency","description":"A countdown, deadline, or \"ends soon\" claim that is not real — timers that reset on reload, deadlines that never arrive, perpetual \"last chance\" messaging.","detection_signals":["Countdown timer whose end time is computed from page load rather than a fixed date","Timer resets when the page is reloaded or reopened in a new session","Deadline language with no explicit date","The same \"limited time\" offer present across archived snapshots over months"],"regulatory_refs":[{"regulation":"UCPD Annex I, para. 7","jurisdiction":"EU","concern":"Falsely stating a product will be available only for a very limited time is a per-se unfair commercial practice."},{"regulation":"FTC Act §5","jurisdiction":"US","concern":"Deceptive acts or practices affecting commerce."},{"regulation":"DSA Art. 25","jurisdiction":"EU","concern":"Interface design that materially distorts users’ ability to make free choices."}],"severity":85,"ethical_alternative":"Use a real deadline and state it as an absolute date, or drop urgency entirely and compete on the offer."},{"id":"fake-scarcity","name":"Fake Scarcity","category":"scarcity-abuse","description":"Invented stock counts or viewer counts — \"only 2 left\", \"14 people are looking at this\" — that are randomised or static rather than derived from real inventory.","detection_signals":["Stock count identical across unrelated products","Viewer count that changes on reload with no backing session data","\"Only N left\" with N never reaching zero across repeated visits"],"regulatory_refs":[{"regulation":"UCPD Annex I, para. 7","jurisdiction":"EU","concern":"False limited-availability claims."},{"regulation":"FTC Act §5","jurisdiction":"US","concern":"Misrepresentation of material facts about availability."}],"severity":85,"ethical_alternative":"Show real inventory when it is genuinely low, and show nothing when it is not."},{"id":"forced-continuity","name":"Forced Continuity","category":"forced-action","description":"A free trial silently converts to a paid subscription with no reminder before the charge.","detection_signals":["Card required for a free trial with no pre-charge notification commitment","No cancellation reminder in the trial-signup confirmation"],"regulatory_refs":[{"regulation":"ROSCA","jurisdiction":"US","concern":"Negative-option billing requires clear disclosure and informed consent."},{"regulation":"Consumer Rights Directive","jurisdiction":"EU","concern":"Automatic renewal requires express prior consent and clear disclosure."}],"severity":85,"ethical_alternative":"Email a reminder before the trial converts, and let the user cancel from that email in one click."},{"id":"hidden-costs","name":"Hidden Costs","category":"sneaking","description":"Mandatory fees appear only at the final checkout step, after the user has invested effort in the flow.","detection_signals":["Final total exceeding the advertised price by non-tax fees","Service, booking, or processing fees first disclosed on the payment step"],"regulatory_refs":[{"regulation":"FTC Rule on Unfair or Deceptive Fees","jurisdiction":"US","concern":"Total price including mandatory fees must be disclosed up front."},{"regulation":"UCPD Art. 7","jurisdiction":"EU","concern":"Omission of material price information is a misleading omission."}],"severity":80,"ethical_alternative":"Show the all-in price from the first pricing surface."},{"id":"trick-wording","name":"Trick Wording","category":"misdirection","description":"Double negatives or inverted checkbox semantics that make the user select the opposite of what they intend.","detection_signals":["Checkbox labels containing \"uncheck to opt out\" or nested negations","Adjacent checkboxes with inverted opt-in/opt-out polarity"],"regulatory_refs":[{"regulation":"DSA Art. 25","jurisdiction":"EU","concern":"Deceptive interface design impairing informed decision-making."}],"severity":70,"ethical_alternative":"One consistent polarity: checked always means yes."},{"id":"confirmshaming","name":"Confirmshaming","category":"interface-interference","description":"The decline option is worded to shame the user — \"No thanks, I prefer losing money\" — making refusal emotionally costly.","detection_signals":["Decline label expressing self-deprecation in the first person","Marked visual asymmetry between accept and decline affordances","Decline styled as body text while accept is a prominent button"],"regulatory_refs":[{"regulation":"DSA Art. 25","jurisdiction":"EU","concern":"Making one choice more prominent or burdensome so as to impair autonomy."}],"severity":55,"ethical_alternative":"Label the decline neutrally (\"Not now\") and give both options equal visual weight."},{"id":"nagging","name":"Nagging","category":"obstruction","description":"Repeated interruptions requesting the same permission or upgrade after the user has declined.","detection_signals":["Same modal re-shown within a session after dismissal","No persistent \"don’t ask again\" affordance"],"regulatory_refs":[{"regulation":"DSA Art. 25","jurisdiction":"EU","concern":"Repeatedly requesting a choice already made impairs user autonomy."}],"severity":50,"ethical_alternative":"Honour a decline for a meaningful period and always offer a permanent opt-out."}],"total":10,"jurisdictions":["EU","US"],"high_risk_count":8},"_meta":{"request_id":"req_222fac16c1824d4593d44f2ee5a36b56","product":"psych/dark-patterns","version":"1.0.0","receipt_id":null,"cost":{"quoted":0,"charged":0,"currency":"USD","display":"0.000000"},"cache":{"hit":true,"age_s":84475},"provenance":{"sourcing_class":"B","upstream":["internal:psych-corpus@2026-07"],"fetched_at":"2026-10-13T11:50:56.109Z","license":"proprietary"},"freshness":{"as_of":"2026-07","staleness_s":84475},"confidence":1}}