<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: gobuy.ai</title>
    <description>The latest articles on DEV Community by gobuy.ai (@gobuy).</description>
    <link>https://dev.to/gobuy</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3830071%2F9d84ca49-b872-440b-937f-0fa589c54ae8.jpg</url>
      <title>DEV Community: gobuy.ai</title>
      <link>https://dev.to/gobuy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gobuy"/>
    <language>en</language>
    <item>
      <title>Nobody Reads Reviews Anymore. Not People, Not Agents — So We Built the Reader</title>
      <dc:creator>gobuy.ai</dc:creator>
      <pubDate>Mon, 12 Oct 2026 07:35:53 +0000</pubDate>
      <link>https://dev.to/gobuy/nobody-reads-reviews-anymore-not-people-not-agents-so-we-built-the-reader-5624</link>
      <guid>https://dev.to/gobuy/nobody-reads-reviews-anymore-not-people-not-agents-so-we-built-the-reader-5624</guid>
      <description>&lt;p&gt;Salesforce's 2026 holiday data has a line that should stop everyone building shopping agents: &lt;strong&gt;41% of shoppers skip reading reviews entirely when a brand's AI assistant answers their questions.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not "read fewer reviews." Skip entirely. The assistant's answer replaces the corpus.&lt;/p&gt;

&lt;p&gt;Combine that with what was already true — humans never read all 500 reviews anyway; we read the first ten and the star average — and you get the strange situation this post is about:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nobody reads reviews anymore. Not people. Not agents.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The agent side of the story
&lt;/h2&gt;

&lt;p&gt;It's tempting to think AI agents fix this. They don't — for a mechanical reason: &lt;strong&gt;context windows can't afford the corpus either.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A product with 500 reviews averages maybe 150,000 words. An agent doing a multi-product comparison can't ingest that per product and still function. So what do agents actually do? They read the star average, maybe the first few reviews, and reason from the listing copy — which is exactly the shallow read a tired human does at midnight, except the agent does it confidently, at scale, and calls it research.&lt;/p&gt;

&lt;p&gt;And the corpus it skims is contaminated. Estimates put fake, incentivized, or AI-generated reviews at 30–40% of volume on major marketplaces. Trustpilot removed 4.5M fake reviews from a single platform in a year. The star average agents inherit is a blend of real sentiment and industrial manipulation.&lt;/p&gt;

&lt;h2&gt;
  
  
  The trust transfer
&lt;/h2&gt;

&lt;p&gt;Here's the part that should worry the people building those assistants: when a shopper stops reading reviews because the assistant answered, trust doesn't disappear — it transfers. From an open, if polluted, corpus... to a closed one controlled by the seller.&lt;/p&gt;

&lt;p&gt;The assistant's knowledge of the product comes from the product page. The product page is written by the seller. The 41% who skip reviews have moved their trust from "what everyone said" to "what the brand told the AI." That's not an AI problem; it's a single-source problem wearing an AI hat.&lt;/p&gt;

&lt;h2&gt;
  
  
  So we built the reader
&lt;/h2&gt;

&lt;p&gt;At GoBuy we took the obvious-but-awkward position: if no one in the transaction reads the reviews, the reading itself has to be a service.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What "reading" means when a machine does it seriously:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Per-review forensics.&lt;/strong&gt; Every review gets individual assessment: authenticity signals, Verified Purchase cross-checks, linguistic and temporal anomaly flags. Not corpus vibes — per-item inspection.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Statistical aggregation that respects sample size.&lt;/strong&gt; A Wilson-interval-style lower bound on the positive rate, so a 5.0 from 10 reviews loses to a 4.6 from 2,400. Sample-size honesty, built into the number. (A statistician publicly caught one of our example numbers being wrong recently; the correction is in our writeup. That exchange is part of how this should work.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Longitudinal signals.&lt;/strong&gt; Rating velocity, burst detection, trajectory shape — the distributional evidence that survives even when AI-generated text becomes stylistically undetectable. A brushed product has a &lt;em&gt;shape&lt;/em&gt; over time, regardless of how good the fake prose reads.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;A disclaimer we actually mean.&lt;/strong&gt; The output is an Evidence Score: what the marketplace record supports. Not product quality, not safety, not a purchase recommendation. Evidence ≠ quality — and an evidence layer that forgets that becomes just another recommender with better branding.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The two doors
&lt;/h2&gt;

&lt;p&gt;The same reading serves both audiences who stopped reading:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Humans&lt;/strong&gt; get the score where they shop (browser extension, badges) — the 30-second answer the 500 reviews were supposed to provide.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agents&lt;/strong&gt; get it as an MCP tool (&lt;code&gt;check_product_trust&lt;/code&gt;, free, keyless) and a spec — &lt;a href="https://docs.gobuy.ai/standard" rel="noopener noreferrer"&gt;GPV-1&lt;/a&gt;, eight conditions that should hold before any autonomous checkout. Consent doesn't skip evidence.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Same reader. Same score. Two doors.&lt;/p&gt;

&lt;h2&gt;
  
  
  The uncomfortable summary
&lt;/h2&gt;

&lt;p&gt;The 2026 holiday season is the first with AI-mediated shopping at scale: Adobe projects $275B online, a fifth of traffic influenced by agents. Every one of those transactions leans on a corpus nobody reads — human or machine.&lt;/p&gt;

&lt;p&gt;Somebody has to do the reading. We decided it should be something you can audit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it:&lt;/strong&gt; the server is open source (MIT) at &lt;a href="https://github.com/gobuy-ai/gobuy-mcp" rel="noopener noreferrer"&gt;github.com/gobuy-ai/gobuy-mcp&lt;/a&gt;, the endpoint is &lt;a href="https://mcp.gobuy.ai/mcp" rel="noopener noreferrer"&gt;mcp.gobuy.ai/mcp&lt;/a&gt;, and the methodology series continues daily here.&lt;/p&gt;

&lt;p&gt;More: &lt;a href="https://gobuy.ai" rel="noopener noreferrer"&gt;https://gobuy.ai&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>ecommerce</category>
      <category>machinelearning</category>
      <category>agenticai</category>
    </item>
    <item>
      <title>How We Built a Fake-Review Detector Using Wilson Confidence Intervals and Bayesian Inference</title>
      <dc:creator>gobuy.ai</dc:creator>
      <pubDate>Sun, 11 Oct 2026 10:35:26 +0000</pubDate>
      <link>https://dev.to/gobuy/how-we-built-a-fake-review-detector-using-wilson-confidence-intervals-and-bayesian-inference-gij</link>
      <guid>https://dev.to/gobuy/how-we-built-a-fake-review-detector-using-wilson-confidence-intervals-and-bayesian-inference-gij</guid>
      <description>&lt;p&gt;Can math tell you whether those 4.9-star reviews are real?&lt;/p&gt;

&lt;p&gt;Not with certainty — but with confidence, and the difference between the two is where the interesting engineering lives. This post walks through the statistical core of GoBuy's scoring: two layers of classical inference applied to marketplace reviews, what each one is actually for, and the trap hiding in the most obvious approach.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Amazon lists over 300 million products, and conservative estimates put fake, AI-generated, or incentivized reviews at 30–40% of the total — a share that grows as LLMs make generation free. Existing tools (Fakespot, ReviewMeta) answered this with proprietary black boxes. We wanted the opposite: a system where every number is derivable from first principles, so anyone can audit why a product scores the way it does.&lt;/p&gt;

&lt;h2&gt;
  
  
  Layer 1: the Wilson score lower bound — sample-size honesty for &lt;em&gt;ranking&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;The naive average ignores how many reviews it rests on. A product with 10 reviews at 100% positive and a product with 1,000 reviews at 95% positive both "average" near the top — but they are not equally believable.&lt;/p&gt;

&lt;p&gt;The Wilson score interval fixes this. For observed positive proportion &lt;code&gt;p&lt;/code&gt; over &lt;code&gt;n&lt;/code&gt; reviews at 95% confidence (z = 1.96):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;lower = (p + z²/2n − z·√(p(1−p)/n + z²/4n²)) / (1 + z²/n)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Worked examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;480/500 positive (96%)&lt;/strong&gt; → lower bound &lt;strong&gt;0.939&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;950/1,000 positive (95%)&lt;/strong&gt; → lower bound &lt;strong&gt;0.935&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10/10 positive (100%)&lt;/strong&gt; → lower bound &lt;strong&gt;0.72&lt;/strong&gt; — a perfect-but-tiny record still leaves real uncertainty&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 10-review product drops below products with hundreds of slightly-less-perfect reviews. That is the point: &lt;strong&gt;the Wilson layer is a ranking tool that makes claims honest about their sample size.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One thing this layer is &lt;em&gt;not&lt;/em&gt;: a fraud detector. A lower bound on the positive rate measures how &lt;em&gt;liked&lt;/em&gt; a product appears to be, not whether the reviews are real — a coordinated burst raises the rate and shrinks the interval, which is exactly what an attacker produces. Fraud detection lives in different signals entirely (velocity, trajectory shape, verified-purchase mismatches — a future post).&lt;/p&gt;

&lt;h2&gt;
  
  
  Layer 2: the Beta-Binomial model — beliefs that update over time
&lt;/h2&gt;

&lt;p&gt;Wilson gives a snapshot. Reviews accumulate, and we want beliefs that update incrementally.&lt;/p&gt;

&lt;p&gt;Treat the true positive rate as a Beta-distributed random variable. Start with Beta(1,1) (uniform — no prior opinion), then each positive review nudges the parameters up:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Beta(α₀ + positives, β₀ + negatives)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;480/500 → Beta(481, 21). The 5th percentile of that posterior is &lt;strong&gt;0.9425&lt;/strong&gt; — note how close it sits to Wilson's one-sided 0.943 bound. That is not a coincidence: &lt;strong&gt;with a flat prior, both layers are functions of the same two counts, and they agree to the third decimal.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So why keep the Bayesian layer at all? Because its value is not in the flat-prior case — it is in what the flat prior can't do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Real priors.&lt;/strong&gt; A category-level base rate (e.g., "electronics in this price band average 4.1 stars") gives the posterior something to learn &lt;em&gt;from&lt;/em&gt;, pulling thin histories toward category reality instead of letting 10 reviews dominate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sequential updates.&lt;/strong&gt; New evidence arrives daily; the posterior updates in O(1) without recomputing history.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Regime changes.&lt;/strong&gt; A prior informed by recent behavior makes sudden distribution shifts visible faster.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The honest engineering summary: with Beta(1,1), the Bayesian layer is nearly the same signal as Wilson counted twice — it earns independent weight only when it carries real prior structure and the temporal dimension. That is how it runs in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the composite actually measures
&lt;/h2&gt;

&lt;p&gt;Neither layer measures review &lt;em&gt;authenticity&lt;/em&gt;. Together they measure how much the observed rating deserves its number — the evidence-quality backbone of a trust score. Authenticity (burst detection, trajectory anomalies, verified-purchase mismatches) is a separate family of longitudinal signals layered on top, and it deserves its own post.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The composite, briefly:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wilson lower bound — ranking honesty about sample size (~35%)&lt;/li&gt;
&lt;li&gt;Bayesian posterior with category priors — temporal + prior structure (~30%)&lt;/li&gt;
&lt;li&gt;Longitudinal authenticity signals — burst, trajectory, provenance (the rest; future post)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;The full corpus runs at &lt;a href="https://gobuy.ai" rel="noopener noreferrer"&gt;gobuy.ai&lt;/a&gt;; the gate that consumes it is &lt;a href="https://docs.gobuy.ai/standard" rel="noopener noreferrer"&gt;GPV-1&lt;/a&gt;, our open pre-purchase verification spec — one call, &lt;code&gt;check_product_trust&lt;/code&gt;, returns the evidence score an agent should see before checkout. The reference implementation is &lt;a href="https://github.com/digitalmentes7-maker/verify-then-checkout" rel="noopener noreferrer"&gt;open source&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Corrections: an earlier version stated 0.69 for the 10/10 Wilson example; the correct value is 0.72 (thanks to &lt;a class="mentioned-user" href="https://dev.to/arhancanli"&gt;@arhancanli&lt;/a&gt; for catching it). This version also clarifies the division of labor between the two statistical layers, following his equally fair observation that they nearly coincide under a flat prior.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>statistics</category>
      <category>datascience</category>
    </item>
  </channel>
</rss>
