# Codebook: franchise-trademarks datasets (2026-10-14) Sample: the 259 Minnesota CARDS franchise disclosure documents (FDDs) used across the site's FDD reports (`franchise-royalty-rates/data/fdd_fees.csv`), issued 2025-01-24 to 2026-08-18. Every row cites its FDD by `mn_document_url`. Item 13 ("Trademarks") was cut from each FDD (`pdftotext -layout`), machine-parsed for registration and serial numbers, and read in full by the analyst. USPTO data are the official Trademark Status and Document Retrieval (TSDR) status pages, fetched on the date in `uspto_check_date` / `tsdr_generated`. License: CC BY 4.0. Attribution: "Franchise Consultants and Brokers, franchiseconsultantsandbrokers.com". No statement in these files rates a brand; they record what the filing and the USPTO record say. ## data/item13_reading.csv (analyst reading pass, one row per FDD) | Field | Meaning | |---|---| | file_number | Minnesota CARDS file number | | principal_mark | The brand-name mark as the FDD presents it (upper case) | | principal_regs | US registration numbers the FDD lists for marks consisting of or containing the brand name (or the image-only marks the FDD presents as its principal marks) | | principal_serials | Serial numbers of pending applications for principal marks (or numbers the FDD printed as registration numbers that are serial numbers) | | status | R = a brand-name mark is registered on the Principal Register; RP = R, and the FDD also names another mark it calls a principal or primary trademark that is not federally registered (or states that "our principal trademark" is not registered); P = no brand-name registration, application pending; U = no registration and no application (no FDD in the sample); S = Supplemental Register only (none) | | register | Register stated for the listed registrations: P Principal; PS some on the Supplemental Register; NS not stated (also used when nothing is registered) | | risk | The 16 CFR 436.5(m)(4) statement. full = all three elements (no federal registration; fewer legal benefits; may have to change to an alternative trademark), for any mark; partial = one or two elements; none. Checked by regex across all 259 (see scripts/02, reading notes) | | n_pending | Pending US applications listed in Item 13 | | affidavits | filed (says required affidavits/renewals have been, or have been or will be, filed); notdue (only says it will file when due or none are due); ns (no statement) | | owner | F franchisor; A an entity Item 13 calls a parent, affiliate, subsidiary, predecessor or commonly owned company; L another named owner (including individuals) or relationship not stated in Item 13; NS not stated | | proceedings_n | Trademark proceedings described in Item 13 (court cases, TTAB, USPTO refusals or suspensions of the franchisor side's applications, a foreign revocation action), pending or concluded | | infringing | yes = Item 13 describes a specific known third-party use, prior-rights claim or coexistence/settlement with another user; no = states none known; ns = no statement | | limiting | none / owner_license / other. Only "other" (an agreement other than the owner's license that limits or conditions use: coexistence, settlement, consent, placement restriction, or an undefined agreement) is published, as `other_agreement_disclosed`, because the blind check showed the none vs owner_license split was not reproducible | | notes | Reading notes (no party names of private individuals) | ## data/franchise_trademarks.csv (published, one row per FDD) Identifiers (brand, franchisor, sector_label, fdd_issue_date, mn_file_number, mn_document_id, mn_document_url) come from the sample file. FDD fields: principal_mark, status, status_label, risk_statement, register_stated, us_registrations_listed (registration numbers found in Item 13 by the parser plus principal numbers from reading), pending_applications_listed, affidavits, owner_type, franchisor_owns_marks, proceedings_disclosed, infringing_uses_disclosed, other_agreement_disclosed, principal_regs, principal_serials. USPTO fields (blank when not checked): uspto_checked; uspto_check_date (TSDR "generated on" date); principal_regs_found / _live / _dead / _not_found; principal_date_mismatch (registration date in TSDR not printed anywhere in Item 13, before hand review); principal_mark_text_mismatch (TSDR mark text shares no word with the brand name, before hand review); earliest_live_principal_reg_date (earliest TSDR registration date among live principal registrations whose text matches the brand, or design-only); mark_age_years_at_issue (FDD issue date minus that date, years). Joined from the published emerging-franchise-brands dataset: first_franchise_year, years_franchising. registered_before_first_franchise_year: yes if the earliest live principal registration year is earlier than the first franchise year. hand_checked: in the 20-FDD blind check. ## data/uspto_registrations.csv (one row per brand x US registration number listed in Item 13) reg_number; principal (yes = in principal_regs); checked; tsdr_generated; found (TSDR returned the record and the same registration number); uspto_mark, uspto_reg_date, uspto_register, uspto_tm5 (TM5 common status descriptor), uspto_status, uspto_status_date; live (TM5 starts LIVE); dead_before_fdd_issue (dead and status date on or before the FDD issue date); fdd_date_matches (the TSDR registration date appears in Item 13 in a common date format; "no date found" when the parser found no date beside the number); fdd_date_machine (date the parser paired with the number); mark_text_matches_brand (principal rows only); uspto_owner; owner_named_in_item13 (the owner's name words appear in Item 13 or match the franchisor name). ## data/uspto_serials.csv (one row per principal-mark serial number) TSDR status today for applications the FDD listed as pending: state_now = registered, pending, dead or not found, with the registration number and date if registered since. ## data/uspto_mismatch_review.csv Hand review of every mechanical flag (date, mark text, not found, dead) with the FDD wording and the TSDR record: verdict = mismatch (FDD and USPTO record disagree) or no mismatch (parser artefact, date split across table cells, image mark, house mark). ## data/handcheck_*.csv, data/handcheck_score.json Blind check: an independent coder (separate agent, no access to these values) coded 20 randomly drawn FDDs (seed 20261014) from the full FDD text using data/checker_instructions.md. handcheck_compare.csv lists disagreements after corrections; handcheck_adjudication.csv records the first-pass disagreements and which side the FDD text supports.