# Coder notes, payment processing teardown (September 17, 2026) The answers were coded with a local copy of the shared coder (code_teardown.py in this folder) under codebook v1.5. The rulebook is unchanged. Three implementation differences from the shared coder, all disclosed here so the figures can be reproduced: 1. Query matching for the anchor and head-to-head rules is case-insensitive. Aliases that are also ordinary words (Square, Stripe, Clover, Toast, Wise, Paddle, Chase, Heartland, Bolt, Affirm, Tilled, Dharma, Durango, Global Payments, Payment Depot, National Processing, Merchant One, Host Merchant Services) match answer text only when capitalized, as in the earlier teardowns; the queries themselves are lowercase, so the check for whether a brand is named in the query uses a case-insensitive pattern. Without this, "stripe vs square" would never be recognized as naming Stripe or Square. 2. The v1.5 conditional-assignment pattern allows a bold marker directly before the brand name ("- **SaaS / marketplace:** investigate **Stripe** first."). Bold markers are not words; the three-word rule is unchanged. 3. Two written cues are matched with an adverb or a word-order change: "I'd also look at Helcim" (cue: I'd look at) and "the first one I'd investigate" (cue: investigate first). Known rulebook gaps left in, not patched, and reported on the page: the reverse conditional ("Stripe if you're primarily an online company"), "the first one I'd compare with PayPal", "the simplest starting point", and "I'd start here" under a brand heading are read as picks by a reader and are coded listed. A contrast mention on the law firm query ("I'd shortlist LawPay and Clio Payments rather than generic processors like Stripe or Square") codes Stripe and Square as recommended because a selecting verb sits on the same line; this is the failure mode documented in the CRM teardown and is left in. Brand entities: the live scraper returns entity records with a "title" field; the shared coder reads "name" or "brand". The local copy reads "title" as well so the out-of-dictionary log works on this data. Collection: ChatGPT answers via the DataForSEO connector's live ChatGPT scraper (force_web_search, United States, English), one query at a time between 16:10 and 16:57 UTC on September 17, 2026; 14 queries needed a second or later attempt after dropped connections, all 100 completed. Google organic control via the DataForSEO standard queue at depth 20, truncated to the first ten organic results, same hour. Two answers (q058, q088) came back priced for Portugal in euros despite the United States setting; they are coded as returned.