<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Mendola.Tech Research Desk</title>
    <link>https://mendola.tech/blog/</link>
    <description>Original benchmarks, methods, calculators, templates, and evidence-led technology guides from Mendola.Tech.</description>
    <language>en-us</language>
    <atom:link href="https://mendola.tech/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>2026 Managed Small-Business Website Performance Benchmark: Research Protocol</title>
      <link>https://mendola.tech/blog/managed-small-business-website-performance-benchmark-2026/</link>
      <guid isPermaLink="true">https://mendola.tech/blog/managed-small-business-website-performance-benchmark-2026/</guid>
      <description>A reproducible protocol for measuring small-business website performance without mixing lab scores, field data, and unsupported conclusions.</description>
      <category>Research &amp; Benchmarks</category>
      <pubDate>Sun, 09 Aug 2026 12:00:00 GMT</pubDate>
      <dc:creator>Rob Mendola</dc:creator>
      <content:encoded><![CDATA[<blockquote>
<p>Published research protocol v1.0 — 2026-08-09. No performance results have been collected yet, and no client-specific comparison is approved for publication. The tables below deliberately say “pending” rather than implying a result. Results will be added as a dated update after the runs and permissions are complete.</p>
</blockquote>
<p>Small-business website performance comparisons often collapse several different questions into one score. A lab run can help debug a page under simulated conditions. Chrome User Experience Report data summarizes eligible real-user experiences over a rolling period. A conversion report describes what visitors did after arriving. Those are all useful, but they are not interchangeable.</p>
<p>This study is designed to answer a narrower question: under a documented, repeatable protocol, how do a set of actively managed small-business websites behave across common page types on mobile and desktop, and which implementation characteristics explain the largest differences?</p>
<p>The goal is not to declare a universal “fastest platform.” The goal is to publish a dataset, repeatable collection method, and interpretation guide that a business owner or web operator can use to ask better questions about performance.</p>
<h2 id="key-findings">Key Findings</h2>
<p>This is a pre-results draft, so the current findings concern measurement quality rather than site winners and losers:</p>
<ol>
<li><strong>A single lab score is not enough.</strong> Google documents that PageSpeed Insights includes both lab and field data, that they represent different conditions, and that datacenter/network conditions can vary. The study will use repeated lab runs and will not average lab and field metrics together.</li>
<li><strong>Core Web Vitals need percentile and population context.</strong> The “good” thresholds apply at the 75th percentile of real visits. A green lab score cannot prove that the 75th percentile of real users has a good experience.</li>
<li><strong>The unit of comparison must be defined.</strong> Comparing one homepage with another site's contact page would confound page purpose, content weight, and interaction design. This protocol groups like page types and reports each URL separately.</li>
<li><strong>Public pages are not automatically approved case-study material.</strong> Client names and site-level commentary will remain unpublished unless Rob records approval. If approval is not granted, the public article will use anonymized site identifiers or a Mendola.Tech-owned test fixture.</li>
</ol>
<p>No claim about relative speed, conversion impact, or business outcome will be added until the raw runs exist and the limitations are reviewed.</p>
<h2 id="methodology">Methodology</h2>
<h3 id="research-questions">Research questions</h3>
<p>The first release will answer five questions:</p>
<ol>
<li>What are the median mobile and desktop lab measurements for each tested URL?</li>
<li>How much does the same URL vary across repeated runs?</li>
<li>Which pages have eligible CrUX field data, and what does that field data show separately from the lab runs?</li>
<li>Which observable page characteristics—HTML size, JavaScript transfer, image transfer, request count, font loading, or third-party scripts—coincide with the largest lab differences?</li>
<li>Which recurring implementation changes appear most actionable for small-business sites?</li>
</ol>
<p>The study will not claim that performance caused a ranking, lead, or revenue change. Those would require different data and a stronger causal design.</p>
<h3 id="proposed-sample">Proposed sample</h3>
<p>The current Mendola.Tech public site lists six managed deployments. They are a logical operational sample because their architectures and maintenance context can be documented. Their inclusion in a named benchmark is still subject to approval.</p>
<table>
<thead>
<tr>
<th>Proposed site</th>
<th>Publicly listed service type</th>
<th>Benchmark inclusion status</th>
</tr>
</thead>
<tbody><tr>
<td>Camo Krew Aluminum</td>
<td>Managed website</td>
<td>Approval not yet recorded</td>
</tr>
<tr>
<td>A Able Painting Company</td>
<td>Managed website</td>
<td>Approval not yet recorded</td>
</tr>
<tr>
<td>Kaines Construction LLC</td>
<td>Managed website</td>
<td>Approval not yet recorded</td>
</tr>
<tr>
<td>Southern Drywall Services</td>
<td>Managed website</td>
<td>Approval not yet recorded</td>
</tr>
<tr>
<td>Mendola Painting</td>
<td>Managed website</td>
<td>Approval not yet recorded</td>
</tr>
<tr>
<td>You'll Hook 'Em</td>
<td>Managed website</td>
<td>Approval not yet recorded</td>
</tr>
</tbody></table>
<p>If one or more clients do not approve named inclusion, the study will either anonymize the identifiers or replace the sample with controlled, Mendola.Tech-owned fixtures. It will not quietly remove weak performers after seeing their results.</p>
<h3 id="page-selection">Page selection</h3>
<p>For each included site, select up to three canonical URLs that represent comparable user intent:</p>
<ul>
<li>Homepage</li>
<li>Primary service page</li>
<li>Contact or estimate page</li>
</ul>
<p>Record the exact canonical URL, HTTP status, test date, and any redirect. Exclude a URL only for a pre-registered reason such as an outage, access block, active deployment, or missing comparable page type. Keep an exclusion log.</p>
<h3 id="collection-protocol">Collection protocol</h3>
<p>For every URL and device profile:</p>
<ol>
<li>Confirm the canonical URL and final HTTP status.</li>
<li>Record the deployment/commit identifier when Mendola.Tech controls the code.</li>
<li>Run five PageSpeed Insights lab tests for mobile and five for desktop across at least two collection sessions.</li>
<li>Preserve the raw JSON response for every run rather than copying only the headline score.</li>
<li>Record Lighthouse version, test timestamp, strategy, reported location/environment, and category configuration.</li>
<li>Extract performance score, Largest Contentful Paint (LCP), Cumulative Layout Shift (CLS), Total Blocking Time (TBT), Speed Index, First Contentful Paint (FCP), and Time to First Byte (TTFB) where present.</li>
<li>Extract transfer size, request count, unused JavaScript diagnostics, and image-delivery diagnostics where available.</li>
<li>Record CrUX URL-level or origin-level field data separately, including whether the URL had sufficient eligible data.</li>
</ol>
<p>The primary lab statistic will be the median of the five runs. The dataset will also report minimum, maximum, and range so readers can see instability. A mean may be included as a secondary value, but it will not replace the individual runs.</p>
<h3 id="performance-thresholds">Performance thresholds</h3>
<p>The article will use Google's documented Core Web Vitals definitions and “good” thresholds on the final test date:</p>
<table>
<thead>
<tr>
<th>Field metric</th>
<th>Current “good” threshold to verify on test date</th>
<th>Interpretation</th>
</tr>
</thead>
<tbody><tr>
<td>LCP</td>
<td>At or below 2.5 seconds</td>
<td>Loading experience</td>
</tr>
<tr>
<td>INP</td>
<td>At or below 200 milliseconds</td>
<td>Interaction responsiveness</td>
</tr>
<tr>
<td>CLS</td>
<td>At or below 0.1</td>
<td>Visual stability</td>
</tr>
</tbody></table>
<p>These thresholds are evaluated at the 75th percentile in field data. Lighthouse's TBT is a lab diagnostic and will not be relabeled as field INP.</p>
<h3 id="results-table-publication-blocked-pending-measurements">Results table (publication blocked pending measurements)</h3>
<table>
<thead>
<tr>
<th>Site ID</th>
<th>Page type</th>
<th>Device</th>
<th>Median performance score</th>
<th>Median LCP</th>
<th>Median CLS</th>
<th>Median TBT</th>
<th>Field-data status</th>
</tr>
</thead>
<tbody><tr>
<td>Pending</td>
<td>Pending</td>
<td>Mobile</td>
<td>Not measured</td>
<td>Not measured</td>
<td>Not measured</td>
<td>Not measured</td>
<td>Not checked</td>
</tr>
<tr>
<td>Pending</td>
<td>Pending</td>
<td>Desktop</td>
<td>Not measured</td>
<td>Not measured</td>
<td>Not measured</td>
<td>Not measured</td>
<td>Not checked</td>
</tr>
</tbody></table>
<p>The final article will link to machine-readable CSV/JSON, raw reports, the collection script, a data dictionary, and the exclusion log. The repository will include a command that reruns the same extraction against a user-supplied URL list.</p>
<h3 id="interpretation-rules">Interpretation rules</h3>
<ul>
<li>Describe the measured URL and date, not an entire company or platform.</li>
<li>Use “in these runs” rather than turning a sample result into a universal claim.</li>
<li>Treat differences smaller than normal run-to-run variation cautiously.</li>
<li>Explain large payloads in context. A portfolio page with original photography serves a different job than a sparse contact page.</li>
<li>Separate implementation observations from causal claims.</li>
<li>Do not infer search ranking, conversion rate, or revenue from performance data alone.</li>
<li>If a live deployment changes during collection, rerun the affected set or document the version split.</li>
</ul>
<h2 id="what-the-benchmark-can-reveal">What the benchmark can reveal</h2>
<p>The most useful output is not a leaderboard. It is a pattern library. Examples of potentially actionable patterns include oversized hero images, render-blocking fonts, excessive third-party scripts, client-side rendering that delays primary content, missing intrinsic image dimensions, and slow server response.</p>
<p>Those remain candidate explanations until the measurements are collected. The final analysis will connect each observation to the raw diagnostic that supports it and, when practical, rerun the URL after a controlled fix.</p>
<h2 id="limitations">Limitations</h2>
<ul>
<li>The proposed sample is a convenience sample of sites associated with one operator, not a representative sample of all small-business websites.</li>
<li>PageSpeed/Lighthouse lab results vary with test infrastructure, network conditions, page state, and tool versions.</li>
<li>CrUX field data may be unavailable for lower-traffic URLs and represents eligible Chrome users rather than all visitors.</li>
<li>Page types and content requirements are not perfectly identical across businesses.</li>
<li>A cross-sectional test cannot show long-term maintenance drift.</li>
<li>Performance measurements do not establish search, lead, or revenue outcomes.</li>
<li>Named client publication requires approval even if the pages and metrics are publicly observable.</li>
<li>The thresholds and tooling can change; the final article must record versions and recheck documentation on the run date.</li>
</ul>
<h2 id="what-mendola-tech-adds">What Mendola.Tech adds</h2>
<p>Mendola.Tech's contribution will be the repeatable dataset and operating context: multiple real small-business page types, repeated raw runs instead of cherry-picked screenshots, explicit separation of field and lab data, version/date records, and implementation notes from the person maintaining the sites.</p>
<p>The practical addition is a reusable collection harness and results template that another operator can apply to their own URL list. If named client permission is not available, the method and open test fixture will still be publishable without inventing or exposing client outcomes.</p>
<h2 id="sources">Sources</h2>
<ul>
<li><a href="https://web.dev/articles/defining-core-web-vitals-thresholds" rel="noreferrer">How the Core Web Vitals thresholds were defined</a> — Google/web.dev; accessed 2026-08-09. Supports the LCP, INP, and CLS thresholds and the 75th-percentile interpretation.</li>
<li><a href="https://developers.google.com/speed/docs/insights/v5/about" rel="noreferrer">About PageSpeed Insights</a> — Google for Developers; accessed 2026-08-09. Supports the distinction between lab and field data, the CrUX time window, and test-environment variability.</li>
<li><a href="https://web.dev/articles/vitals-tools" rel="noreferrer">Core Web Vitals workflows with Google tools</a> — Google/web.dev; accessed 2026-08-09. Supports separating field monitoring from lab diagnostics and using the tools for different stages of performance work.</li>
<li><a href="https://web.dev/articles/vitals" rel="noreferrer">Web Vitals</a> — Google/web.dev; accessed 2026-08-09. Supports the current stable Core Web Vitals set and metric lifecycle.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>AI Document Workflow Reliability Benchmark: Open Research Protocol</title>
      <link>https://mendola.tech/blog/ai-document-workflow-reliability-benchmark/</link>
      <guid isPermaLink="true">https://mendola.tech/blog/ai-document-workflow-reliability-benchmark/</guid>
      <description>A reproducible benchmark for AI-assisted document extraction that measures correctness, abstention, review burden, latency, cost, and safe failure.</description>
      <category>AI &amp; Automation</category>
      <pubDate>Sun, 09 Aug 2026 12:00:00 GMT</pubDate>
      <dc:creator>Rob Mendola</dc:creator>
      <content:encoded><![CDATA[<blockquote>
<p>Published benchmark protocol v1.0 — 2026-08-09. No model has been selected and no result has been measured. The proposed dataset will be synthetic. Model IDs, prompts, code, raw outputs, prices, and test dates must be frozen before results are written.</p>
</blockquote>
<p>An AI document workflow can look excellent in a demo and still create more work than it removes. The model may extract most fields correctly while confidently corrupting a small number of consequential values. It may succeed on clean PDFs and fail on rotated photos. It may produce valid JSON while assigning a phone number to the wrong record. It may appear inexpensive per request while creating an expensive review queue.</p>
<p>This benchmark evaluates the complete document-to-record workflow: input handling, extraction, validation, abstention, human escalation, correction, and recovery. The initial task is intentionally narrow enough to reproduce with synthetic data.</p>
<h2 id="key-findings">Key Findings</h2>
<p>The current findings are methodological and will remain separate from future measured results:</p>
<ol>
<li><strong>Aggregate accuracy is not a deployment decision.</strong> A workflow needs field-level correctness, consequential-error rates, abstention behavior, latency, cost, and human-review burden.</li>
<li><strong>The validator is part of the system.</strong> Schema checks, date/amount constraints, identifier patterns, duplicate detection, and cross-field rules can catch failures that a model-level score hides.</li>
<li><strong>Safe failure needs a measurable definition.</strong> “Human in the loop” is too vague. The benchmark must report which documents are escalated, how often bad records pass automatically, and how many correct records are needlessly reviewed.</li>
<li><strong>Synthetic data protects clients but narrows generalization.</strong> The first release can be open and privacy-safe, but it cannot prove performance on every real document distribution.</li>
</ol>
<p>No model ranking, accuracy percentage, price, or time saving will appear until the frozen harness has produced raw output.</p>
<h2 id="methodology">Methodology</h2>
<h3 id="task-definition">Task definition</h3>
<p>The proposed workflow converts a mixed-format small-business intake document into a structured record with these fields:</p>
<ul>
<li>Document type</li>
<li>Organization/person name</li>
<li>Email address</li>
<li>Phone number</li>
<li>Service or request category</li>
<li>Request date</li>
<li>Currency amount when present</li>
<li>Free-text summary</li>
<li>Source document identifier</li>
<li>Extraction confidence or abstention state</li>
</ul>
<p>The exact schema will be published as JSON Schema. Every output must either validate against it or enter an explicit failure state. The system may not silently drop an input.</p>
<h3 id="proposed-dataset">Proposed dataset</h3>
<p>Create 300 synthetic documents with deterministic ground-truth JSON records. No client or real-person data will be used.</p>
<table>
<thead>
<tr>
<th>Stratum</th>
<th>Proposed count</th>
<th>Purpose</th>
</tr>
</thead>
<tbody><tr>
<td>Clean digitally generated PDF</td>
<td>60</td>
<td>Establish baseline extraction behavior</td>
</tr>
<tr>
<td>Scanned PDF with moderate noise</td>
<td>60</td>
<td>Test OCR and layout degradation</td>
</tr>
<tr>
<td>Mobile photo with rotation/perspective</td>
<td>60</td>
<td>Test common field-capture conditions</td>
</tr>
<tr>
<td>Email-style plain text/HTML</td>
<td>60</td>
<td>Test less structured but machine-readable input</td>
</tr>
<tr>
<td>Adversarial/ambiguous cases</td>
<td>60</td>
<td>Test missing fields, conflicting values, prompt-like text, and malformed layouts</td>
</tr>
</tbody></table>
<p>The generator will vary names, phone formats, dates, currency formatting, field order, optional fields, duplicate documents, and plausible distractor values. Random generation will use a published seed so the corpus can be recreated.</p>
<p>The adversarial stratum is not a cybersecurity penetration test. It is a reliability set containing ambiguity and instruction-like document text that should not override the extraction task.</p>
<h3 id="systems-under-test">Systems under test</h3>
<p>The initial study may compare:</p>
<ul>
<li>A rules-only baseline</li>
<li>One or more current multimodal language-model APIs</li>
<li>A hybrid workflow using OCR/rules before a language model</li>
<li>The same model with and without deterministic validation/retry logic</li>
</ul>
<p>Final systems will be selected immediately before collection because models and pricing change. The article will record provider, exact model identifier, API version, region if relevant, request parameters, prompt/template hash, structured-output mode, retry policy, and public price source on the test date.</p>
<p>No provider will be described as the “best AI model.” The result applies to this task, corpus, configuration, and date.</p>
<h3 id="run-controls">Run controls</h3>
<ol>
<li>Freeze the dataset, ground truth, schema, scorer, and primary metrics before running models.</li>
<li>Use a clean API session and the same input representation for comparable systems.</li>
<li>Set deterministic parameters where the API supports them and record unsupported controls.</li>
<li>Run each document once for the primary cost/latency analysis.</li>
<li>Run a pre-registered stability subset multiple times to measure output variation.</li>
<li>Preserve raw requests/responses after removing credentials and provider-restricted data.</li>
<li>Log retries, timeouts, schema failures, refusals, and provider errors.</li>
<li>Price each run from measured token/image usage and the provider's dated public price—not from memory.</li>
<li>Manually review scorer disagreements before final aggregation without changing ground truth after seeing a model label.</li>
</ol>
<h3 id="primary-metrics">Primary metrics</h3>
<h4>Field exact-match accuracy</h4>
<p>For normalized fields such as phone, email, date, amount, and category:</p>
<pre><code class="language-text">fieldAccuracy = correct extracted fields / scorable ground-truth fields
</code></pre>
<p>Normalization rules are published in advance. For example, phone formatting punctuation may be ignored while digits and extension must match.</p>
<h4>Record perfect-match rate</h4>
<pre><code class="language-text">recordPerfectMatch = records with every required field correct / all records
</code></pre>
<p>This deliberately produces a stricter view than field-level accuracy.</p>
<h4>Undetected consequential error rate</h4>
<p>Define consequential fields before testing—for example identity, contact destination, date, and currency amount.</p>
<pre><code class="language-text">undetectedConsequentialError = bad consequential records accepted automatically
                               / records accepted automatically
</code></pre>
<p>This is the primary safety metric for an auto-entry decision. A workflow that escalates every record could have a low undetected-error rate while providing no automation value, so it must be read with review burden.</p>
<h4>Review burden</h4>
<pre><code class="language-text">reviewRate = records sent to human review / all records
falseReviewRate = fully correct records sent to review / fully correct records
</code></pre>
<p>The final artifact will also time a defined review procedure on a sample. It will not invent universal wage savings.</p>
<h4>Abstention quality</h4>
<p>Treat an explicit “cannot determine” or validation failure as abstention. Report:</p>
<ul>
<li>Recall of bad records into review</li>
<li>Precision of the review queue</li>
<li>Coverage: percentage accepted automatically</li>
<li>Risk-coverage curve as the confidence/review threshold changes</li>
</ul>
<h4>Latency and cost</h4>
<p>Report median, 95th percentile, minimum, and maximum end-to-end latency. Report measured API cost per document and per 1,000 documents for this corpus and date. Keep provider pricing inputs visible so the calculator can be updated.</p>
<h3 id="acceptance-scenarios">Acceptance scenarios</h3>
<p>Instead of one arbitrary pass/fail line, publish three user-editable scenarios:</p>
<table>
<thead>
<tr>
<th>Scenario</th>
<th>Consequential error tolerance</th>
<th>Review capacity</th>
<th>Intended use</th>
</tr>
</thead>
<tbody><tr>
<td>Draft assistance</td>
<td>User reviews every record</td>
<td>High</td>
<td>Summarization/data-entry aid</td>
</tr>
<tr>
<td>Guarded automation</td>
<td>Only flagged records reviewed</td>
<td>Medium</td>
<td>Low-risk operational intake</td>
</tr>
<tr>
<td>High-consequence workflow</td>
<td>Near-zero undetected error required</td>
<td>Variable</td>
<td>Not approved by this benchmark alone</td>
</tr>
</tbody></table>
<p>The benchmark will not certify a high-consequence deployment. It shows the tradeoff curve and the evidence a decision-maker would still need.</p>
<h3 id="results-table-blocked-pending-execution">Results table (blocked pending execution)</h3>
<table>
<thead>
<tr>
<th>System</th>
<th>Field accuracy</th>
<th>Perfect records</th>
<th>Undetected consequential error</th>
<th>Review rate</th>
<th>Median latency</th>
<th>Cost/1,000</th>
</tr>
</thead>
<tbody><tr>
<td>Rules baseline</td>
<td>Not measured</td>
<td>Not measured</td>
<td>Not measured</td>
<td>Not measured</td>
<td>Not measured</td>
<td>Not measured</td>
</tr>
<tr>
<td>AI workflow A</td>
<td>Not measured</td>
<td>Not measured</td>
<td>Not measured</td>
<td>Not measured</td>
<td>Not measured</td>
<td>Not measured</td>
</tr>
<tr>
<td>Hybrid workflow</td>
<td>Not measured</td>
<td>Not measured</td>
<td>Not measured</td>
<td>Not measured</td>
<td>Not measured</td>
<td>Not measured</td>
</tr>
</tbody></table>
<p>Every aggregate will be accompanied by a breakdown for each input stratum. A strong clean-PDF result must not conceal failure on mobile photos or ambiguous documents.</p>
<h2 id="operational-decision-framework">Operational decision framework</h2>
<p>After results exist, a business can use four gates:</p>
<ol>
<li><strong>Validity:</strong> Does the workflow produce the required schema and preserve every input?</li>
<li><strong>Reliability:</strong> At the chosen automation coverage, is the undetected consequential-error rate acceptable for this task?</li>
<li><strong>Operability:</strong> Can the business handle the review queue, outages, retries, corrections, and audit records?</li>
<li><strong>Economics:</strong> Using its own labor inputs, does the measured review burden plus API/tooling cost improve the current process?</li>
</ol>
<p>Passing the first three gates does not prove the fourth. The companion calculator will use measured review minutes and user-entered labor values rather than claiming a universal ROI.</p>
<h2 id="limitations">Limitations</h2>
<ul>
<li>Synthetic documents cannot represent every real layout, handwriting style, language, domain vocabulary, fraud pattern, or image condition.</li>
<li>A 300-document corpus may be too small to estimate rare failure rates precisely.</li>
<li>Model APIs, hidden system behavior, prices, and availability can change after the test date.</li>
<li>Repeated API calls may not be deterministic even when temperature or seed controls are available.</li>
<li>The benchmark measures one extraction workflow, not general reasoning ability.</li>
<li>The defined “consequential” fields reflect the proposed task and must change for other business processes.</li>
<li>A validator can catch malformed or implausible values but cannot guarantee that a plausible value belongs to the correct real-world entity.</li>
<li>Privacy, retention, contractual, legal, and sector-specific requirements are outside the benchmark and need separate review.</li>
<li>The study cannot authorize fully automatic use in financial, legal, medical, employment, safety, or other high-consequence decisions.</li>
</ul>
<h2 id="what-mendola-tech-adds">What Mendola.Tech adds</h2>
<p>Mendola.Tech's contribution will be an open, end-to-end reliability harness built around operational decisions rather than a model-demo score. The repository will include the synthetic corpus generator, ground-truth records, JSON Schema, prompts/configuration hashes where permitted, scoring code, raw-output format, validation rules, review-threshold calculator, and reproducible reporting command.</p>
<p>The unique perspective comes from treating AI as one component in an automation system. API integration, schema validation, retries, human escalation, auditability, and failure recovery are measured alongside the model response because those are the parts that determine whether a workflow can actually be operated.</p>
<h2 id="sources">Sources</h2>
<ul>
<li><a href="https://www.nist.gov/itl/ai-risk-management-framework" rel="noreferrer">NIST AI Risk Management Framework</a> — National Institute of Standards and Technology; accessed 2026-08-09. Supports lifecycle risk management and incorporating trustworthiness into AI design, use, and evaluation.</li>
<li><a href="https://airc.nist.gov/" rel="noreferrer">NIST AI Resource Center</a> — NIST; accessed 2026-08-09. Supports testing, evaluation, verification, and validation as operational AI practices.</li>
<li><a href="https://airc.nist.gov/airmf-resources/airmf/5-sec-core/" rel="noreferrer">NIST AI RMF Core</a> — NIST; accessed 2026-08-09. Supports repeatable/documented evaluation, reliability validation, limitation documentation, safe failure, monitoring, and contextual interpretation.</li>
<li><a href="https://nvlpubs.nist.gov/nistpubs/ai/NIST.AI.600-1.pdf" rel="noreferrer">Artificial Intelligence Risk Management Framework: Generative Artificial Intelligence Profile</a> — NIST AI 600-1; accessed 2026-08-09. Supports applying risk-management actions to generative-AI systems based on context, requirements, and risk tolerance.</li>
<li><a href="https://airc.nist.gov/airmf-resources/airmf/4-effectiveness/" rel="noreferrer">Effectiveness of the AI RMF</a> — NIST AI Resource Center; accessed 2026-08-09. Supports evaluating whether processes, indicators, measurements, and expected outcomes actually improve AI risk management.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>How to Calculate Small-Business Website Total Cost of Ownership</title>
      <link>https://mendola.tech/blog/small-business-website-total-cost-of-ownership-calculator/</link>
      <guid isPermaLink="true">https://mendola.tech/blog/small-business-website-total-cost-of-ownership-calculator/</guid>
      <description>A transparent five-year website cost model that separates launch price, recurring tools, labor, maintenance, measurement, and recovery readiness.</description>
      <category>Technology Operations</category>
      <pubDate>Sun, 09 Aug 2026 12:00:00 GMT</pubDate>
      <dc:creator>Rob Mendola</dc:creator>
      <content:encoded><![CDATA[<blockquote>
<p>Open formula and worksheet v1.0 — 2026-08-09. No market-average prices, client savings, or ROI claims are included. The formulas below are the complete calculation model; an interactive version can be added later without changing the underlying method.</p>
</blockquote>
<p>“How much does a small-business website cost?” is usually answered with a launch quote or a monthly plan. Neither number is useful on its own if the decision spans several years.</p>
<p>A website has to be created or migrated, hosted, secured, updated, measured, corrected, and recovered when something breaks. Someone also has to write changes, resize photos, answer provider questions, check forms, monitor search visibility, and decide what happens when the original builder is no longer available.</p>
<p>This calculator turns those responsibilities into visible inputs. It does not assume that a managed service is always cheaper than a one-time build or do-it-yourself platform. It makes the break-even conditions inspectable.</p>
<h2 id="key-findings">Key Findings</h2>
<ol>
<li><strong>Launch cost and operating cost should be compared over the same period.</strong> A low initial price can coexist with high internal labor. A larger project can be economical when a business already has someone capable of operating the site. The calculator keeps those cases separate.</li>
<li><strong>Labor is a first-class input.</strong> Content changes, vendor coordination, troubleshooting, measurement, and routine checks consume time whether the work is done by an owner, employee, freelancer, or managed provider.</li>
<li><strong>Maintenance and recovery are not optional line items just because they are omitted from a quote.</strong> Software updates, access controls, backups, and recovery preparation are real operating responsibilities. The model records who owns them and what budget is assigned.</li>
<li><strong>No default can represent every business honestly.</strong> The published calculator should open with blank or clearly labeled illustrative inputs, never with an unexplained “industry average.”</li>
</ol>
<h2 id="methodology">Methodology</h2>
<h3 id="model-objective">Model objective</h3>
<p>The calculator compares website operating models over a user-selected horizon using the same responsibility categories. It is a planning model, not a survey of market prices.</p>
<p>The default horizon proposed for the interface is five years because it is long enough to expose recurring labor and rebuild assumptions. Users can change the horizon from one to ten years.</p>
<h3 id="core-formula">Core formula</h3>
<p>For a horizon of <code>Y</code> years:</p>
<pre><code class="language-text">TCO(Y) = Initial + Recurring(Y) + InternalLabor(Y) + PlannedChanges(Y)
       + Measurement(Y) + MaintenanceAndRecovery(Y) + Transition(Y)
</code></pre>
<p>Where:</p>
<pre><code class="language-text">Recurring(Y) = 12 × Y × monthly recurring fees

InternalLabor(Y) = Y × 52 × weekly internal hours × loaded hourly value

PlannedChanges(Y) = Y × annual planned change budget

Measurement(Y) = Y × annual analytics, reporting, and testing cost

MaintenanceAndRecovery(Y) = Y × annual maintenance, monitoring, backup,
                            and recovery-readiness cost

Transition(Y) = expected migration, rebuild, or provider-change cost
                within the selected horizon
</code></pre>
<p>The model does not add speculative “lost revenue from downtime” by default. A business can add a separate risk scenario, but it must enter its own downtime assumption and value rather than receiving a dramatic invented number.</p>
<h3 id="input-worksheet">Input worksheet</h3>
<table>
<thead>
<tr>
<th>Input</th>
<th>Definition</th>
<th>Unit</th>
<th>Evidence to use</th>
</tr>
</thead>
<tbody><tr>
<td>Initial design/build/setup</td>
<td>One-time cost to launch or migrate</td>
<td>Currency</td>
<td>Quote, invoice, or internal estimate</td>
</tr>
<tr>
<td>Monthly platform/provider fees</td>
<td>Hosting, builder, plugins, support, or managed plan</td>
<td>Currency/month</td>
<td>Current vendor pricing or contract</td>
</tr>
<tr>
<td>Weekly internal hours</td>
<td>Owner/employee time operating the site</td>
<td>Hours/week</td>
<td>Time log or conservative estimate</td>
</tr>
<tr>
<td>Loaded hourly value</td>
<td>Cost/value of the internal person's time</td>
<td>Currency/hour</td>
<td>Business-defined input</td>
</tr>
<tr>
<td>Planned change budget</td>
<td>Larger content, design, or feature work not covered elsewhere</td>
<td>Currency/year</td>
<td>Historical invoices or plan</td>
</tr>
<tr>
<td>Analytics/testing cost</td>
<td>Reporting tools, event implementation, experiments</td>
<td>Currency/year</td>
<td>Current tools and scoped labor</td>
</tr>
<tr>
<td>Maintenance/recovery cost</td>
<td>Updates, monitoring, backups, security basics, recovery drills</td>
<td>Currency/year</td>
<td>Contract or implementation plan</td>
</tr>
<tr>
<td>Transition cost</td>
<td>Migration/rebuild/provider handoff expected in horizon</td>
<td>Currency</td>
<td>Quote or scenario estimate</td>
</tr>
<tr>
<td>Included responsibility flags</td>
<td>Which costs are already included in another input</td>
<td>Yes/no</td>
<td>Scope document</td>
</tr>
</tbody></table>
<p>The interface must prevent double counting. For example, if hosting and routine maintenance are included in a managed monthly plan, the user marks those responsibility rows as included rather than entering them again.</p>
<h3 id="operating-models">Operating models</h3>
<p>The calculator will provide blank comparison columns for:</p>
<ul>
<li>Do it yourself</li>
<li>One-time build with internal operation</li>
<li>Project-based freelancer</li>
<li>Agency retainer</li>
<li>Mendola.Tech managed website</li>
<li>Custom model</li>
</ul>
<p>These labels do not carry hidden cost assumptions. Users enter the actual quote or operating record for each option. Mendola.Tech's current public price may be prefilled only if it is pulled from the same repository source used by the pricing page and dated in the result.</p>
<h3 id="responsibility-matrix">Responsibility matrix</h3>
<p>A cost comparison is incomplete unless it also shows ownership. The downloadable worksheet will require an owner for each responsibility:</p>
<table>
<thead>
<tr>
<th>Responsibility</th>
<th>Business</th>
<th>Builder/provider</th>
<th>Separate vendor</th>
<th>Unassigned</th>
</tr>
</thead>
<tbody><tr>
<td>Domain and DNS access</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Hosting and TLS</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Routine content updates</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Software/dependency updates</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Monitoring and broken-form checks</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Backups and recovery</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Technical/on-page SEO</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Local listings and reputation workflow</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Analytics and lead-event QA</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Accessibility checks</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Provider transition/runbook</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>
<p>An “unassigned” responsibility is not automatically converted to money. It appears as an operating gap next to the TCO result.</p>
<h3 id="output-metrics">Output metrics</h3>
<p>The calculator will produce:</p>
<ul>
<li>Total cost over the selected horizon</li>
<li>Equivalent monthly cost over that horizon</li>
<li>Initial cash requirement</li>
<li>Recurring cash fees</li>
<li>Internal labor hours and modeled value</li>
<li>Percentage of total assigned to labor, tools/provider fees, planned changes, and resilience</li>
<li>Count of unassigned responsibilities</li>
<li>Break-even point between two selected models, when one exists</li>
<li>A print/download summary containing all inputs, formulas, scope flags, and calculation date</li>
</ul>
<h3 id="break-even-formula">Break-even formula</h3>
<p>For two models with initial costs <code>I₁</code> and <code>I₂</code> and monthly operating costs <code>M₁</code> and <code>M₂</code>, the simple cash break-even month is:</p>
<pre><code class="language-text">breakEvenMonth = (I₂ - I₁) / (M₁ - M₂)
</code></pre>
<p>This is shown only when the denominator is non-zero and the result is positive. The full calculator also includes internal labor and annual costs converted to a monthly equivalent. It will label the result as a planning estimate, not a guaranteed saving.</p>
<h2 id="how-to-use-the-result">How to use the result</h2>
<p>The lowest TCO is not automatically the best decision. A business may deliberately pay more for faster support, less owner time, clearer accountability, stronger recovery preparation, or access to deeper engineering. Another business may prefer a low-cash DIY model because the owner enjoys the work and already has the skill.</p>
<p>Use the result to ask four questions:</p>
<ol>
<li>Which responsibilities are actually included?</li>
<li>Whose time is being consumed?</li>
<li>What happens after the launch period?</li>
<li>What happens when the site breaks or the provider relationship ends?</li>
</ol>
<p>The calculator is successful if it makes those tradeoffs visible, even when the user chooses a competitor or a DIY option.</p>
<h2 id="limitations">Limitations</h2>
<ul>
<li>This is a deterministic planning model, not a forecast of leads, rankings, revenue, or business growth.</li>
<li>User-entered labor value and time estimates can dominate the result and may be uncertain.</li>
<li>Taxes, financing, inflation, discounts, and time value of money are excluded from the simple version.</li>
<li>Complex e-commerce, regulated systems, custom applications, and paid campaigns need separate models.</li>
<li>Recovery and security costs do not guarantee that an incident will be prevented or successfully resolved.</li>
<li>Vendor prices and Mendola.Tech scope can change; every saved result must include its calculation date.</li>
<li>The model does not assign universal market-average prices because no single average fits scope, geography, platform, or service level.</li>
</ul>
<h2 id="what-mendola-tech-adds">What Mendola.Tech adds</h2>
<p>Mendola.Tech's contribution is a responsibility-based calculator tied to the way websites are actually operated. Instead of using a lead-generation quiz that hides assumptions and announces a predetermined winner, the artifact will publish the formula, let users edit every value, flag double counting, and show unassigned operational work.</p>
<p>The responsibility matrix comes from the overlap between website development, ongoing web operations, SEO/local visibility, analytics, infrastructure, and direct support in the Mendola.Tech service. The same worksheet can be used to evaluate Mendola.Tech, an agency, a freelancer, a builder platform, or an internal team.</p>
<h2 id="sources">Sources</h2>
<ul>
<li><a href="https://www.cisa.gov/small-and-medium-sized-business-resources" rel="noreferrer">Small and Medium-Sized Business Resources</a> — U.S. Cybersecurity and Infrastructure Security Agency; accessed 2026-08-09. Supports treating software updates, account security, and resilience as operational responsibilities rather than optional marketing features.</li>
<li><a href="https://www.cisa.gov/sites/default/files/publications/CISA%20Insights_Guidance-for-MSPs-and-Small-and-Mid-sized-Businesses_S508C.pdf" rel="noreferrer">Mitigations and Hardening Guidance for MSPs and Small- and Mid-sized Businesses</a> — CISA; accessed 2026-08-09. Supports including backups, access control, and provider/customer responsibility in the operating model.</li>
<li><a href="https://www.w3.org/WAI/WCAG22/quickref/" rel="noreferrer">Web Content Accessibility Guidelines (WCAG) 2.2 Quick Reference</a> — W3C Web Accessibility Initiative; accessed 2026-08-09. Supports accessibility as an ongoing quality responsibility rather than a purely visual launch task.</li>
<li><a href="https://developers.google.com/search/docs/fundamentals/seo-starter-guide" rel="noreferrer">SEO Starter Guide</a> — Google Search Central; accessed 2026-08-09. Supports the inclusion of crawlable structure, useful content, and ongoing search-quality work in the responsibility map.</li>
<li><a href="https://developers.google.com/speed/docs/insights/v5/about" rel="noreferrer">About PageSpeed Insights</a> — Google for Developers; accessed 2026-08-09. Supports separating measurement/diagnostics from unsupported guarantees about real-user outcomes.</li>
</ul>
]]></content:encoded>
    </item>
  </channel>
</rss>