{"compiledCode":"\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _react = require('react'); var _react2 = _interopRequireDefault(_react);\n\n function OutclimberPage() {\n  const workbook =\n    \"# Outclimber Customer Experience Workbook\\n\\nFree worksheets, checklists, and scripts for small-business operators. Copy this file into any text editor, replace the bracketed prompts, or print the pages you need. No account or email subscription is required.\\n\\nChoose one problem, complete one tool, and assign one next action. Keep customer information in your own private working copy; do not send confidential records to Outclimber.\\n\\nYou may adapt these tools for your business and client work. Please do not resell them as a template pack. Reviewed October 7, 2026.\\n\\n## Customer Journey Map\\n\\nGuide: https://outclimber.com/blog/map-customer-journey-service-business\\n\\nBusiness/service: [ ]\\nCustomer group and situation: [ ]\\nEvidence gathered from actual customer conversations: [ ]\\n\\n| Stage | What the customer wants | Touchpoint | Question or friction | Evidence | Owner | Next improvement |\\n| --- | --- | --- | --- | --- | --- | --- |\\n| Discover | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |\\n| Compare | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |\\n| Inquire | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |\\n| Buy/book | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |\\n| Receive service | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |\\n| Follow up | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |\\n\\nMark assumptions separately from observed facts. Pick one moment to improve, record the current behavior, and compare the same signal after the change.\\n\\n## CX Friction Audit\\n\\nGuide: https://outclimber.com/blog/find-friction-customer-journey\\n\\nWalk through the journey as a new customer. For each step, record what actually happens.\\n\\n- [ ] The next step is visible and understandable.\\n- [ ] The customer can find the price or how a quote works.\\n- [ ] Questions receive a clear response and an owner.\\n- [ ] Forms request only information needed at this stage.\\n- [ ] Dates, responsibilities, and changes are explained.\\n- [ ] Failure paths offer a useful way to recover.\\n- [ ] Follow-up does not depend on one person's memory.\\n\\n| Touchpoint | Friction observed | Customer consequence | Frequency/evidence | Fix | Owner | Due |\\n| --- | --- | --- | --- | --- | --- | --- |\\n| [ ] | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |\\n\\nDo not treat an unchecked box as proof of lost sales. Validate the issue with customer feedback or observed behavior before investing heavily.\\n\\n## First-Impression Audit\\n\\nGuide: https://outclimber.com/customer-experience\\n\\nFirst touchpoint tested: [website/search listing/phone/storefront/other]\\nTester unfamiliar with the business: [ ]\\n\\nAfter a brief look, ask the tester:\\n\\n1. What does this business do? [ ]\\n2. Who is it for? [ ]\\n3. Why might you trust it? [ ]\\n4. What would you do next? [ ]\\n5. What still feels unclear? [ ]\\n\\nRecord their words before explaining the page. Check that contact details, hours, service area, and next-step instructions agree across channels. First correction: [ ]. Owner/date: [ ].\\n\\n## CX Priority Scorecard\\n\\nGuide: https://outclimber.com/blog/where-to-start-improving-cx\\n\\n| Issue | Evidence | Severity (1–3) | Frequency (1–3) | Effort (1–3) | Priority | Owner |\\n| --- | --- | --- | --- | --- | --- | --- |\\n| [ ] | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |\\n\\nSeverity: 1 = small inconvenience, 2 = delay or confusion, 3 = prevents completion or materially damages trust. Frequency: 1 = occasional, 2 = recurring, 3 = common. Effort: 1 = small change, 2 = several coordinated steps, 3 = substantial work.\\n\\nUse severity × frequency ÷ effort as a discussion aid, not a revenue forecast. Address safety, accessibility, privacy, and contractual failures even when their score is low. Choose one fix and one observable success signal: [ ].\\n\\n## Positioning Worksheet\\n\\nGuide: https://outclimber.com/blog/write-a-positioning-statement\\n\\n- Customer group we can serve well: [ ]\\n- Situation that makes them seek help: [ ]\\n- Specific job they need done: [ ]\\n- Alternatives they currently consider: [ ]\\n- Difference we can demonstrate: [ ]\\n- Evidence for that difference: [ ]\\n- Work/customers outside our fit: [ ]\\n\\nDraft: “For [customer] who needs [job], we provide [offer]. Unlike [alternative], we [demonstrable difference], supported by [evidence].”\\n\\nRemove unsupported superlatives and promises. Ask a prospective customer to explain the sentence back to you. Revision: [ ].\\n\\n## Competitor Analysis Template\\n\\nGuide: https://outclimber.com/competitive-strategy\\n\\n| Alternative | Customer served | Offer and published price | Proof shown | Buying process | Observed gap | Source/date |\\n| --- | --- | --- | --- | --- | --- | --- |\\n| [ ] | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |\\n\\nInclude doing nothing, doing it in-house, and substitutes, not just direct rivals. Use public information and label unknowns; do not invent competitors' weaknesses. Gap we can credibly address: [ ]. Evidence of customer demand: [ ].\\n\\n## Competitive Differentiation Worksheet\\n\\nGuide: https://outclimber.com/competitive-strategy\\n\\n| What we do differently | Why the customer cares | Evidence we can show | Operational requirement | Honest wording |\\n| --- | --- | --- | --- | --- |\\n| [ ] | [ ] | [ ] | [ ] | [ ] |\\n\\nChoose a difference that matters to the customer and can be delivered consistently. Avoid claiming “best,” “fastest,” or guaranteed results without appropriate support. Where this difference will appear: [ ]. Who maintains the proof: [ ].\\n\\n## Offer Packaging Worksheet\\n\\nGuide: https://outclimber.com/blog/package-a-service-offer\\n\\n- Customer and problem: [ ]\\n- Included deliverables: [ ]\\n- Explicit exclusions: [ ]\\n- Customer inputs needed: [ ]\\n- Steps and realistic timing: [ ]\\n- Price or quoting method: [ ]\\n- Change-request process: [ ]\\n- Acceptance/completion criteria: [ ]\\n- Support and next steps after delivery: [ ]\\n\\nTest the package against a recent ordinary job and a difficult edge case. Does the scope still make sense? Would a customer know what is extra before agreeing? Revision: [ ].\\n\\n## Service Page Template\\n\\nGuide: https://outclimber.com/blog/improve-service-page\\n\\n1. **Headline:** State the service, customer, and useful outcome. [ ]\\n2. **Fit:** Explain who it helps and when another option is better. [ ]\\n3. **Scope:** List what is included and excluded. [ ]\\n4. **Process:** Explain the steps, timing, and customer responsibilities. [ ]\\n5. **Price:** Publish the price or explain how a quote is determined. [ ]\\n6. **Evidence:** Use genuine examples, qualifications, or permissioned testimonials. [ ]\\n7. **Questions:** Answer the questions that delay an inquiry. [ ]\\n8. **Next step:** Use one clear action and state what happens afterward. [ ]\\n\\nCheck the form on mobile, verify delivery, and test the failure message before publishing. Do not put confidential customer material or fabricated testimonials on the page.\\n\\n## Quote-Intake Checklist\\n\\nGuide: https://outclimber.com/offers\\n\\n- [ ] Customer contact and preferred response method.\\n- [ ] Requested outcome and current situation.\\n- [ ] Service location/area, where relevant.\\n- [ ] Essential scope, quantities, and constraints.\\n- [ ] Desired timing and dependencies.\\n- [ ] Inputs/photos/access needed to assess the job safely.\\n- [ ] Decision maker and approval process.\\n- [ ] Known exclusions and assumptions recorded.\\n- [ ] Quote owner and next response date assigned.\\n\\nAsk only for information needed to produce the estimate. Unknowns requiring a visit or further assessment: [ ]. Explain that estimates may change when the scope changes; document the approval process.\\n\\n## Homepage Trust Audit\\n\\nGuide: https://outclimber.com/website-experience\\n\\n- [ ] A new visitor can identify the service and intended customer.\\n- [ ] Service area and contact details are accurate.\\n- [ ] The primary action explains the next step.\\n- [ ] Prices or quoting expectations are clear where appropriate.\\n- [ ] Proof is authentic, current, and relevant.\\n- [ ] Claims and testimonials have permission and support.\\n- [ ] The page is readable and usable on a phone.\\n- [ ] Links and forms work; errors provide recovery.\\n- [ ] Privacy information is available when personal data is collected.\\n\\nMost important unanswered visitor question: [ ]. Evidence: [ ]. Change to test: [ ].\\n\\n## Website Friction Audit\\n\\nGuide: https://outclimber.com/blog/diagnose-website-conversion-problem\\n\\nComplete the main journey in a fresh browser on desktop and mobile, using keyboard navigation as well as touch/mouse.\\n\\n| Step | Expected behavior | Actual behavior | Failure/recovery | Improvement |\\n| --- | --- | --- | --- | --- |\\n| Find the offer | [ ] | [ ] | [ ] | [ ] |\\n| Understand scope/price | [ ] | [ ] | [ ] | [ ] |\\n| Find relevant proof | [ ] | [ ] | [ ] | [ ] |\\n| Submit an inquiry | [ ] | [ ] | [ ] | [ ] |\\n| Receive confirmation | [ ] | [ ] | [ ] | [ ] |\\n\\nTest an empty required field and an invalid email. Verify receipt in the real inbox, not just the on-screen success message. Remove duplicate or unnecessary requests for information.\\n\\n## Customer Onboarding Checklist\\n\\nGuide: https://outclimber.com/blog/customer-onboarding-process\\n\\n- [ ] Confirm the agreed scope, price, and exclusions.\\n- [ ] Introduce the accountable contact.\\n- [ ] Share a realistic timeline and next milestone.\\n- [ ] State what the customer needs to provide and by when.\\n- [ ] Explain communication channels and expected response times.\\n- [ ] Explain how to raise questions or request changes.\\n- [ ] Confirm receipt and address missing inputs.\\n- [ ] Check understanding before work begins.\\n- [ ] Record a handover so another team member can continue.\\n\\nIf a dependency is late, communicate the effect on timing and agree the revised next step. Owner: [ ]. Next check-in: [ ].\\n\\n## Service Recovery Email Templates\\n\\nGuide: https://outclimber.com/onboarding\\n\\n### Acknowledge and investigate\\n\\nSubject: Your concern about [service/job]\\n\\nHi [name], thank you for telling us about [specific issue]. I understand that [impact in their words]. I’m checking [what you will investigate]. I will update you by [realistic date/time], even if the investigation is still underway. You can reach me at [contact].\\n\\n### Explain the resolution\\n\\nHi [name], we found [verified explanation]. We can offer [specific available remedy] by [date]. [Any action needed from the customer]. Please let me know whether this addresses your concern or what remains unresolved.\\n\\n### Confirm completion\\n\\nHi [name], [remedy] is complete. Has this resolved the issue for you? We are also [specific prevention step, if actually underway]. Thank you for giving us the chance to address it.\\n\\nAdapt these to the facts. Do not blame the customer, promise remedies you cannot provide, disclose another person's information, or condition a remedy on changing a review.\\n\\n## Customer Follow-Up Sequence\\n\\nGuide: https://outclimber.com/blog/customer-follow-up-system\\n\\n| Trigger | Purpose | Channel | Timing | Message | Owner | Stop condition |\\n| --- | --- | --- | --- | --- | --- | --- |\\n| Service completed | Check outcome | [ ] | [ ] | [ ] | [ ] | Issue needs recovery |\\n| Appropriate interval | Useful care/reminder | [ ] | [ ] | [ ] | [ ] | Opt-out/no relevance |\\n| Relevant next need | Offer useful next step | [ ] | [ ] | [ ] | [ ] | Opt-out/no relevance |\\n\\nMatch timing to the service and respect consent and channel rules. Keep transactional updates separate from marketing. Stop when a recipient opts out and avoid repeated asks after silence. Review customer responses, not just sends.\\n\\n## Review Request Script\\n\\nGuide: https://outclimber.com/blog/how-to-ask-for-reviews-ethically\\n\\n“Thank you for choosing [business]. If you would like to share your experience, you can leave an honest review here: [permitted platform link]. We welcome feedback about what worked and what we could improve. Leaving a review is optional.”\\n\\n- Request reviews consistently from real customers, without selecting only those expected to be positive.\\n- Do not ask for a particular rating, offer incentives, buy reviews, or make support dependent on a review.\\n- Check the destination platform's policy first. Yelp prohibits soliciting reviews; do not use this script to ask for a Yelp review.\\n- Keep private feedback available to everyone, without using it to divert unhappy customers away from public reviews.\\n\\nThis script is educational guidance, not a compliance certification. Check current rules for your business and jurisdiction.\\n\\nSources: [FTC review solicitation guidance](https://www.ftc.gov/business-guidance/resources/soliciting-paying-online-reviews-guide-marketers), [Google Maps content policy](https://support.google.com/contributionpolicy/answer/7400114), [Yelp: Don't Ask for Reviews](https://www.yelp-support.com/article/Don-t-Ask-for-Reviews?l=en_US).\\n\\n## SOP Template\\n\\nGuide: https://outclimber.com/blog/how-to-write-an-sop\\n\\nProcess: [ ]\\nPurpose and successful outcome: [ ]\\nOwner and backup: [ ]\\nVersion/date: [ ]\\nTrigger and required inputs: [ ]\\nTools/access needed: [ ]\\n\\n| Step | Action | Responsible person | Completion check | Exception/escalation |\\n| --- | --- | --- | --- | --- |\\n| 1 | [ ] | [ ] | [ ] | [ ] |\\n| 2 | [ ] | [ ] | [ ] | [ ] |\\n| 3 | [ ] | [ ] | [ ] | [ ] |\\n\\nRecord where evidence is kept, the escalation contact, and the next review date. Have someone unfamiliar with the process follow it; revise any step they cannot complete without explanation. Keep passwords out of the document.\\n\\n## Customer Feedback Survey\\n\\nGuide: https://outclimber.com/operations\\n\\nIntroduction: “We’re improving [service]. This short survey is optional. Please share what actually happened; critical feedback is welcome. Avoid including sensitive personal information.”\\n\\n1. What were you trying to accomplish? [ ]\\n2. How easy or difficult was it to get what you needed? [Very difficult / Difficult / Neither / Easy / Very easy / Not applicable]\\n3. What worked well? [ ]\\n4. What was confusing, frustrating, or missing? [ ]\\n5. What one thing should we improve? [ ]\\n6. May we contact you about this feedback? [Yes / No; optional contact field]\\n\\nSend consistently, avoid leading wording, and separate feedback from public review requests. Do not publish responses or testimonials without permission. Record response count and who was invited before interpreting results.\\n\";\n  const [actionError, setActionError] = _react2.default.useState(\"\");\n  function download() {\n    let url = \"\";\n    let anchor = null;\n    try {\n      url = URL.createObjectURL(\n        new Blob([workbook], { type: \"text/markdown;charset=utf-8\" }),\n      );\n      anchor = document.createElement(\"a\");\n      anchor.href = url;\n      anchor.download = \"outclimber-customer-experience-workbook.md\";\n      document.body.appendChild(anchor);\n      anchor.click();\n      setActionError(\"\");\n    } catch (e) {\n      setActionError(\n        \"Download unavailable in this browser. You can still select and copy the worksheets below.\",\n      );\n    } finally {\n      _optionalChain([anchor, 'optionalAccess', _ => _.remove, 'call', _2 => _2()]);\n      if (url) setTimeout(() => URL.revokeObjectURL(url), 1000);\n    }\n  }\n  function printWorkbook() {\n    let frame = null;\n    try {\n      const content = document.getElementById(\"workbook-top\");\n      if (!content) throw new Error(\"Workbook content unavailable\");\n      frame = document.createElement(\"iframe\");\n      frame.title = \"Printable Outclimber workbook\";\n      frame.style.cssText =\n        \"position:fixed;width:0;height:0;bottom:0;left:0;border:0\";\n      document.body.appendChild(frame);\n      const printDocument = frame.contentDocument;\n      const printWindow = frame.contentWindow;\n      if (!printDocument || !printWindow)\n        throw new Error(\"Print document unavailable\");\n      printDocument.title = \"Outclimber Customer Experience Workbook\";\n      const base = printDocument.createElement(\"base\");\n      base.href = \"https://outclimber.com/templates/workbook\";\n      printDocument.head.appendChild(base);\n      printDocument.body.style.fontFamily =\n        getComputedStyle(content).fontFamily;\n      printDocument.body.appendChild(printDocument.importNode(content, true));\n      const printableFrame = frame;\n      printWindow.addEventListener(\n        \"afterprint\",\n        () => printableFrame.remove(),\n        { once: true },\n      );\n      setActionError(\"\");\n      printWindow.focus();\n      printWindow.print();\n    } catch (e2) {\n      _optionalChain([frame, 'optionalAccess', _3 => _3.remove, 'call', _4 => _4()]);\n      setActionError(\n        \"Print preview is unavailable in this browser. Download the workbook and print your local copy instead.\",\n      );\n    }\n  }\n  return (\n    _react2.default.createElement('div', { className: \"oc-field\", id: \"workbook-top\",}\n      , _react2.default.createElement('style', null\n        , \n          \".oc-field{width:100%;max-width:100%;min-width:0;margin:auto;padding:1.4rem 1rem 2rem;color:var(--c13eu7bh-runtime-text,#183731);font-family:var(--c13eu7bh-font-body,inherit);line-height:1.65}.oc-field *{box-sizing:border-box;min-width:0}.oc-field a{color:var(--c13eu7bh-runtime-accent,#1f6f6b);text-underline-offset:4px}.oc-field a:hover{text-decoration:underline}.oc-field :is(a,button,input,summary):focus-visible{outline:3px solid var(--c13eu7bh-runtime-accent,#1f6f6b);outline-offset:4px}.oc-field h1,.oc-field h2,.oc-field h3{font-family:var(--c13eu7bh-font-heading,Georgia,serif);font-weight:500;color:var(--c13eu7bh-runtime-text,#183731);line-height:1.13}.oc-field h1{font-size:clamp(2.5rem,5.2vw,4.5rem);letter-spacing:-.045em;margin:.7rem 0 1.2rem;max-width:16ch}.oc-field h2{font-size:clamp(1.75rem,3vw,2.25rem);letter-spacing:-.025em;margin:0 0 1.1rem}.oc-field h3{font-size:1.4rem;margin:0 0 .75rem}.oc-field p{margin:.6rem 0 1rem}.oc-field .oc-kicker{font:600 .72rem/1.5 var(--c13eu7bh-font-body,inherit);letter-spacing:.14em;text-transform:uppercase}.oc-field .oc-hero{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:3rem;align-items:center;border-bottom:1px solid var(--c13eu7bh-runtime-border,#d9dfd6);padding:1rem 0 3.2rem;margin-bottom:3.2rem}.oc-field .oc-lead{font-size:1.1rem;max-width:54ch;color:var(--c13eu7bh-runtime-muted,#53615c)}.oc-field .oc-actions{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center;margin-top:1.5rem}.oc-field .oc-button{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.8rem 1.2rem;min-height:48px;border:1px solid var(--c13eu7bh-runtime-border,#d9dfd6);border-radius:.4rem;font:600 .9rem/1.4 var(--c13eu7bh-font-body,inherit);text-decoration:none;background:var(--c13eu7bh-runtime-panel,#fff);color:var(--c13eu7bh-runtime-text,#183731);cursor:pointer}.oc-field .oc-button.primary{background:var(--c13eu7bh-runtime-action-bg,#1f6f6b);color:var(--c13eu7bh-runtime-action-fg,#fff);border-color:transparent}.oc-field .oc-note{border-radius:.7rem;background:var(--c13eu7bh-runtime-accent-soft,#e2ebe3);padding:1.7rem}.oc-field .oc-note strong{display:block;font:500 1.6rem/1.2 var(--c13eu7bh-font-heading,Georgia,serif);margin:.7rem 0}.oc-field .oc-number{font:500 4.5rem/1 var(--c13eu7bh-font-heading,Georgia,serif);letter-spacing:-.05em;opacity:.8}.oc-field .oc-note p{font-size:.9rem}.oc-field .oc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.oc-field .oc-card{padding:1.6rem;background:var(--c13eu7bh-runtime-panel,#fff);border:1px solid var(--c13eu7bh-runtime-border,#d9dfd6);border-radius:.65rem;overflow-wrap:anywhere}.oc-field .oc-card p{color:var(--c13eu7bh-runtime-muted,#53615c);font-size:.94rem}.oc-field .oc-card .oc-actions{margin-top:1.2rem}.oc-field .oc-section{margin-bottom:3rem;scroll-margin-top:6rem}.oc-field .oc-group{margin:1.8rem 0}.oc-field .oc-guides{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.oc-field .oc-guides li{border-top:1px solid var(--c13eu7bh-runtime-border,#d9dfd6);padding:1.15rem 0;color:var(--c13eu7bh-runtime-muted,#53615c);font-size:.94rem}.oc-field .oc-guides li>a:first-child{display:block;color:var(--c13eu7bh-runtime-text,#183731);font-size:1.05rem;font-weight:600;text-decoration:none;margin-bottom:.35rem}.oc-field .oc-prose{max-width:68ch}.oc-field .oc-prose p,.oc-field .oc-prose li{color:var(--c13eu7bh-runtime-muted,#53615c)}.oc-field .oc-reading{display:grid;grid-template-columns:14rem minmax(0,1fr);gap:3rem;align-items:start}.oc-field .oc-index{position:sticky;top:6rem;border-top:2px solid var(--c13eu7bh-runtime-accent,#1f6f6b);padding-top:1rem}.oc-field .oc-index a{display:block;font-size:.86rem;padding:.4rem 0;line-height:1.4;text-decoration:none}.oc-field .oc-index p{font-weight:600}.oc-field details{border-top:1px solid var(--c13eu7bh-runtime-border,#d9dfd6);padding:1rem 0}.oc-field summary{cursor:pointer;font-weight:600;color:var(--c13eu7bh-runtime-text,#183731);padding:.35rem 0;min-height:44px}.oc-field details p{color:var(--c13eu7bh-runtime-muted,#53615c);max-width:70ch}.oc-field blockquote{margin:1rem 0;padding:.8rem 1.2rem;border-left:3px solid var(--c13eu7bh-runtime-accent,#1f6f6b);background:var(--c13eu7bh-runtime-accent-soft,#e2ebe3);font-size:.95rem}.oc-field .oc-search{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-bottom:1.5rem}.oc-field label{font-size:.85rem;font-weight:600}.oc-field input[type=search]{display:block;width:100%;max-width:32rem;min-height:48px;padding:.8rem 1rem;border:1px solid var(--c13eu7bh-runtime-border,#d9dfd6);border-radius:.4rem;background:var(--c13eu7bh-runtime-panel,#fff);color:var(--c13eu7bh-runtime-text,#183731);font:inherit}.oc-field .oc-search label{flex:1 1 18rem}.oc-field .oc-search span{color:var(--c13eu7bh-runtime-muted,#53615c);font-size:.85rem}.oc-field .oc-chips{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1.5rem}.oc-field .oc-chip{border:1px solid var(--c13eu7bh-runtime-border,#d9dfd6);border-radius:2rem;background:transparent;color:var(--c13eu7bh-runtime-text,#183731);padding:.6rem .85rem;min-height:44px;font:500 .8rem/1.4 var(--c13eu7bh-font-body,inherit);cursor:pointer}.oc-field .oc-chip[aria-pressed=true]{background:var(--c13eu7bh-runtime-action-bg,#1f6f6b);color:var(--c13eu7bh-runtime-action-fg,#fff)}.oc-field .oc-term{display:grid;grid-template-columns:13rem minmax(0,1fr);gap:2rem;border-top:1px solid var(--c13eu7bh-runtime-border,#d9dfd6);padding:1.5rem 0;scroll-margin-top:6rem}.oc-field .oc-term p{font-size:.95rem}.oc-field .oc-table{overflow-x:auto;max-width:100%;border:1px solid var(--c13eu7bh-runtime-border,#d9dfd6);border-radius:.4rem;margin:1.3rem 0;outline-offset:3px}.oc-field table{width:100%;min-width:36rem;border-collapse:collapse;font-size:.8rem;line-height:1.5;background:var(--c13eu7bh-runtime-panel,#fff)}.oc-field th,.oc-field td{padding:.65rem .8rem;text-align:left;border-bottom:1px solid var(--c13eu7bh-runtime-border,#d9dfd6);vertical-align:top}.oc-field th{background:var(--c13eu7bh-runtime-accent-soft,#e2ebe3);color:var(--c13eu7bh-runtime-text,#183731);font-weight:600}.oc-field .oc-workbook .oc-section{padding-bottom:2rem;border-bottom:1px solid var(--c13eu7bh-runtime-border,#d9dfd6)}.oc-field .oc-empty{padding:2rem;background:var(--c13eu7bh-runtime-accent-soft,#e2ebe3);border-radius:.6rem}.oc-field .oc-divider{border-top:1px solid var(--c13eu7bh-runtime-border,#d9dfd6);padding-top:2rem}.oc-field .oc-route-line{display:flex;gap:.6rem;align-items:center;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;margin-top:1rem}.oc-field .oc-route-line i{width:6px;height:6px;border-radius:100%;background:var(--c13eu7bh-runtime-accent,#1f6f6b)}@media(max-width:760px){.oc-field{padding-top:.5rem;padding-inline:1rem}.oc-field .oc-hero{grid-template-columns:1fr;gap:1.4rem;padding-bottom:2rem;margin-bottom:2rem}.oc-field .oc-reading{grid-template-columns:1fr;gap:1.5rem}.oc-field .oc-index{position:static}.oc-field .oc-index nav{display:flex;flex-wrap:wrap;gap:.35rem .9rem}.oc-field .oc-index a{min-height:44px;display:flex;align-items:center}.oc-field .oc-term{grid-template-columns:1fr;gap:.2rem}.oc-field .oc-grid,.oc-field .oc-guides{grid-template-columns:1fr}.oc-field .oc-card{padding:1.25rem}.oc-field .oc-card>p>a{min-height:44px}.oc-field .oc-note{padding:1.3rem}.oc-field .oc-note .oc-number{font-size:3rem}.oc-field a{display:inline-block;padding-top:.25rem;padding-bottom:.25rem}.oc-field .oc-actions{align-items:stretch}.oc-field .oc-actions .oc-button{flex:1 1 auto}}@media print{.oc-field .oc-index,.oc-field .oc-search,.oc-field .oc-chips,.oc-field .oc-actions{display:none}.oc-field .oc-reading{display:block}.oc-field .oc-table{overflow:visible}.oc-field table{min-width:0}.oc-field .oc-workbook .oc-section{break-before:page}.oc-field details>*{display:block}}\"\n        \n      )\n      , _react2.default.createElement('header', { className: \"oc-hero\",}\n        , _react2.default.createElement('div', null\n          , _react2.default.createElement('a', { className: \"oc-kicker\", href: \"/\",}, \"Outclimber / Free workbook\"\n\n          )\n          , _react2.default.createElement('h1', null, \"Your next improvement starts here.\")\n          , _react2.default.createElement('p', { className: \"oc-lead\",}\n            , \n              \"Free worksheets, checklists, and scripts for small-business operators. Copy this file into any text editor, replace the bracketed prompts, or print the pages you need. No account or email subscription is required.\"\n            \n          )\n          , _react2.default.createElement('div', { className: \"oc-actions\",}\n            , _react2.default.createElement('button', { className: \"oc-button primary\" , onClick: download,}, \"Download editable Markdown \"\n                 , _react2.default.createElement('span', { 'aria-hidden': \"true\",}, \"↓\")\n            )\n            , _react2.default.createElement('button', { className: \"oc-button\", onClick: printWorkbook,}, \"Print workbook\"\n\n            )\n          )\n        )\n        , _react2.default.createElement('aside', { className: \"oc-note\",}\n          , _react2.default.createElement('span', { className: \"oc-kicker\",}, \"A practical field guide\"   )\n          , _react2.default.createElement('div', { className: \"oc-number\", 'aria-hidden': \"true\",}, \"18\"\n\n          )\n          , _react2.default.createElement('strong', null, \"No login. No signup.\")\n          , _react2.default.createElement('p', null\n            , \n              \"Choose a worksheet below, or download the complete file and fill it in privately. Your working copy stays with you.\"\n            \n          )\n          , _react2.default.createElement('div', { className: \"oc-route-line\", 'aria-hidden': \"true\",}\n            , _react2.default.createElement('i', null ), \"Choose \"\n             , _react2.default.createElement('i', null ), \"Trust \"\n             , _react2.default.createElement('i', null ), \"Buy\"\n\n          )\n        )\n      )\n      , actionError ? _react2.default.createElement('p', { role: \"alert\",}, actionError) : null\n      , _react2.default.createElement('div', { className: \"oc-reading oc-workbook\" ,}\n        , _react2.default.createElement('aside', { className: \"oc-index\",}\n          , _react2.default.createElement('p', null, \"Jump to a worksheet\"   )\n          , _react2.default.createElement('nav', { 'aria-label': \"Workbook worksheets\" ,}\n            , _react2.default.createElement('a', { href: \"#customer-journey-map\",}, \"01  Customer Journey Map\")\n            , _react2.default.createElement('a', { href: \"#cx-friction-audit\",}, \"02  CX Friction Audit\")\n            , _react2.default.createElement('a', { href: \"#first-impression-audit\",}, \"03  First-Impression Audit\")\n            , _react2.default.createElement('a', { href: \"#cx-priority-scorecard\",}, \"04  CX Priority Scorecard\")\n            , _react2.default.createElement('a', { href: \"#positioning-worksheet\",}, \"05  Positioning Worksheet\")\n            , _react2.default.createElement('a', { href: \"#competitor-analysis-template\",}\n              , \"06  Competitor Analysis Template\"\n            )\n            , _react2.default.createElement('a', { href: \"#competitive-differentiation-worksheet\",}\n              , \"07  Competitive Differentiation Worksheet\"\n            )\n            , _react2.default.createElement('a', { href: \"#offer-packaging-worksheet\",}\n              , \"08  Offer Packaging Worksheet\"\n            )\n            , _react2.default.createElement('a', { href: \"#service-page-template\",}, \"09  Service Page Template\")\n            , _react2.default.createElement('a', { href: \"#quote-intake-checklist\",}, \"10  Quote-Intake Checklist\")\n            , _react2.default.createElement('a', { href: \"#homepage-trust-audit\",}, \"11  Homepage Trust Audit\")\n            , _react2.default.createElement('a', { href: \"#website-friction-audit\",}, \"12  Website Friction Audit\")\n            , _react2.default.createElement('a', { href: \"#customer-onboarding-checklist\",}\n              , \"13  Customer Onboarding Checklist\"\n            )\n            , _react2.default.createElement('a', { href: \"#service-recovery-email-templates\",}\n              , \"14  Service Recovery Email Templates\"\n            )\n            , _react2.default.createElement('a', { href: \"#customer-follow-up-sequence\",}\n              , \"15  Customer Follow-Up Sequence\"\n            )\n            , _react2.default.createElement('a', { href: \"#review-request-script\",}, \"16  Review Request Script\")\n            , _react2.default.createElement('a', { href: \"#sop-template\",}, \"17  SOP Template\")\n            , _react2.default.createElement('a', { href: \"#customer-feedback-survey\",}\n              , \"18  Customer Feedback Survey\"\n            )\n          )\n        )\n        , _react2.default.createElement('div', null\n          , _react2.default.createElement('p', null\n            , \n              \"Choose one problem, complete one tool, and assign one next action. Keep customer information in your own private working copy; do not send confidential records to Outclimber.\"\n            \n          )\n          , _react2.default.createElement('p', null\n            , \n              \"You may adapt these tools for your business and client work. Please do not resell them as a template pack. Reviewed October 7, 2026.\"\n            \n          )\n          , _react2.default.createElement('section', { className: \"oc-section\", id: \"customer-journey-map\",}\n            , _react2.default.createElement('span', { className: \"oc-kicker\",}, \"Worksheet 01 / 18\"   )\n            , _react2.default.createElement('h2', null, \"Customer Journey Map\")\n            , _react2.default.createElement('p', null\n              , \"Guide: \"\n              , _react2.default.createElement('a', { href: \"https://outclimber.com/blog/map-customer-journey-service-business\",}\n                , \n                  \"https://outclimber.com/blog/map-customer-journey-service-business\"\n                \n              )\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Business/service: [ ]\\nCustomer group and situation: [ ]\\nEvidence gathered from actual customer conversations: [ ]\"\n              \n            )\n            , _react2.default.createElement('div', {\n              className: \"oc-table\",\n              role: \"region\",\n              'aria-label': \"Worksheet table; scroll horizontally to see every column\"       ,\n              tabIndex: 0,}\n\n              , _react2.default.createElement('table', null\n                , _react2.default.createElement('thead', null\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Stage\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"What the customer wants\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Touchpoint\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Question or friction\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Evidence\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Owner\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Next improvement\")\n                  )\n                )\n                , _react2.default.createElement('tbody', null\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('td', null, \"Discover\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                  )\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('td', null, \"Compare\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                  )\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('td', null, \"Inquire\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                  )\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('td', null, \"Buy/book\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                  )\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('td', null, \"Receive service\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                  )\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('td', null, \"Follow up\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                  )\n                )\n              )\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Mark assumptions separately from observed facts. Pick one moment to improve, record the current behavior, and compare the same signal after the change.\"\n              \n            )\n            , _react2.default.createElement('a', { href: \"#workbook-top\",}, \"Back to workbook index ↑\"    )\n          )\n          , _react2.default.createElement('section', { className: \"oc-section\", id: \"cx-friction-audit\",}\n            , _react2.default.createElement('span', { className: \"oc-kicker\",}, \"Worksheet 02 / 18\"   )\n            , _react2.default.createElement('h2', null, \"CX Friction Audit\")\n            , _react2.default.createElement('p', null\n              , \"Guide: \"\n              , _react2.default.createElement('a', { href: \"https://outclimber.com/blog/find-friction-customer-journey\",}\n                , \"https://outclimber.com/blog/find-friction-customer-journey\"\n              )\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Walk through the journey as a new customer. For each step, record what actually happens.\"\n              \n            )\n            , _react2.default.createElement('ul', null\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"The next step is visible and understandable.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"The customer can find the price or how a quote works.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Questions receive a clear response and an owner.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Forms request only information needed at this stage.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Dates, responsibilities, and changes are explained.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Failure paths offer a useful way to recover.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Follow-up does not depend on one person's memory.\"\n              )\n            )\n            , _react2.default.createElement('div', {\n              className: \"oc-table\",\n              role: \"region\",\n              'aria-label': \"Worksheet table; scroll horizontally to see every column\"       ,\n              tabIndex: 0,}\n\n              , _react2.default.createElement('table', null\n                , _react2.default.createElement('thead', null\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Touchpoint\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Friction observed\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Customer consequence\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Frequency/evidence\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Fix\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Owner\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Due\")\n                  )\n                )\n                , _react2.default.createElement('tbody', null\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                  )\n                )\n              )\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Do not treat an unchecked box as proof of lost sales. Validate the issue with customer feedback or observed behavior before investing heavily.\"\n              \n            )\n            , _react2.default.createElement('a', { href: \"#workbook-top\",}, \"Back to workbook index ↑\"    )\n          )\n          , _react2.default.createElement('section', { className: \"oc-section\", id: \"first-impression-audit\",}\n            , _react2.default.createElement('span', { className: \"oc-kicker\",}, \"Worksheet 03 / 18\"   )\n            , _react2.default.createElement('h2', null, \"First-Impression Audit\")\n            , _react2.default.createElement('p', null\n              , \"Guide: \"\n              , _react2.default.createElement('a', { href: \"https://outclimber.com/customer-experience\",}\n                , \"https://outclimber.com/customer-experience\"\n              )\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"First touchpoint tested: [website/search listing/phone/storefront/other]\\nTester unfamiliar with the business: [ ]\"\n              \n            )\n            , _react2.default.createElement('p', null, \"After a brief look, ask the tester:\")\n            , _react2.default.createElement('ol', null\n              , _react2.default.createElement('li', null, \"What does this business do? [ ]\")\n              , _react2.default.createElement('li', null, \"Who is it for? [ ]\")\n              , _react2.default.createElement('li', null, \"Why might you trust it? [ ]\")\n              , _react2.default.createElement('li', null, \"What would you do next? [ ]\")\n              , _react2.default.createElement('li', null, \"What still feels unclear? [ ]\")\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Record their words before explaining the page. Check that contact details, hours, service area, and next-step instructions agree across channels. First correction: [ ]. Owner/date: [ ].\"\n              \n            )\n            , _react2.default.createElement('a', { href: \"#workbook-top\",}, \"Back to workbook index ↑\"    )\n          )\n          , _react2.default.createElement('section', { className: \"oc-section\", id: \"cx-priority-scorecard\",}\n            , _react2.default.createElement('span', { className: \"oc-kicker\",}, \"Worksheet 04 / 18\"   )\n            , _react2.default.createElement('h2', null, \"CX Priority Scorecard\")\n            , _react2.default.createElement('p', null\n              , \"Guide: \"\n              , _react2.default.createElement('a', { href: \"https://outclimber.com/blog/where-to-start-improving-cx\",}\n                , \"https://outclimber.com/blog/where-to-start-improving-cx\"\n              )\n            )\n            , _react2.default.createElement('div', {\n              className: \"oc-table\",\n              role: \"region\",\n              'aria-label': \"Worksheet table; scroll horizontally to see every column\"       ,\n              tabIndex: 0,}\n\n              , _react2.default.createElement('table', null\n                , _react2.default.createElement('thead', null\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Issue\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Evidence\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Severity (1–3)\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Frequency (1–3)\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Effort (1–3)\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Priority\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Owner\")\n                  )\n                )\n                , _react2.default.createElement('tbody', null\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                  )\n                )\n              )\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Severity: 1 = small inconvenience, 2 = delay or confusion, 3 = prevents completion or materially damages trust. Frequency: 1 = occasional, 2 = recurring, 3 = common. Effort: 1 = small change, 2 = several coordinated steps, 3 = substantial work.\"\n              \n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Use severity × frequency ÷ effort as a discussion aid, not a revenue forecast. Address safety, accessibility, privacy, and contractual failures even when their score is low. Choose one fix and one observable success signal: [ ].\"\n              \n            )\n            , _react2.default.createElement('a', { href: \"#workbook-top\",}, \"Back to workbook index ↑\"    )\n          )\n          , _react2.default.createElement('section', { className: \"oc-section\", id: \"positioning-worksheet\",}\n            , _react2.default.createElement('span', { className: \"oc-kicker\",}, \"Worksheet 05 / 18\"   )\n            , _react2.default.createElement('h2', null, \"Positioning Worksheet\")\n            , _react2.default.createElement('p', null\n              , \"Guide: \"\n              , _react2.default.createElement('a', { href: \"https://outclimber.com/blog/write-a-positioning-statement\",}\n                , \"https://outclimber.com/blog/write-a-positioning-statement\"\n              )\n            )\n            , _react2.default.createElement('ul', null\n              , _react2.default.createElement('li', null, \"Customer group we can serve well: [ ]\")\n              , _react2.default.createElement('li', null, \"Situation that makes them seek help: [ ]\")\n              , _react2.default.createElement('li', null, \"Specific job they need done: [ ]\")\n              , _react2.default.createElement('li', null, \"Alternatives they currently consider: [ ]\")\n              , _react2.default.createElement('li', null, \"Difference we can demonstrate: [ ]\")\n              , _react2.default.createElement('li', null, \"Evidence for that difference: [ ]\")\n              , _react2.default.createElement('li', null, \"Work/customers outside our fit: [ ]\")\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Draft: “For [customer] who needs [job], we provide [offer]. Unlike [alternative], we [demonstrable difference], supported by [evidence].”\"\n              \n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Remove unsupported superlatives and promises. Ask a prospective customer to explain the sentence back to you. Revision: [ ].\"\n              \n            )\n            , _react2.default.createElement('a', { href: \"#workbook-top\",}, \"Back to workbook index ↑\"    )\n          )\n          , _react2.default.createElement('section', { className: \"oc-section\", id: \"competitor-analysis-template\",}\n            , _react2.default.createElement('span', { className: \"oc-kicker\",}, \"Worksheet 06 / 18\"   )\n            , _react2.default.createElement('h2', null, \"Competitor Analysis Template\")\n            , _react2.default.createElement('p', null\n              , \"Guide: \"\n              , _react2.default.createElement('a', { href: \"https://outclimber.com/competitive-strategy\",}\n                , \"https://outclimber.com/competitive-strategy\"\n              )\n            )\n            , _react2.default.createElement('div', {\n              className: \"oc-table\",\n              role: \"region\",\n              'aria-label': \"Worksheet table; scroll horizontally to see every column\"       ,\n              tabIndex: 0,}\n\n              , _react2.default.createElement('table', null\n                , _react2.default.createElement('thead', null\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Alternative\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Customer served\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Offer and published price\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Proof shown\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Buying process\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Observed gap\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Source/date\")\n                  )\n                )\n                , _react2.default.createElement('tbody', null\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                  )\n                )\n              )\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Include doing nothing, doing it in-house, and substitutes, not just direct rivals. Use public information and label unknowns; do not invent competitors' weaknesses. Gap we can credibly address: [ ]. Evidence of customer demand: [ ].\"\n              \n            )\n            , _react2.default.createElement('a', { href: \"#workbook-top\",}, \"Back to workbook index ↑\"    )\n          )\n          , _react2.default.createElement('section', {\n            className: \"oc-section\",\n            id: \"competitive-differentiation-worksheet\",}\n\n            , _react2.default.createElement('span', { className: \"oc-kicker\",}, \"Worksheet 07 / 18\"   )\n            , _react2.default.createElement('h2', null, \"Competitive Differentiation Worksheet\")\n            , _react2.default.createElement('p', null\n              , \"Guide: \"\n              , _react2.default.createElement('a', { href: \"https://outclimber.com/competitive-strategy\",}\n                , \"https://outclimber.com/competitive-strategy\"\n              )\n            )\n            , _react2.default.createElement('div', {\n              className: \"oc-table\",\n              role: \"region\",\n              'aria-label': \"Worksheet table; scroll horizontally to see every column\"       ,\n              tabIndex: 0,}\n\n              , _react2.default.createElement('table', null\n                , _react2.default.createElement('thead', null\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"What we do differently\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Why the customer cares\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Evidence we can show\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Operational requirement\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Honest wording\")\n                  )\n                )\n                , _react2.default.createElement('tbody', null\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                  )\n                )\n              )\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Choose a difference that matters to the customer and can be delivered consistently. Avoid claiming “best,” “fastest,” or guaranteed results without appropriate support. Where this difference will appear: [ ]. Who maintains the proof: [ ].\"\n              \n            )\n            , _react2.default.createElement('a', { href: \"#workbook-top\",}, \"Back to workbook index ↑\"    )\n          )\n          , _react2.default.createElement('section', { className: \"oc-section\", id: \"offer-packaging-worksheet\",}\n            , _react2.default.createElement('span', { className: \"oc-kicker\",}, \"Worksheet 08 / 18\"   )\n            , _react2.default.createElement('h2', null, \"Offer Packaging Worksheet\")\n            , _react2.default.createElement('p', null\n              , \"Guide: \"\n              , _react2.default.createElement('a', { href: \"https://outclimber.com/blog/package-a-service-offer\",}\n                , \"https://outclimber.com/blog/package-a-service-offer\"\n              )\n            )\n            , _react2.default.createElement('ul', null\n              , _react2.default.createElement('li', null, \"Customer and problem: [ ]\")\n              , _react2.default.createElement('li', null, \"Included deliverables: [ ]\")\n              , _react2.default.createElement('li', null, \"Explicit exclusions: [ ]\")\n              , _react2.default.createElement('li', null, \"Customer inputs needed: [ ]\")\n              , _react2.default.createElement('li', null, \"Steps and realistic timing: [ ]\")\n              , _react2.default.createElement('li', null, \"Price or quoting method: [ ]\")\n              , _react2.default.createElement('li', null, \"Change-request process: [ ]\")\n              , _react2.default.createElement('li', null, \"Acceptance/completion criteria: [ ]\")\n              , _react2.default.createElement('li', null, \"Support and next steps after delivery: [ ]\")\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Test the package against a recent ordinary job and a difficult edge case. Does the scope still make sense? Would a customer know what is extra before agreeing? Revision: [ ].\"\n              \n            )\n            , _react2.default.createElement('a', { href: \"#workbook-top\",}, \"Back to workbook index ↑\"    )\n          )\n          , _react2.default.createElement('section', { className: \"oc-section\", id: \"service-page-template\",}\n            , _react2.default.createElement('span', { className: \"oc-kicker\",}, \"Worksheet 09 / 18\"   )\n            , _react2.default.createElement('h2', null, \"Service Page Template\")\n            , _react2.default.createElement('p', null\n              , \"Guide: \"\n              , _react2.default.createElement('a', { href: \"https://outclimber.com/blog/improve-service-page\",}\n                , \"https://outclimber.com/blog/improve-service-page\"\n              )\n            )\n            , _react2.default.createElement('ol', null\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('strong', null, \"Headline:\")\n                , \" State the service, customer, and useful outcome. [ ]\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('strong', null, \"Fit:\")\n                , \" Explain who it helps and when another option is better. [ ]\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('strong', null, \"Scope:\")\n                , \" List what is included and excluded. [ ]\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('strong', null, \"Process:\")\n                , \n                  \" Explain the steps, timing, and customer responsibilities. [ ]\"\n                \n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('strong', null, \"Price:\")\n                , \" Publish the price or explain how a quote is determined. [ ]\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('strong', null, \"Evidence:\")\n                , \n                  \" Use genuine examples, qualifications, or permissioned testimonials. [ ]\"\n                \n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('strong', null, \"Questions:\")\n                , \" Answer the questions that delay an inquiry. [ ]\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('strong', null, \"Next step:\")\n                , \" Use one clear action and state what happens afterward. [ ]\"\n              )\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Check the form on mobile, verify delivery, and test the failure message before publishing. Do not put confidential customer material or fabricated testimonials on the page.\"\n              \n            )\n            , _react2.default.createElement('a', { href: \"#workbook-top\",}, \"Back to workbook index ↑\"    )\n          )\n          , _react2.default.createElement('section', { className: \"oc-section\", id: \"quote-intake-checklist\",}\n            , _react2.default.createElement('span', { className: \"oc-kicker\",}, \"Worksheet 10 / 18\"   )\n            , _react2.default.createElement('h2', null, \"Quote-Intake Checklist\")\n            , _react2.default.createElement('p', null\n              , \"Guide: \"\n              , _react2.default.createElement('a', { href: \"https://outclimber.com/offers\",}\n                , \"https://outclimber.com/offers\"\n              )\n            )\n            , _react2.default.createElement('ul', null\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Customer contact and preferred response method.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Requested outcome and current situation.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Service location/area, where relevant.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Essential scope, quantities, and constraints.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Desired timing and dependencies.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Inputs/photos/access needed to assess the job safely.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Decision maker and approval process.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Known exclusions and assumptions recorded.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Quote owner and next response date assigned.\"\n              )\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Ask only for information needed to produce the estimate. Unknowns requiring a visit or further assessment: [ ]. Explain that estimates may change when the scope changes; document the approval process.\"\n              \n            )\n            , _react2.default.createElement('a', { href: \"#workbook-top\",}, \"Back to workbook index ↑\"    )\n          )\n          , _react2.default.createElement('section', { className: \"oc-section\", id: \"homepage-trust-audit\",}\n            , _react2.default.createElement('span', { className: \"oc-kicker\",}, \"Worksheet 11 / 18\"   )\n            , _react2.default.createElement('h2', null, \"Homepage Trust Audit\")\n            , _react2.default.createElement('p', null\n              , \"Guide: \"\n              , _react2.default.createElement('a', { href: \"https://outclimber.com/website-experience\",}\n                , \"https://outclimber.com/website-experience\"\n              )\n            )\n            , _react2.default.createElement('ul', null\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \n                  \"A new visitor can identify the service and intended customer.\"\n                \n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Service area and contact details are accurate.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"The primary action explains the next step.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Prices or quoting expectations are clear where appropriate.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Proof is authentic, current, and relevant.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Claims and testimonials have permission and support.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"The page is readable and usable on a phone.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Links and forms work; errors provide recovery.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \n                  \"Privacy information is available when personal data is collected.\"\n                \n              )\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Most important unanswered visitor question: [ ]. Evidence: [ ]. Change to test: [ ].\"\n              \n            )\n            , _react2.default.createElement('a', { href: \"#workbook-top\",}, \"Back to workbook index ↑\"    )\n          )\n          , _react2.default.createElement('section', { className: \"oc-section\", id: \"website-friction-audit\",}\n            , _react2.default.createElement('span', { className: \"oc-kicker\",}, \"Worksheet 12 / 18\"   )\n            , _react2.default.createElement('h2', null, \"Website Friction Audit\")\n            , _react2.default.createElement('p', null\n              , \"Guide: \"\n              , _react2.default.createElement('a', { href: \"https://outclimber.com/blog/diagnose-website-conversion-problem\",}\n                , \n                  \"https://outclimber.com/blog/diagnose-website-conversion-problem\"\n                \n              )\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Complete the main journey in a fresh browser on desktop and mobile, using keyboard navigation as well as touch/mouse.\"\n              \n            )\n            , _react2.default.createElement('div', {\n              className: \"oc-table\",\n              role: \"region\",\n              'aria-label': \"Worksheet table; scroll horizontally to see every column\"       ,\n              tabIndex: 0,}\n\n              , _react2.default.createElement('table', null\n                , _react2.default.createElement('thead', null\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Step\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Expected behavior\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Actual behavior\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Failure/recovery\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Improvement\")\n                  )\n                )\n                , _react2.default.createElement('tbody', null\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('td', null, \"Find the offer\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                  )\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('td', null, \"Understand scope/price\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                  )\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('td', null, \"Find relevant proof\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                  )\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('td', null, \"Submit an inquiry\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                  )\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('td', null, \"Receive confirmation\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                  )\n                )\n              )\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Test an empty required field and an invalid email. Verify receipt in the real inbox, not just the on-screen success message. Remove duplicate or unnecessary requests for information.\"\n              \n            )\n            , _react2.default.createElement('a', { href: \"#workbook-top\",}, \"Back to workbook index ↑\"    )\n          )\n          , _react2.default.createElement('section', { className: \"oc-section\", id: \"customer-onboarding-checklist\",}\n            , _react2.default.createElement('span', { className: \"oc-kicker\",}, \"Worksheet 13 / 18\"   )\n            , _react2.default.createElement('h2', null, \"Customer Onboarding Checklist\")\n            , _react2.default.createElement('p', null\n              , \"Guide: \"\n              , _react2.default.createElement('a', { href: \"https://outclimber.com/blog/customer-onboarding-process\",}\n                , \"https://outclimber.com/blog/customer-onboarding-process\"\n              )\n            )\n            , _react2.default.createElement('ul', null\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Confirm the agreed scope, price, and exclusions.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Introduce the accountable contact.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Share a realistic timeline and next milestone.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"State what the customer needs to provide and by when.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Explain communication channels and expected response times.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Explain how to raise questions or request changes.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Confirm receipt and address missing inputs.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Check understanding before work begins.\"\n              )\n              , _react2.default.createElement('li', null\n                , _react2.default.createElement('span', { 'aria-label': \"Unchecked task\" ,}, \"☐ \" )\n                , \"Record a handover so another team member can continue.\"\n              )\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"If a dependency is late, communicate the effect on timing and agree the revised next step. Owner: [ ]. Next check-in: [ ].\"\n              \n            )\n            , _react2.default.createElement('a', { href: \"#workbook-top\",}, \"Back to workbook index ↑\"    )\n          )\n          , _react2.default.createElement('section', { className: \"oc-section\", id: \"service-recovery-email-templates\",}\n            , _react2.default.createElement('span', { className: \"oc-kicker\",}, \"Worksheet 14 / 18\"   )\n            , _react2.default.createElement('h2', null, \"Service Recovery Email Templates\")\n            , _react2.default.createElement('p', null\n              , \"Guide: \"\n              , _react2.default.createElement('a', { href: \"https://outclimber.com/onboarding\",}\n                , \"https://outclimber.com/onboarding\"\n              )\n            )\n            , _react2.default.createElement('h3', null, \"Acknowledge and investigate\")\n            , _react2.default.createElement('p', null, \"Subject: Your concern about [service/job]\")\n            , _react2.default.createElement('p', null\n              , \n                \"Hi [name], thank you for telling us about [specific issue]. I understand that [impact in their words]. I’m checking [what you will investigate]. I will update you by [realistic date/time], even if the investigation is still underway. You can reach me at [contact].\"\n              \n            )\n            , _react2.default.createElement('h3', null, \"Explain the resolution\")\n            , _react2.default.createElement('p', null\n              , \n                \"Hi [name], we found [verified explanation]. We can offer [specific available remedy] by [date]. [Any action needed from the customer]. Please let me know whether this addresses your concern or what remains unresolved.\"\n              \n            )\n            , _react2.default.createElement('h3', null, \"Confirm completion\")\n            , _react2.default.createElement('p', null\n              , \n                \"Hi [name], [remedy] is complete. Has this resolved the issue for you? We are also [specific prevention step, if actually underway]. Thank you for giving us the chance to address it.\"\n              \n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Adapt these to the facts. Do not blame the customer, promise remedies you cannot provide, disclose another person's information, or condition a remedy on changing a review.\"\n              \n            )\n            , _react2.default.createElement('a', { href: \"#workbook-top\",}, \"Back to workbook index ↑\"    )\n          )\n          , _react2.default.createElement('section', { className: \"oc-section\", id: \"customer-follow-up-sequence\",}\n            , _react2.default.createElement('span', { className: \"oc-kicker\",}, \"Worksheet 15 / 18\"   )\n            , _react2.default.createElement('h2', null, \"Customer Follow-Up Sequence\")\n            , _react2.default.createElement('p', null\n              , \"Guide: \"\n              , _react2.default.createElement('a', { href: \"https://outclimber.com/blog/customer-follow-up-system\",}\n                , \"https://outclimber.com/blog/customer-follow-up-system\"\n              )\n            )\n            , _react2.default.createElement('div', {\n              className: \"oc-table\",\n              role: \"region\",\n              'aria-label': \"Worksheet table; scroll horizontally to see every column\"       ,\n              tabIndex: 0,}\n\n              , _react2.default.createElement('table', null\n                , _react2.default.createElement('thead', null\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Trigger\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Purpose\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Channel\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Timing\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Message\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Owner\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Stop condition\")\n                  )\n                )\n                , _react2.default.createElement('tbody', null\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('td', null, \"Service completed\")\n                    , _react2.default.createElement('td', null, \"Check outcome\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"Issue needs recovery\")\n                  )\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('td', null, \"Appropriate interval\")\n                    , _react2.default.createElement('td', null, \"Useful care/reminder\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"Opt-out/no relevance\")\n                  )\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('td', null, \"Relevant next need\")\n                    , _react2.default.createElement('td', null, \"Offer useful next step\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"Opt-out/no relevance\")\n                  )\n                )\n              )\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Match timing to the service and respect consent and channel rules. Keep transactional updates separate from marketing. Stop when a recipient opts out and avoid repeated asks after silence. Review customer responses, not just sends.\"\n              \n            )\n            , _react2.default.createElement('a', { href: \"#workbook-top\",}, \"Back to workbook index ↑\"    )\n          )\n          , _react2.default.createElement('section', { className: \"oc-section\", id: \"review-request-script\",}\n            , _react2.default.createElement('span', { className: \"oc-kicker\",}, \"Worksheet 16 / 18\"   )\n            , _react2.default.createElement('h2', null, \"Review Request Script\")\n            , _react2.default.createElement('p', null\n              , \"Guide: \"\n              , _react2.default.createElement('a', { href: \"https://outclimber.com/blog/how-to-ask-for-reviews-ethically\",}\n                , \"https://outclimber.com/blog/how-to-ask-for-reviews-ethically\"\n              )\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"“Thank you for choosing [business]. If you would like to share your experience, you can leave an honest review here: [permitted platform link]. We welcome feedback about what worked and what we could improve. Leaving a review is optional.”\"\n              \n            )\n            , _react2.default.createElement('ul', null\n              , _react2.default.createElement('li', null\n                , \n                  \"Request reviews consistently from real customers, without selecting only those expected to be positive.\"\n                \n              )\n              , _react2.default.createElement('li', null\n                , \n                  \"Do not ask for a particular rating, offer incentives, buy reviews, or make support dependent on a review.\"\n                \n              )\n              , _react2.default.createElement('li', null\n                , \n                  \"Check the destination platform's policy first. Yelp prohibits soliciting reviews; do not use this script to ask for a Yelp review.\"\n                \n              )\n              , _react2.default.createElement('li', null\n                , \n                  \"Keep private feedback available to everyone, without using it to divert unhappy customers away from public reviews.\"\n                \n              )\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"This script is educational guidance, not a compliance certification. Check current rules for your business and jurisdiction.\"\n              \n            )\n            , _react2.default.createElement('p', null\n              , \"Sources: \"\n              , _react2.default.createElement('a', { href: \"https://www.ftc.gov/business-guidance/resources/soliciting-paying-online-reviews-guide-marketers\",}\n                , \"FTC review solicitation guidance\"\n              )\n              , \", \"\n              , _react2.default.createElement('a', { href: \"https://support.google.com/contributionpolicy/answer/7400114\",}\n                , \"Google Maps content policy\"\n              )\n              , \", \"\n              , _react2.default.createElement('a', { href: \"https://www.yelp-support.com/article/Don-t-Ask-for-Reviews?l=en_US\",}\n                , \"Yelp: Don't Ask for Reviews\"\n              )\n              , \".\"\n            )\n            , _react2.default.createElement('a', { href: \"#workbook-top\",}, \"Back to workbook index ↑\"    )\n          )\n          , _react2.default.createElement('section', { className: \"oc-section\", id: \"sop-template\",}\n            , _react2.default.createElement('span', { className: \"oc-kicker\",}, \"Worksheet 17 / 18\"   )\n            , _react2.default.createElement('h2', null, \"SOP Template\")\n            , _react2.default.createElement('p', null\n              , \"Guide: \"\n              , _react2.default.createElement('a', { href: \"https://outclimber.com/blog/how-to-write-an-sop\",}\n                , \"https://outclimber.com/blog/how-to-write-an-sop\"\n              )\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Process: [ ]\\nPurpose and successful outcome: [ ]\\nOwner and backup: [ ]\\nVersion/date: [ ]\\nTrigger and required inputs: [ ]\\nTools/access needed: [ ]\"\n              \n            )\n            , _react2.default.createElement('div', {\n              className: \"oc-table\",\n              role: \"region\",\n              'aria-label': \"Worksheet table; scroll horizontally to see every column\"       ,\n              tabIndex: 0,}\n\n              , _react2.default.createElement('table', null\n                , _react2.default.createElement('thead', null\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Step\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Action\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Responsible person\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Completion check\")\n                    , _react2.default.createElement('th', { scope: \"col\",}, \"Exception/escalation\")\n                  )\n                )\n                , _react2.default.createElement('tbody', null\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('td', null, \"1\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                  )\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('td', null, \"2\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                  )\n                  , _react2.default.createElement('tr', null\n                    , _react2.default.createElement('td', null, \"3\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                    , _react2.default.createElement('td', null, \"[ ]\")\n                  )\n                )\n              )\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Record where evidence is kept, the escalation contact, and the next review date. Have someone unfamiliar with the process follow it; revise any step they cannot complete without explanation. Keep passwords out of the document.\"\n              \n            )\n            , _react2.default.createElement('a', { href: \"#workbook-top\",}, \"Back to workbook index ↑\"    )\n          )\n          , _react2.default.createElement('section', { className: \"oc-section\", id: \"customer-feedback-survey\",}\n            , _react2.default.createElement('span', { className: \"oc-kicker\",}, \"Worksheet 18 / 18\"   )\n            , _react2.default.createElement('h2', null, \"Customer Feedback Survey\")\n            , _react2.default.createElement('p', null\n              , \"Guide: \"\n              , _react2.default.createElement('a', { href: \"https://outclimber.com/operations\",}\n                , \"https://outclimber.com/operations\"\n              )\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Introduction: “We’re improving [service]. This short survey is optional. Please share what actually happened; critical feedback is welcome. Avoid including sensitive personal information.”\"\n              \n            )\n            , _react2.default.createElement('ol', null\n              , _react2.default.createElement('li', null, \"What were you trying to accomplish? [ ]\")\n              , _react2.default.createElement('li', null\n                , \n                  \"How easy or difficult was it to get what you needed? [Very difficult / Difficult / Neither / Easy / Very easy / Not applicable]\"\n                \n              )\n              , _react2.default.createElement('li', null, \"What worked well? [ ]\")\n              , _react2.default.createElement('li', null, \"What was confusing, frustrating, or missing? [ ]\")\n              , _react2.default.createElement('li', null, \"What one thing should we improve? [ ]\")\n              , _react2.default.createElement('li', null\n                , \n                  \"May we contact you about this feedback? [Yes / No; optional contact field]\"\n                \n              )\n            )\n            , _react2.default.createElement('p', null\n              , \n                \"Send consistently, avoid leading wording, and separate feedback from public review requests. Do not publish responses or testimonials without permission. Record response count and who was invited before interpreting results.\"\n              \n            )\n            , _react2.default.createElement('a', { href: \"#workbook-top\",}, \"Back to workbook index ↑\"    )\n          )\n        )\n      )\n    )\n  );\n} exports.default = OutclimberPage;"}