Type: INTERNAL document. Blunt by design. Not for Craig's eyes in this form (the client-facing version is files/proposal-for-craig.md).
Date: 2026-10-12
Basis: Synthesized entirely from the project research files listed at the end. No new web research was done for this document. Where the research does not contain a fact, this document says so and marks it TO VERIFY or TO ASK instead of guessing.
Scoring: Each area gets a traffic light and a 1–5 score (5 = strong, 1 = critical gap). Every score is tied to evidence in the source files.
Scorecard at a glance
| # | Area | Light | Score | One-line verdict |
|---|---|---|---|---|
| 1 | Corporate website | Yellow | 2.5/5 | A real site exists and carries the brand, but it is a brochure, not a growth system |
| 2 | Per-location web presence | Red | 1.5/5 | Roughly half the network has no individually verifiable public footprint |
| 3 | Local SEO / Google Business | Red | 1.5/5 | One verified GBP in the whole research pass; local search is where restoration is won |
| 4 | Social media | Red | 1/5 | 3 of 7 corporate platforms, 13 of 21 sampled locations with nothing verified |
| 5 | Lead generation | Red | 1/5 | No owned funnel found; demand is rented from third-party marketplaces |
| 6 | CRM & follow-up | Red (unknown) | 1/5 | Nothing publicly visible; treat as absent until Craig proves otherwise |
| 7 | AI (chat / voice / automation) | Red | 1/5 | No AI agent found anywhere in the research; competitors are not waiting |
| 8 | Content & blog | Red | 1.5/5 | The one real content asset (MN Mold Company) is split off from the brand |
| 9 | Brand consistency | Red | 1.5/5 | Domain splinter, handle chaos, one location operating under a different name |
| 10 | Reputation & reviews | Yellow/Red | 2/5 | Good local samples, zero system: no aggregate proof asset, inconsistent BBB posture |
| 11 | Franchise recruitment funnel | Yellow | 3/5 | The strongest surface BOR has — and it still carries a misleading territory list |
| 12 | Craig's own footprint | Red | 0.5/5 | A franchise owner who is, publicly, invisible |
1. Corporate website — Yellow, 2.5/5
What exists (credit where due): a real franchisor site at bestoptionrestoration.com (WordPress + Beaver Builder), with individual /locations/ pages, a franchise page, the badge stack (Entrepreneur Franchise 500 2025/2026, Fastest-Growing, FranServe Fran-Tastic, IICRC), named owners on some location pages, local addresses/phones, and a Google review feed on the homepage. Source: audit/franchise-audit.md §1, §9; landing-page/asset-pass.md.
What's missing / weak:
- Conversion paths are thin. The consumer conversion devices on the corporate site are "find a location, call the local number." There is no owned lead-capture system found in the research: no estimate tool, no photo intake, no chat, no booking flow documented anywhere. The site presents the company; it does not capture and work demand. (
franchise-audit.md§9 contrast table;training/agent-plan.md§1) - SEO documentation gaps in our own research (be honest): the research did not extract per-page title/meta patterns or test for JSON-LD/schema on the corporate site, and mobile rendering was not scored. Those are TO VERIFY items, not confirmed failures. What is confirmed: the site publishes no consumer price list (normal for the category, but it means every page must convert on trust and contact, and the trust assets are fragmented — see §10), and the franchise page's long state-by-state city list reads as available territories while sitting where a shopper expects a location directory (see §2). (
franchise-audit.md§4, §6) - Two corporate phone numbers are in circulation — (720) 495-5953 printed on the official site's pages vs (720) 408-1688 on an HQ listing; the asset pass also captured (720) 680-2794 in the live footer. Three "corporate" numbers across sources is a small thing that signals unmanaged web presence. (
franchise-audit.md§2;asset-pass.mdfooter notes) - Two domains run in parallel (borestoration.com and bestoptionrestoration.com resolve to the same site) and location domains splinter further (see §9). (
social-profiles.md§3.6) - Founding story is inconsistent across the public record — 2015 vs 2016 vs 2018 across directories, and the franchisor's own materials feed the confusion. A brand that cannot keep its own founding year straight across the web has no content governance. (
franchise-audit.md§2)
Verdict: the corporate site is a competent brochure for a franchise system that has outgrown brochure-stage. Nothing about it compounds: no content engine, no lead system, no per-location SEO architecture that the research could verify.
2. Per-location web presence — Red, 1.5/5
The single most damning structural finding in the whole audit:
- The system claims 72–73 units (FDD-derived directories). The research could individually document 33 locations — 15 with official location pages (Tier A) and 18 via secondary listings (Tier B). Roughly 39–40 units have no individually verifiable public footprint at all in a dedicated research pass whose job was to find them. (
franchise-audit.md§3, §4) - The franchisor publishes no single complete location directory that could be fetched. A customer (or a researcher, or Google) cannot get a clean, authoritative list of where BOR actually operates. (
franchise-audit.md§4) - The available-territories trap: the franchise page's city list (two cities per state, ~100 markets) is available territory marketing, but it reads like a locations list and is far larger than the real unit count. Anyone (including competitors and journalists) can mistake it for open locations, and any system built on it would market cities BOR does not serve. (
franchise-audit.md§4) - Locations fend for themselves: many units run their own domains (
borestoration-lakewood.com,borlakewood.com,boraustin.com,borseraleigh.com,borestoration-<city>.comvariants), which means duplicated effort, inconsistent quality, and no shared SEO authority. (social-profiles.md§2, §3.6) - Data quality is poor where it exists: St. Paul shows two different addresses across the official page and a contractor directory (White Bear Lake vs Maplewood); the Baldwin County profile carries an Alabama county name with a Pensacola, Florida address. If the public data is this loose, the internal location data almost certainly is too. (
franchise-audit.md§4 Tier B note + correction; §8)
3. Local SEO / Google Business Profiles — Red, 1.5/5
Restoration is a "near me, right now" category. Local search is the whole game, and the research found:
- Exactly one verified Google Business Profile link in the entire social/local pass: Fort Collins. No corporate GBP verified. For the other ~71 units, GBP existence, claim status, categories, and review linkage are unverified — which at this scale means unmanaged until proven otherwise. (
social-profiles.md§1, §2) - Review volume is thin where the fight is: BOR of St. Paul shows 4.8/5 from 39 reviews on its official-page feed and "Not reviewed" on ProvenExpert, while east-metro Twin Cities competitors show samples of 225 reviews (Anytime Restoration, Woodbury), ~120–178 (ICC Restoration), and 56 (SERVPRO of Woodbury/Cottage Grove) on single aggregators. The gap is measured in dozens of reviews, not thousands — it is closable, and nobody appears to be closing it. (
franchise-audit.md§8;competitor-analysis.mdGaps §3) - A competitor owns a town name in search: SERVPRO of Woodbury/Cottage Grove literally carries "Cottage Grove" in its franchise name and page structure; Rainbow Restoration of Saint Paul explicitly lists Cottage Grove as served. No BOR page owns any equivalent local term that the research found. (
competitor-analysis.mdGaps §1) - Local content that would feed local SEO (job stories, city pages, seasonal mold content) is mostly absent — see §8.
4. Social media — Red, 1/5
- Corporate: 3 of 7 platforms verified. Facebook (
BORestoration), Instagram (bestoptionrestoration), LinkedIn (borestoration, ~515 followers per search snippet — small for a national franchise). No corporate YouTube, TikTok, or X verified despite dedicated searches, and no corporate Google Business profile verified. For a visual, emergency, before/after category, having no verified short-video presence at all is a structural miss. (social-profiles.md§1, §3.1, §3.7) - Per-location: a splinter, not a system. Of 21 locations covered, 7 have at least one verified profile; 13 have none verified found, even where their own press releases say "visit us on social media" without linking anywhere real. (
social-profiles.md§2, §3.2) - No handle system:
borthornton,borofstpaul,borestorationofstpaul,BORestorationMN,bestoptionrestorationHR,borfomesa, and one numeric-only Facebook page (people/.../61575304507307). A customer cannot guess a BOR location's handle, and neither could a system posting on their behalf. (social-profiles.md§3.3) - Locations pointing at corporate accounts (Highlands Ranch and Fort Collins listings give the corporate Instagram as theirs) — evidence those locations have no local account or their listings were never maintained. (
social-profiles.md§3.4) - Worst case: the Mesa, AZ operation's LinkedIn presence operates under a completely different name, "Built Different Restoration." A customer searching for BOR in Mesa on LinkedIn finds a different company. (
social-profiles.md§2.6, §3.5) - The best case proves the rule: St. Paul has the fullest set (FB/IG/LinkedIn/YouTube/X) — one location doing it alone, with no sign of a system behind it. (
social-profiles.md§2.1)
5. Lead generation — Red, 1/5
The most commercially important finding in this audit:
- No owned lead funnel was found anywhere in the research. No BOR-owned landing-page system, no geo landing architecture, no estimate/quote intake, no documented paid-search program for consumer lead gen. The corporate site's model is "find your location and call."
- Demand is rented from third-party marketplaces. The documented customer journey for this very project: a homeowner searched Google, clicked an ad, and landed on Top Restoration Pros (BHL, LLC) — a lead marketplace in a consumer brand's clothing. TRP's page carries no BOR branding, no BOR name, BHL's tracking numbers (878 area code, Pennsylvania), and a ZIP gate. The homeowner pays nothing; the pro is the customer. BHL's own privacy policy frames the model: it connects homeowners with independent providers and does not warrant their work. (
franchise-audit.md§9;research/trp-site-reverse-engineering.md§3, §6, §7;research/trp-model-and-kraken-application.md) - The economics of renting: TRP sells pre-qualified, homeowner-initiated live calls; pricing is never public (activation-call close), and the public pro pitch is "no contracts, no subscriptions, no commitments" — meaning the pro owns nothing, builds nothing, and stops receiving the phone the day he stops paying. Every dollar buys a call once. Nothing compounds: no list, no reviews on his own profile driven by his own funnel, no retargeting audience, no brand search growth. (
trp-site-reverse-engineering.md§6) - Geo is controlled by the seller, not by BOR. TRP runs zero location pages; geography lives entirely in its ad account, and one national page set dresses itself as "Local Technicians" for every visitor. BOR locations buying into this have no say in which searches, which cities, or which landing experience represents them — the page that represented Craig's business to a real customer did not contain his company's name. (
trp-site-reverse-engineering.md§1, §4) - Match quality is loose by design. Indexed click URLs show a basement-flooding search landing on a mold page. Broad buying absorbs whatever lands; the pro pays for thematic relevance, not exact intent. (
trp-site-reverse-engineering.md§4) - What Craig actually pays TRP is unknown — it is the single most valuable missing number in this project (marked as a YOUR TURN question in every prior doc). Until it is known, the cost of the status quo cannot be totaled. TO ASK.
6. CRM & follow-up — Red (unknown), 1/5
- Publicly visible CRM/follow-up infrastructure: none. No file in this research documents any BOR or Craig-level CRM, pipeline, automation, missed-call handling, or review-request system. That is expected (CRM is internal), so the honest status is UNKNOWN — TO ASK, scored as a gap because in this category the absence of a visible follow-up footprint (no review engine output, no retargeting found, no booking flow) usually matches the internal reality.
- What Craig uses today is unconfirmed even at the basics: his estimating system is unknown (Anton's read: he estimates inside some system; Xactimate NOT confirmed —
PROJECT.md, Anton's clarifications). If estimating, lead handling, and follow-up live in disconnected tools (or in one person's phone), that is the finding. - What a modern restoration setup must include (the standard we will propose, from
research/estimate-software-spec.md§9 and the Step 8 plan): - Speed-to-lead: every lead (call, form, marketplace) answered in minutes, 24/7, by automation if not by a human — restoration emergencies go to whoever responds first.
- One pipeline per location: new lead → contacted → assessment booked → estimate sent → insurance pending → in production → complete → review requested. Nothing living in text threads.
- Missed-call text-back: an unanswered emergency call that gets no instant text is a job handed to the next company on the Google results page.
- Review requests built into job close-out (text-back, QR on paperwork, Google-first) — the mechanism that closes the §3 review gap.
- Marketplace lead ingestion with source attribution: every TRP/marketplace lead logged with campaign/keyword/source so cost-per-booked-job is computable and the rent-vs-own math is provable.
- Estimate intake tied to the case record: photos, scope, and communications in one place (the photo-estimate spec assumes this CRM layer exists).
7. AI — Red, 1/5
- No AI chat or voice agent was found on the corporate site or any location presence in this research. The agent plan and training file exist in this project because the capability does not:
training/agent-plan.mdis a plan to build the first one, gated on facts Craig has not yet supplied. (Precision note: the research did not run a dedicated "does the site have a chatbot" test; absence here means "none found or reported anywhere in the files" — TO VERIFY on a live pass.) - No AI-assisted intake exists: the photo-estimate concept in
research/estimate-software-spec.mdis a spec with zero build, designed around data BOR does not currently publish (there is no rate card to plug in — §6/§7 of that spec). Competitors in-market already document jobs with moisture/thermal imaging and 3D scans (Bedrock Restoration, percompetitor-analysis.md); the documentation-tech bar is rising while BOR's front end stays a phone number. - Knowledge fragmentation is the quiet blocker: even a willing franchisor could not train a good agent today, because the verified facts about each location (services subset, hours, territory, process, licences) do not exist in one place — the project's own training file is 20 YOUR TURN questions deep for a single location. (
training/bor-agent-training.md)
8. Content & blog — Red, 1.5/5
- Corporate content engine: none found. The research documents no BOR blog program, no content hub, no per-location publishing. (A Blog link appears in the corporate footer menu per the asset pass; its content depth was not assessed — TO VERIFY. What is confirmed is that no BOR content surfaced as a competitive asset anywhere in the competitor research.) Nationals are publishing: PuroClean locations run genuinely local blogs (Lakeville publishing Twin Cities water-damage and basement-flood guides), AdvantaClean locations publish long educational explainers, SERVPRO runs templated local pages at scale. (
competitor-analysis.md— PuroClean, AdvantaClean, SERVPRO entries;asset-pass.md) - The one real asset is split off from the brand: BOR of St. Paul operates MN Mold Company, a separate mold-only brand publishing exactly the right Minnesota content (inspection vs testing, mold cost in Minnesota, basement/bathroom mold guides). It carries a Minnesota licence reference and local authority — and it is disconnected from BOR branding, with no social amplification or review proof found behind it. AdvantaClean built a national niche on this exact play; BOR has the asset and leaves it in a silo. (
competitor-analysis.mdBaseline + Gap §2) - Precision note: MN Mold Company belongs to BOR of St. Paul (owners Ethan & Cari Jo Anderson, per the corrected audit), not to Craig. It is evidence of what one location did alone, and a content-model template — never Craig's asset to claim. (
franchise-audit.md§4 correction note) - BOR's best story is unproven in public: the franchisor's headline claim — thermal drying in about half the time of traditional methods — has no local, job-level proof published anywhere the research found: no timed case studies, no dated drying logs, no photo documentation. Local competitors compete on response times and tenure; nobody owns quantified drying outcomes. The claim exists; the evidence library does not. (
competitor-analysis.mdGap §5;franchise-audit.md§2)
9. Brand consistency — Red, 1.5/5
- Domain splinter: two corporate domains in parallel (borestoration.com / bestoptionrestoration.com) plus a swarm of one-off location domains (borlakewood.com, boraustin.com, borseraleigh.com, borcontentsdenver.com, borestoration-*.com in many spellings). Web and social splinter in exactly the same pattern — there is no naming governance. (
social-profiles.md§3.6) - Handle chaos: §4 above. No customer-guessable pattern exists.
- A location under another name: Mesa as "Built Different Restoration" on LinkedIn. (
social-profiles.md§3.5) - A split sub-brand: MN Mold Company (St. Paul) splits the mold authority off the master brand (§8).
- A franchise-sales disclosure quirk worth knowing: the corporate footer disclosure names BOR FRANCHISING, LLC and lists states where BOR is not registered to offer/sell franchises — including Minnesota. That is about franchise sales, not operating locations (St. Paul operates), but it flags that any multi-location system build touching franchise recruitment or franchisor branding in MN needs franchisor alignment, not assumptions. (
asset-pass.mdfooter notes) - Corporate identity facts wobble: three corporate phone numbers across sources (§1), two HQ street addresses in circulation (Littleton vs Greenwood Village), two corporate HQ cities in datelines, founding years 2015/2016/2018 across directories. Individually trivial; together they say nobody owns the brand's public record. (
franchise-audit.md§2, §10)
10. Reputation & reviews — Yellow/Red, 2/5
The raw material is better than the system around it:
- Sampled ratings are genuinely good: Lakewood 5.0 (122, Birdeye), Jefferson County 4.9 (79), Central Texas 4.9 (93), Thornton 4.9 (109), St. Paul 4.8 (39), Dearborn 4.7 (79). Locations that get reviewed, get reviewed well. (
franchise-audit.md§8) - But there is no aggregate proof asset: BOR has no single national review profile and publishes no system-wide rating. 911 Restoration leads its franchise pitch with a brand-claimed 4.9-star system-wide Google rating; BOR has no equivalent number to put on any page, ad, or proposal. The homepage displays a franchisor-curated Google feed (4.6/5, 112 per
franchise-audit.md§8) — a corporate vanity display, not a per-location trust engine, and the competitor pass reading the franchise page found only individual reviews with no aggregate published there. (franchise-audit.md§8;competitor-analysis.md— 911 Restoration + Baseline) - The tail is unmanaged: the Baldwin County listing sits at 1.9 stars (18 reviews) with a detailed complaint — proof the network is not uniformly strong and that nobody is visibly working the weak profiles. BBB posture is equally patchy: A/A+ where rated, but accreditation inconsistent unit to unit, one unit "Not Rated," and at least one Birdeye profile explicitly not claimed by the owner. (
franchise-audit.md§8) - No review engine is evident: volumes are what you'd expect from organic drift, not from a post-job ask system — St. Paul's 39 reviews vs a single Woodbury competitor's 225 makes the point (§3). Reputation in this system is a local accident, not a managed asset.
11. Franchise recruitment funnel — Yellow, 3/5
The strongest surface in the audit, because the franchisor clearly spends here:
- What works: a dedicated franchise page with Discovery Kit request, training/support/territory story, Franchise 500 and Fastest-Growing credibility, FranServe recognition, and a directory ecosystem carrying FDD-derived economics ($35,000 fee, ~$186k–$231k investment, 7% royalty + 2% ad fund per recent FDD-based listings; Item 19 average unit revenue $718,089 FY2024 per 1851/BizBuySell). President Kyle Chiasson (promoted April 2025, himself a former first franchisee per franchise press) is a credible face for recruitment. (
franchise-audit.md§2, §3, §7;competitor-analysis.mdBaseline) - What's weak:
- The territory list problem (§2): recruitment marketing that reads as a locations directory undermines trust in both directions — prospects and customers alike.
- Directory data is stale in the wild: franchise directories still show 8, 22, and 23 units from older vintages next to the current 72–73. Nobody is policing the system's public numbers. (
franchise-audit.md§3) - Franchise economics conflicts across sources (fee vintages $39k vs $35k, investment ranges from $92k to $231k, veteran discount 5% vs 10%) — a prospect doing diligence finds three versions of the truth. (
franchise-audit.md§7, §10) - Recruitment success is creating the consumer-marketing problem: every new unit added to a system with no location-marketing infrastructure dilutes the brand's average public presence further.
12. Craig's own footprint — Red, 0.5/5
The finding that started this project, stated plainly:
- Craig's franchise unit is not publicly findable. A dedicated research pass (franchise site, location pages, LinkedIn, news, phone-number searches) could not verify his last name, his location name, his territory, his address, his hours, his licences, his reviews, or a single social profile for his operation. His number, (651) 470-7479, returns no public BOR association. (
research/craig-last-name.mdviatraining/bor-agent-training.md§7 andresearch/estimate-software-spec.md§13;PROJECT.md) - He is not the St. Paul unit. The live St. Paul page names owners Ethan & Cari Jo Anderson (the audit's corrected finding). Craig's operation is either not yet publicly listed, operates under a different public-facing name, or is newer than the public record. All three possibilities are the same problem: the public record does not contain him. (
franchise-audit.md§4 correction) - His customers meet a different company first. The documented path to Craig runs through a BHL, LLC marketplace page with no BOR name on it and a Pennsylvania tracking number. At the exact moment of highest intent — a homeowner with mold, phone in hand — Craig's brand, his Franchise 500 backing, his 70+ location network, and his own name do zero trust work. (
franchise-audit.md§9;trp-site-reverse-engineering.md§3) - Consequence: Craig has no owned asset that appreciates. No Google profile building reviews under his control, no site accumulating local search authority, no list, no audience. He is a fulfillment engine attached to other companies' funnels.
Fix order — prioritized
Tier 1 — Quick wins (one location, days to weeks, no franchisor dependency)
- Claim and build out Craig's Google Business Profile (or create it): correct categories, services, photos, and a review-request habit from day one. This is the highest-leverage single asset in local restoration. (Fixes §3, §10, §12)
- Publish Craig's own location page/site (the review site already built is the starting point): his name, his number, his services, his territory — the page TRP's funnel never gave him. (Fixes §12, §5)
- One brand route: one public name, one phone number, one review destination for Craig's operation; every funnel (including any marketplace leads) points at assets he owns. (Fixes §9 locally, §5)
- Review engine on every completed job: automated ask at close-out. Target: close the dozens-of-reviews gap in his market within a season. (Fixes §3, §10)
- Missed-call text-back + speed-to-lead automation in the CRM: the cheapest booked jobs in the category are the calls already being missed. (Fixes §6)
Tier 2 — Systems (one location proven, then franchisor conversation)
- CRM as the single case record: pipeline, marketplace-lead ingestion with source attribution, estimate documentation, review asks — one system (Project Step 8). (Fixes §6)
- AI agent on verified facts: chat/voice agent trained only on Craig's confirmed facts, with the guardrails in
training/agent-plan.md— answers, triages, books assessments 24/7, never quotes prices. (Fixes §7) - Content engine for one location: mold/water topic clusters, seasonal campaigns, real job documentation (timed drying proof — the unclaimed §8 differentiator), published under Craig's brand on his site and socials. (Fixes §8, §4)
- Social system for one location: consistent handles, a posting cadence fed by real jobs and the content engine — the pilot for the network pattern in the blueprint. (Fixes §4)
Tier 3 — Scale plays (require franchisor alignment)
- The multi-location system (
files/multi-location-system-blueprint.md): master template + per-location data, geo/meta system, localized blog engine, per-location AI agents, ZIP-based social — piloted on Craig, offered to the network. Requires BOR Franchising, LLC buy-in on brand standards; do not build network-wide on assumptions. (Fixes §2, §9 at system level) - Owned lead generation (the TRP system, owned): service landing pages, geo in the ad account, ZIP router into each location's CRM — so locations progressively replace rented leads with an asset. (Fixes §5 at system level)
- Photo-estimate tool: only after the CRM and rate-card data exist, and only behind the human gates in the spec. It is a Phase-3 differentiator, not a starting point. (Fixes §7; spec:
research/estimate-software-spec.md)
Standing data work (parallel, unglamorous, decisive)
- The YOUR TURN data collection — every location's verified record (owner, phone, territory/ZIPs, hours, GBP, socials, reviews) built once, governed centrally. Every tier above depends on it; its absence is why half this audit reads "unverified."
What this audit could NOT assess (honest limits)
- Corporate site technical SEO depth (meta/schema/crawl) and mobile scores — not extracted in the research; TO VERIFY with a dedicated technical pass.
- Whether any BOR location runs its own paid search — not documented in the files either way.
- Craig's internal operations (estimating system, current CRM, follow-up habits, TRP spend) — TO ASK; the 20-question YOUR TURN list in
training/bor-agent-training.mdand §13 ofresearch/estimate-software-spec.mdare the collection instruments. - The remaining ~39 units' individual presences — undocumented because they were not publicly findable in the research pass, which is itself Finding §2.
Sources (project files)
PROJECT.md— Craig context, hard rules, Anton's clarificationsaudit/franchise-audit.md— §2 company/HQ/founding conflicts, §3 unit counts, §4 location tiers + territories warning + St. Paul correction, §5 services, §6 pricing signals, §7 FDD facts, §8 reviews/BBB samples, §9 TRP-vs-BOR contrast, §10 confirmed vs unverifiedaudit/social-profiles.md— §1 corporate platforms, §2 per-location coverage (21 locations, 7 with profiles, 13 none), §3 gaps (handles, domains, Mesa rebrand, corporate-IG pointing)research/competitor-analysis.md— national scale comparisons, Twin Cities review samples, Paul Davis social system, PuroClean local blogs, 911 Restoration rating claim, MN Mold Company, Gaps §1–§8research/trp-site-reverse-engineering.md— TRP template system, number pools, ZIP gate, ads (Google + Microsoft), pro funnel, legal chassis, replication blueprintresearch/trp-model-and-kraken-application.md— TRP model anatomy and the owned-stack argumentresearch/estimate-software-spec.md— §7 pricing-data absence, §9 CRM/case-record integrations, §13 YOUR TURN questionstraining/agent-plan.md+training/bor-agent-training.md— AI absence, guardrails, the 20-question verified-facts gaplanding-page/website-plan.md+landing-page/asset-pass.md— verified brand assets, footer legal (BOR Franchising, LLC; MN franchise-sales disclosure), St. Paul owner correction, TRP operator identity (BHL, LLC)