<?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: GrimLabs</title>
    <description>The latest articles on DEV Community by GrimLabs (@robertatkinson3570).</description>
    <link>https://dev.to/robertatkinson3570</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3808757%2F466a337e-b6bc-4c71-98a0-8d3ba3c572b3.png</url>
      <title>DEV Community: GrimLabs</title>
      <link>https://dev.to/robertatkinson3570</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/robertatkinson3570"/>
    <language>en</language>
    <item>
      <title>Why 85% of Callers Never Call Back (and What I Did About It)</title>
      <dc:creator>GrimLabs</dc:creator>
      <pubDate>Sat, 09 May 2026 14:00:04 +0000</pubDate>
      <link>https://dev.to/robertatkinson3570/why-85-of-callers-never-call-back-and-what-i-did-about-it-3n7n</link>
      <guid>https://dev.to/robertatkinson3570/why-85-of-callers-never-call-back-and-what-i-did-about-it-3n7n</guid>
      <description>&lt;h1&gt;
  
  
  Why 85% of Callers Never Call Back (and What I Did About It)
&lt;/h1&gt;

&lt;p&gt;I used to think if someone really needed my services, they'd call back. I run a residential cleaning company. 12 employees, serving about 200 homes a month. When we missed a call I figured, its cleaning, they'll try again tomorrow.&lt;/p&gt;

&lt;p&gt;They didnt.&lt;/p&gt;

&lt;p&gt;I started tracking this after my bookkeeper mentioned that our new client numbers were down even though our Google reviews and website traffic were both up. Something wasn't adding up. So i installed a call tracking system and started logging every missed call. Then I followed up manually on each one within 24 hours.&lt;/p&gt;

&lt;p&gt;Out of 40 missed calls over two weeks, only 6 people answered when I called back. Of those 6, only 2 hadn't already booked with someone else. Thats a 5% recovery rate on missed leads. The other 95% were gone.&lt;/p&gt;

&lt;h2&gt;
  
  
  The one-shot window is real
&lt;/h2&gt;

&lt;p&gt;The data on this is brutal. According to research from &lt;a href="https://www.leadconnect.io/" rel="noopener noreferrer"&gt;Lead Connect&lt;/a&gt;, 78% of customers buy from the first company that responds to their inquiry. Not the best company. Not the cheapest company. The first one that picks up.&lt;/p&gt;

&lt;p&gt;And once they've booked with someone else, they're done shopping. A &lt;a href="https://www.brightlocal.com/research/" rel="noopener noreferrer"&gt;BrightLocal survey&lt;/a&gt; found that 85% of callers who reach voicemail or get no answer will not call back. They just move to the next option.&lt;/p&gt;

&lt;p&gt;Think about your own behavior for a second. When was the last time you called a business, got voicemail, and then called them back later? If your anything like most people, you just Googled again and called the next result.&lt;/p&gt;

&lt;p&gt;This is what researchers call the "speed-to-lead" problem. The window between when a potential customer decides they need something and when they commit to a provider is incredibly short. For service businesses, its often measured in minutes, not hours.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 5-minute rule
&lt;/h2&gt;

&lt;p&gt;The most cited study on response time comes from &lt;a href="https://hbr.org/2011/03/the-short-life-of-online-sales-leads" rel="noopener noreferrer"&gt;Harvard Business Review&lt;/a&gt;. They analyzed over 100,000 leads across industries and found:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Responding within 5 minutes makes you 100x more likely to make contact versus waiting 30 minutes&lt;/li&gt;
&lt;li&gt;After 5 minutes, the odds of qualifying a lead drop 10x&lt;/li&gt;
&lt;li&gt;After 10 minutes, the odds drop another 4x&lt;/li&gt;
&lt;li&gt;Most companies took an average of 42 hours to respond to a web lead&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last stat is insane. 42 hours. By then the customer has already booked, maybe already received the service, and possibly left a 5-star review for your competitor.&lt;/p&gt;

&lt;p&gt;For phone calls the window is even tighter. At least with a web form the lead might check email later. With a phone call, if you dont answer right then, the moment is gone. They're already dialing the next number.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why small businesses are structurally disadvantaged
&lt;/h2&gt;

&lt;p&gt;Big companies solve this with staffing. A national HVAC chain can have a 20-person call center that operates 12 hours a day. They answer every call on the second ring.&lt;/p&gt;

&lt;p&gt;Small businesses cant do that. The owner is the technician. The office manager is also the bookkeeper, scheduler, and marketing department. There are maybe 2-3 people total and they're all wearing multiple hats.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://www.sba.gov/" rel="noopener noreferrer"&gt;SBA&lt;/a&gt; reports that 80% of small businesses in the US have fewer than 20 employees. Most have fewer than 5. These businesses physically cannot have someone dedicated to answering phones at all times. Its not a matter of willingness. Its a matter of capacity.&lt;/p&gt;

&lt;p&gt;So what happens is predictable. The best time for customer calls (business hours, especially mornings) is also the busiest time for actually doing the work. And the leads keep coming and going while you're out serving the customers you already have.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I tried (and what actually worked)
&lt;/h2&gt;

&lt;p&gt;After seeing my abysmal 5% recovery rate on missed calls, I tried several approaches:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Calling back faster.&lt;/strong&gt; I set a rule that we'd return every missed call within 15 minutes. This helped somewhat. My recovery rate went from 5% to about 25%. But it was disruptive. Stopping what I was doing every time a missed call came in to call back immediately was stressful and made it hard to focus on actual work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Text-back automation.&lt;/strong&gt; I set up an auto-text that fires whenever we miss a call: "Hi, thanks for calling [company name]. We missed your call but we'll get back to you within 15 minutes. If you'd like to book online, here's a link." This was surprisingly effective. About 30% of people who got the text booked online before I even called back.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI call answering.&lt;/strong&gt; I built &lt;a href="https://agentergon.com/" rel="noopener noreferrer"&gt;AgentErgon&lt;/a&gt; to solve this exact problem. If we cant answer within 3 rings, the AI picks up. It answers basic questions about services, pricing ranges, and availability. It books appointments directly into the calendar.&lt;/p&gt;

&lt;p&gt;The combination of all three (faster callbacks, auto-texts, and AI overflow) took my lead capture rate from about 42% to 91%. Thats not a typo. I went from losing more than half my inbound leads to capturing 9 out of 10.&lt;/p&gt;

&lt;h2&gt;
  
  
  The compound effect nobody calculates
&lt;/h2&gt;

&lt;p&gt;Missing one call doesnt seem like a big deal. But the compound effect over a year is staggering.&lt;/p&gt;

&lt;p&gt;My cleaning company averages about 60 inbound calls per week. At my old 42% capture rate, I was losing roughly 35 calls per week. At an average customer lifetime value of about $4,800 (recurring monthly cleaning), even a 10% conversion rate on those lost calls means I was leaving $16,800 per week in lifetime customer value on the table.&lt;/p&gt;

&lt;p&gt;Obviously not every missed call is a potential $4,800 customer. Some are existing clients, some are spam, some are tire kickers. But even conservatively, the annual impact of missed calls on a small service business is easily in the tens of thousands.&lt;/p&gt;

&lt;p&gt;And heres the part that really gets me: you never see this money. Its not a line item on your P&amp;amp;L. You don't get an invoice for "revenue you would have earned if you'd answered the phone." It just quietly doesn't happen. Month after month. Year after year.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to do right now
&lt;/h2&gt;

&lt;p&gt;If your running a small business and you havent measured your call answer rate, do it this week. Most VoIP systems have basic reporting built in. Google Voice can show you missed calls. Even just keeping a tally on a sticky note for a week will open your eyes.&lt;/p&gt;

&lt;p&gt;Then do the math. Your average job value times the number of missed calls times your estimated close rate. That number is what you're leaving on the table.&lt;/p&gt;

&lt;p&gt;The solution doesnt have to be expensive or complicated. An auto-text system costs $20-50/month. Faster callback habits cost nothing. AI overflow tools are available at a fraction of what a full time receptionist costs.&lt;/p&gt;

&lt;p&gt;The 85% of callers who never call back are never going to give you a second chance. The only question is whether your ready for them the first time.&lt;/p&gt;

</description>
      <category>customerservice</category>
      <category>leadresponse</category>
      <category>smallbusiness</category>
      <category>speedtolead</category>
    </item>
    <item>
      <title>I Spent $2K/Month on Google Ads and Missed Half the Calls</title>
      <dc:creator>GrimLabs</dc:creator>
      <pubDate>Fri, 08 May 2026 14:00:05 +0000</pubDate>
      <link>https://dev.to/robertatkinson3570/i-spent-2kmonth-on-google-ads-and-missed-half-the-calls-4ip6</link>
      <guid>https://dev.to/robertatkinson3570/i-spent-2kmonth-on-google-ads-and-missed-half-the-calls-4ip6</guid>
      <description>&lt;h1&gt;
  
  
  I Spent $2K/Month on Google Ads and Missed Half the Calls
&lt;/h1&gt;

&lt;p&gt;My friend Darren runs an HVAC company. Last summer he was spending $2,200 a month on Google Ads. Click-to-call campaigns, local search ads, the whole setup. His Google Ads dashboard looked great. Lots of clicks, lots of calls initiated, cost-per-lead was reasonable.&lt;/p&gt;

&lt;p&gt;Then his marketing guy installed call tracking and the whole picture fell apart.&lt;/p&gt;

&lt;p&gt;Out of roughly 180 calls per month generated by his ads, Darren's team was only answering about 85 of them. Almost half were going to voicemail, ringing out, or hitting a busy signal. He was paying Google $12-18 per click for leads that nobody picked up.&lt;/p&gt;

&lt;p&gt;He literally told me "I've been pouring money into a bucket with a hole in the bottom for two years."&lt;/p&gt;

&lt;h2&gt;
  
  
  The math that makes you sick
&lt;/h2&gt;

&lt;p&gt;Lets break this down because the numbers are genuinely painful.&lt;/p&gt;

&lt;p&gt;Darren's Google Ads spend: $2,200/month&lt;br&gt;
Calls generated: ~180/month&lt;br&gt;
Cost per call: ~$12.22&lt;br&gt;
Calls answered: ~85&lt;br&gt;
Calls missed: ~95&lt;/p&gt;

&lt;p&gt;His average HVAC service call is worth about $350. His close rate on phone leads is around 35%. So each answered call is worth roughly $122.50 in expected revenue.&lt;/p&gt;

&lt;p&gt;Those 95 missed calls? Thats $11,637 in lost potential revenue per month. Over a year, thats nearly $140,000. And he's still paying $26,400 annually for the ads that generated those wasted leads.&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://www.wordstream.com/blog/ws/2019/07/15/call-tracking-metrics" rel="noopener noreferrer"&gt;WordStream research&lt;/a&gt;, this problem is widespread. They found that 49% of businesses running call extension ads don't have adequate systems to handle the call volume those ads generate. Almost half.&lt;/p&gt;

&lt;h2&gt;
  
  
  You're buying attention you can't convert
&lt;/h2&gt;

&lt;p&gt;The thing is, Google Ads works exactly as designed. You pay for the click. Someone calls. Google delivered the lead. What happens after that is your problem.&lt;/p&gt;

&lt;p&gt;But nobody talks about this at the marketing agency level. When Darren's agency sent him monthly reports they showed impressions, clicks, calls initiated, and cost per lead. Great metrics. They never tracked calls answered. Because thats "operations" not "marketing."&lt;/p&gt;

&lt;p&gt;This disconnect between marketing spend and operational capacity is costing small businesses a fortune. The &lt;a href="https://www.sba.gov/" rel="noopener noreferrer"&gt;SBA (Small Business Administration)&lt;/a&gt; estimates that small businesses in the US spend over $100 billion annually on advertising. If even 20% of the leads generated by that spending go unanswered, we're talking about tens of billions of dollars in wasted ad spend across the economy.&lt;/p&gt;

&lt;p&gt;And its not just Google Ads. Yelp ads, Facebook lead forms, Thumbtack leads, Angi (formerly Angie's List). Every paid lead source has the same problem if you cant answer when people reach out.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the calls come at the worst time
&lt;/h2&gt;

&lt;p&gt;Heres what makes this extra frustrating for service businesses. The calls generated by your ads tend to come in during your busiest hours. Why? Because thats when people are searching. Homeowner's AC breaks at 2pm, they Google "HVAC repair near me," they click your ad, they call.&lt;/p&gt;

&lt;p&gt;And at 2pm your techs are all on jobs, your office person is handling dispatch, and nobody's sitting by the phone waiting for new leads. The busiest time for incoming leads is also the busiest time for your existing work.&lt;/p&gt;

&lt;p&gt;Darren described it as a "success trap." The more work he had, the more calls he missed, which meant he needed to spend more on ads to replace the lost leads, which generated more calls he couldn't answer. A death spiral of wasted money.&lt;/p&gt;

&lt;h2&gt;
  
  
  The voicemail myth
&lt;/h2&gt;

&lt;p&gt;Some people think voicemail is a reasonable fallback. "If I miss the call, they'll leave a message and I'll call back."&lt;/p&gt;

&lt;p&gt;Nope.&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://www.hiya.com/" rel="noopener noreferrer"&gt;Hiya's State of the Call report&lt;/a&gt;, 80% of people wont leave a voicemail for a business they haven't used before. And even among those who do leave a message, 72% expect a callback within an hour. If you're calling back at the end of the day, you've already lost them.&lt;/p&gt;

&lt;p&gt;The customer journey for a service call goes like this: problem occurs, Google search, click top results, call first one. If they don't answer, call second one. If second one answers, book with them. Done. They're not leaving voicemails at five different companies and waiting for callbacks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.insidesales.com/" rel="noopener noreferrer"&gt;InsideSales.com research&lt;/a&gt; showed that the odds of qualifying a lead drop by 400% if you wait even 10 minutes to respond. After 5 minutes your chances drop by half. Speed wins.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually fixes this
&lt;/h2&gt;

&lt;p&gt;Darren tried a few things before he found something that worked:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hiring another office person.&lt;/strong&gt; This helped but didn't solve the problem completely. During peak hours they still got overwhelmed. And adding $35,000+ to payroll for someone who's only truly needed during surge periods felt wasteful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Answering service.&lt;/strong&gt; He tried one for three months. The agents were polite but they didnt know HVAC. They couldn't answer basic questions, couldn't give estimates, and customers complained about feeling like they were talking to a call center. Because they were.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI phone answering.&lt;/strong&gt; He started using &lt;a href="https://agentergon.com/" rel="noopener noreferrer"&gt;AgentErgon&lt;/a&gt; as his overflow system (full disclosure, I built it). If no one picks up within 4 rings it routes to the AI. The AI knows his service area, his basic pricing tiers, and can book appointments directly into his scheduling system.&lt;/p&gt;

&lt;p&gt;His answer rate went from 47% to 94%. His cost per acquired customer dropped by about 35% because he stopped wasting ad clicks. And he didnt need to hire anyone.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real takeaway
&lt;/h2&gt;

&lt;p&gt;I'm not saying everyone needs an AI phone system. But I am saying that if your spending money on ads (any amount) and you dont know your call answer rate, your probably throwing money away.&lt;/p&gt;

&lt;p&gt;Before you increase your ad budget, before you hire a marketing agency, before you try a new lead platform, figure out what happens to the leads you're already getting. If your answer rate is below 80%, fix that first. Its almost always cheaper and higher ROI than generating more leads.&lt;/p&gt;

&lt;p&gt;The cheapest lead is the one you already paid for but didn't answer. Go answer it.&lt;/p&gt;

</description>
      <category>googleads</category>
      <category>smallbusiness</category>
      <category>leadgeneration</category>
      <category>phoneleads</category>
    </item>
    <item>
      <title>62% of Small Business Calls Go Unanswered. Mine Were Too.</title>
      <dc:creator>GrimLabs</dc:creator>
      <pubDate>Thu, 07 May 2026 14:00:05 +0000</pubDate>
      <link>https://dev.to/robertatkinson3570/62-of-small-business-calls-go-unanswered-mine-were-too-kp1</link>
      <guid>https://dev.to/robertatkinson3570/62-of-small-business-calls-go-unanswered-mine-were-too-kp1</guid>
      <description>&lt;h1&gt;
  
  
  62% of Small Business Calls Go Unanswered. Mine Were Too.
&lt;/h1&gt;

&lt;p&gt;I run a small landscaping company. Four crews, two office people (one of whom is my wife), and about 150 active clients. Busiest months are April through October. And during those months, my phone rings constantly.&lt;/p&gt;

&lt;p&gt;Last June I installed a call tracking tool because I had a gut feeling we were missing calls. Not a lot, maybe a few here and there. Turns out we were missing 58% of incoming calls during business hours. Almost six out of ten.&lt;/p&gt;

&lt;p&gt;I couldn't believe it. My wife couldn't believe it. We were sitting there looking at the data like, how is this possible? We're in the office. The phone is right there.&lt;/p&gt;

&lt;p&gt;But then you think about it. She's on another call. I'm out on a job site. The line is busy. It goes to voicemail. Nobody leaves a voicemail anymore. The caller moves on to the next landscaper on Google.&lt;/p&gt;

&lt;h2&gt;
  
  
  This isnt just my problem
&lt;/h2&gt;

&lt;p&gt;According to a &lt;a href="https://www.brightlocal.com/research/" rel="noopener noreferrer"&gt;2024 study from BrightLocal&lt;/a&gt;, 62% of calls to small businesses go unanswered. Thats not a typo and its not some weird outlier statistic. Other research backs it up. A report from &lt;a href="https://www.invoca.com/" rel="noopener noreferrer"&gt;Invoca&lt;/a&gt; found similar numbers across service-based businesses.&lt;/p&gt;

&lt;p&gt;The reasons are pretty simple when you think about it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The owner is also the primary worker (plumbers, electricians, contractors)&lt;/li&gt;
&lt;li&gt;Staff is limited and multitasking&lt;/li&gt;
&lt;li&gt;Call volume is unpredictable, it spikes during certain hours&lt;/li&gt;
&lt;li&gt;Voicemail is basically dead as a communication tool&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last one is important. &lt;a href="https://www.forbes.com/" rel="noopener noreferrer"&gt;Forbes reported&lt;/a&gt; that over 80% of callers wont leave a voicemail for a business they've never worked with before. They just hang up and call the next number. So "it went to voicemail" is functionally the same as "we lost that lead."&lt;/p&gt;

&lt;h2&gt;
  
  
  What a missed call actually costs
&lt;/h2&gt;

&lt;p&gt;This is where it got real for me. I sat down and tried to figure out what those missed calls were worth.&lt;/p&gt;

&lt;p&gt;My average landscaping job is about $3,200 (seasonal contract). My close rate on phone leads is around 40%. So every qualified call that comes in is worth roughly $1,280 in expected revenue (0.40 x $3,200).&lt;/p&gt;

&lt;p&gt;We were missing about 15 calls per week during peak season. Even if only half of those were actual potential customers (the rest being spam, existing clients with questions, etc.), thats 7-8 lost leads per week. At $1,280 expected value each, I was leaving $9,000-10,000 on the table every week.&lt;/p&gt;

&lt;p&gt;Over a six month season? That's potentially $200,000+ in lost revenue. From not answering the phone.&lt;/p&gt;

&lt;p&gt;Now obviously not every missed call would have converted. Maybe my estimate is aggressive. Cut it in half and its still $100,000. Cut it in half again and its $50,000. Any way you slice it, the number is painful.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why "just hire someone" isnt that simple
&lt;/h2&gt;

&lt;p&gt;The obvious answer is to hire a dedicated receptionist. And yeah, that works if you can afford it and find the right person. But for a lot of small businesses the math doesn't pencil out the way you'd expect.&lt;/p&gt;

&lt;p&gt;A full time receptionist costs $35,000-55,000 per year depending on your market, plus benefits, plus training, plus coverage for sick days and vacations. According to the &lt;a href="https://www.bls.gov/ooh/office-and-administrative-support/receptionists.htm" rel="noopener noreferrer"&gt;Bureau of Labor Statistics&lt;/a&gt;, the median annual wage for receptionists was about $36,000 in 2024.&lt;/p&gt;

&lt;p&gt;And heres the thing. You dont need someone answering phones 40 hours a week. You need someone available during the 15-20 hours per week when call volume is highest. Paying full time for a part time need is inefficient. But good luck finding a part time receptionist who's reliable and available during your exact peak hours.&lt;/p&gt;

&lt;p&gt;Answering services are another option. They typically charge $1-2 per minute of call time. Sounds cheap until your monthly bill hits $800-1,200 and the people answering your phone dont actually know your business.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I ended up doing
&lt;/h2&gt;

&lt;p&gt;I'm not going to pretend there's one magic solution because there isnt. What I did was layer a few things together:&lt;/p&gt;

&lt;p&gt;First, I set up call routing so that if the office line is busy or unanswered after 3 rings, it forwards to my cell. If I dont pick up, it forwards to my wife's cell. If she doesn't pick up, it goes to an AI answering service.&lt;/p&gt;

&lt;p&gt;The AI piece was the game changer honestly. I built &lt;a href="https://agentergon.com/" rel="noopener noreferrer"&gt;AgentErgon&lt;/a&gt; to handle exactly this overflow problem. It answers, gets the caller's name, what they need, their address, and their preferred callback time. Then it texts me the summary immediately.&lt;/p&gt;

&lt;p&gt;Its not perfect. Some callers are weirded out by talking to an AI. But turns out most people would rather talk to a robot that actually engages with them than leave a voicemail that nobody listens to. My "lead capture" rate went from about 42% to 87% after adding the AI layer.&lt;/p&gt;

&lt;h2&gt;
  
  
  The speed-to-lead problem
&lt;/h2&gt;

&lt;p&gt;Theres another angle to this that makes it even more urgent. Research from &lt;a href="https://hbr.org/" rel="noopener noreferrer"&gt;Harvard Business Review&lt;/a&gt; found that businesses that respond to a lead within 5 minutes are 100x more likely to make contact than those who wait 30 minutes. And 78% of customers buy from the first company that responds.&lt;/p&gt;

&lt;p&gt;So its not just about answering the call. Its about answering it RIGHT NOW. Not in an hour when you're done with the job. Not at the end of the day when you check voicemails. Right now.&lt;/p&gt;

&lt;p&gt;For a one person operation or a small team, thats almost impossible without some kind of system in place. You're literally doing the work that generates the calls, which means you cant answer the calls. Its a catch-22 that every service business owner knows but nobody has a clean answer for.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real cost of doing nothing
&lt;/h2&gt;

&lt;p&gt;I know a lot of small business owners who hear this stuff and think "yeah but my situation is different" or "my customers know to call back." And look, maybe. But probably not.&lt;/p&gt;

&lt;p&gt;The data is pretty clear. Callers who dont get through almost never call back. They call your competitor. And they do it within minutes, not days.&lt;/p&gt;

&lt;p&gt;If your a service business and your not tracking your missed calls, I'd honestly recommend starting there. Just get the data. Install a call tracking tool for a month and see what your actual answer rate is. You might be fine. Or you might have a $100,000 hole in your business that you didn't know about.&lt;/p&gt;

&lt;p&gt;I wish I had looked at my numbers sooner. That data changed how I run my entire business. And the solution didnt cost anywhere near what I was losing by ignoring the problem.&lt;/p&gt;

</description>
      <category>smallbusiness</category>
      <category>phonecalls</category>
      <category>customerservice</category>
      <category>missedcalls</category>
    </item>
    <item>
      <title>Free VIN Check Tools Ranked: What They Actually Show You</title>
      <dc:creator>GrimLabs</dc:creator>
      <pubDate>Wed, 06 May 2026 14:00:05 +0000</pubDate>
      <link>https://dev.to/robertatkinson3570/free-vin-check-tools-ranked-what-they-actually-show-you-ff2</link>
      <guid>https://dev.to/robertatkinson3570/free-vin-check-tools-ranked-what-they-actually-show-you-ff2</guid>
      <description>&lt;h1&gt;
  
  
  Free VIN Check Tools Ranked: What They Actually Show You
&lt;/h1&gt;

&lt;p&gt;When i was car shopping last year I spent way too much time trying to figure out which VIN check tools were actually useful and which ones were just bait to upsell you on a paid report. Turns out the landscape is confusing on purpose. So I went through the major options and documented what each one actually gives you for free.&lt;/p&gt;

&lt;p&gt;This isnt a sponsored post and I'm not trying to sell you anything. I just wanted a clear comparison because i couldn't find one that was honest.&lt;/p&gt;

&lt;h2&gt;
  
  
  The completely free options
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. NHTSA VIN Lookup (nhtsa.gov/recalls)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it shows:&lt;/strong&gt; Open recalls, safety complaints filed against your specific vehicle model, and basic vehicle specifications (year, make, model, engine, manufacturer).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it doesn't show:&lt;/strong&gt; Accident history, title status, ownership history, odometer readings, service records. Nothing about the individual car's condition or history.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict:&lt;/strong&gt; Essential first stop. If theres an open recall on the car you need to know about it before you buy. But this tells you about the model, not the specific car. Its about manufacturing defects, not what happened to this particular vehicle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://www.nhtsa.gov/recalls" rel="noopener noreferrer"&gt;nhtsa.gov/recalls&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. NMVTIS (vehiclehistory.gov)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it shows:&lt;/strong&gt; Title history, title brands (salvage, flood, rebuilt, junk), odometer readings from title events, total loss history from insurance companies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it doesn't show:&lt;/strong&gt; Accident details, service records, detailed damage descriptions. The data is from title events and insurance, so anything that happened between titles is invisible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict:&lt;/strong&gt; This is the closest thing to a national vehicle history database. Its not technically free (approved providers charge $2-5 per report) but its so cheap it basically is. If your only going to check one paid source, this should be it. It catches title washing that other tools miss.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://www.vehiclehistory.gov/" rel="noopener noreferrer"&gt;vehiclehistory.gov&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Your State's DMV Website
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it shows:&lt;/strong&gt; Varies wildly by state. Some states let you check title status, lien status, and registration history for free. Others show almost nothing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it doesn't show:&lt;/strong&gt; Depends on the state. Most dont show accident or service history.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict:&lt;/strong&gt; Worth checking but dont expect much in most states. A few states (like California and Texas) have decent online VIN lookup tools. Many others require you to go in person or don't offer public access at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  The "free preview, pay for full report" tools
&lt;/h2&gt;

&lt;h3&gt;
  
  
  4. Carfax
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What they show for free:&lt;/strong&gt; Basic vehicle info (year, make, model) and the number of records on file. They also show open recalls (same data as NHTSA). Sometimes a free Carfax report is available through a dealer listing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The paid report ($44.99 single, $149.99 unlimited/month):&lt;/strong&gt; Accident history, ownership history, service records, title information, odometer readings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict:&lt;/strong&gt; The most comprehensive data of any single provider, but also the most expensive. The free preview is basically useless because it tells you there IS information without telling you what it is. The dealer-provided free reports are legit though, so always ask if one is available.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. AutoCheck (by Experian)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What they show for free:&lt;/strong&gt; Basic vehicle info and their proprietary "score" range. You can see that a score exists but not the actual number or details.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The paid report ($24.99 single, $49.99 for 25 reports):&lt;/strong&gt; Similar data to Carfax. Accident history, title history, odometer checks. They also have a numerical score that's supposed to represent overall vehicle quality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict:&lt;/strong&gt; Cheaper than Carfax and the data is comparable, though sourced slightly differently. The score system is unique and helpful for quick comparisons. If you're buying the bundle, the per-report cost is around $2 which is very reasonable.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. VINCheckFree / VINDecoder / various free sites
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What they show:&lt;/strong&gt; Basic VIN decoding (year, make, model, engine, transmission, manufacturing plant). Some show recall data pulled from NHTSA. Some show very basic title information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What they dont show:&lt;/strong&gt; Detailed history. Most of these sites exist to collect your email and show you ads. The "free report" is usually just VIN decoding that you can get from NHTSA directly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict:&lt;/strong&gt; Mostly skip these. The information they provide for free is the same as what you get from NHTSA. The ones that promise more usually require you to sign up, enter payment info, or sit through a 5-minute "generating your report" animation before telling you to pay.&lt;/p&gt;

&lt;h2&gt;
  
  
  The newer tools worth knowing about
&lt;/h2&gt;

&lt;h3&gt;
  
  
  7. &lt;a href="https://otdcheck.com/" rel="noopener noreferrer"&gt;OTDCheck&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it shows:&lt;/strong&gt; VIN decoding, recall data, market pricing comparison, days-on-lot data for dealer listings, and cross-referenced title information. I built this specifically for buyers who are comparing multiple cars and dont want to spend $45 per report.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict:&lt;/strong&gt; I got tired of the per-report pricing model so I built something around that specific pain point. Worth checking out if your shopping multiple vehicles simultaneously.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Bumper / EpicVIN / ClearVIN
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What they show for free:&lt;/strong&gt; Basic VIN decoding, sometimes limited title info or a "free sample" of the full report.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Paid reports:&lt;/strong&gt; Typically $15-30 per report. Data quality varies. Some pull from NMVTIS, some don't.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict:&lt;/strong&gt; Mixed bag. Some of these are decent budget alternatives to Carfax. Others are thin on data. If you go this route, make sure they use NMVTIS as a data source. Thats the baseline for catching title brands and total loss history.&lt;/p&gt;

&lt;h2&gt;
  
  
  The smart approach: layer your checks
&lt;/h2&gt;

&lt;p&gt;No single tool catches everything. Heres what i actually recommend based on going through this process multiple times:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For every car you're considering:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;NHTSA recall check (free, takes 30 seconds)&lt;/li&gt;
&lt;li&gt;Quick VIN decode to confirm the car matches the listing (free)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;For cars you're serious about (top 3-5):&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;NMVTIS check ($2-5 per report)&lt;/li&gt;
&lt;li&gt;Cross-reference with a second source (AutoCheck, OTDCheck, or whatever fits your budget)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;For the car you want to buy:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Full comprehensive report (Carfax or equivalent)&lt;/li&gt;
&lt;li&gt;Pre-purchase inspection by a mechanic ($100-200)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This layered approach means you're spending maybe $10-20 on the comparison phase and only dropping the big money on the car you've already vetted. Way better than spending $45 on every single VIN you come across.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real question nobody asks
&lt;/h2&gt;

&lt;p&gt;Honestly the bigger issue isnt which tool to use. Its that most people dont use any of them. That &lt;a href="https://www.iseecars.com/" rel="noopener noreferrer"&gt;iSeeCars survey&lt;/a&gt; I mentioned in a previous article found that 62% of used car buyers skip the VIN check entirely. Cost is the main reason but confusion about what tools exist and what they actually show is a close second.&lt;/p&gt;

&lt;p&gt;If this article saves you from buying one bad car, its done its job. The tools are out there. Most of them are free or cheap. The expensive part isnt the reports. Its not using them.&lt;/p&gt;

</description>
      <category>vincheck</category>
      <category>usedcars</category>
      <category>freetools</category>
      <category>carbuying</category>
    </item>
    <item>
      <title>I Bought a Car From a Private Seller and Got Burned. Here</title>
      <dc:creator>GrimLabs</dc:creator>
      <pubDate>Tue, 05 May 2026 14:00:04 +0000</pubDate>
      <link>https://dev.to/robertatkinson3570/i-bought-a-car-from-a-private-seller-and-got-burned-here-11e1</link>
      <guid>https://dev.to/robertatkinson3570/i-bought-a-car-from-a-private-seller-and-got-burned-here-11e1</guid>
      <description>&lt;h1&gt;
  
  
  I Bought a Car From a Private Seller and Got Burned. Here's What I Check Now.
&lt;/h1&gt;

&lt;p&gt;Two years ago i bought a 2017 Hyundai Elantra from a guy on Facebook Marketplace. He seemed nice. The car looked clean. He said he was selling because he got a new truck. Price was fair, maybe even a little below market. I thought i was getting a solid deal.&lt;/p&gt;

&lt;p&gt;I drove it for three weeks before the check engine light came on. Took it to a mechanic who told me the catalytic converter had been hollowed out and replaced with a straight pipe. The previous owner had also disconnected the rear O2 sensor to keep the light from triggering until the computer eventually caught it.&lt;/p&gt;

&lt;p&gt;Cost to fix: $1,400. And that was just the start. Over the next two months I found out the rear brakes were metal on metal, the power steering rack was leaking, and two of the motor mounts were cracked. Total repair bill by the end: $3,800.&lt;/p&gt;

&lt;p&gt;The seller? Blocked my number.&lt;/p&gt;

&lt;h2&gt;
  
  
  Private sales are the wild west
&lt;/h2&gt;

&lt;p&gt;When you buy from a dealer, you have at least some protections. Lemon laws in many states cover dealer purchases. The FTC's Used Car Rule requires dealers to display a Buyer's Guide. And if the dealer committed outright fraud, you have legal recourse.&lt;/p&gt;

&lt;p&gt;Private sales? Almost none of that applies. In most states, private vehicle sales are "as-is" by default. Once you sign that title and hand over the money, the car is your problem. Unless you can prove the seller committed intentional fraud (which is hard and expensive to litigate), you have very little legal standing.&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://www.consumerreports.org/cars/used-cars/buying-a-used-car-from-a-private-seller/" rel="noopener noreferrer"&gt;Consumer Reports&lt;/a&gt;, approximately 30% of used car transactions in the US are private party sales. Thats millions of cars changing hands every year with minimal buyer protections.&lt;/p&gt;

&lt;p&gt;And honestly the rise of Facebook Marketplace and other peer-to-peer platforms has made private sales even riskier. The old Craigslist days were sketchy but at least people expected it. Facebook gives everything a veneer of legitimacy because you can see the seller's profile, their friends, their history. It makes you let your guard down.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I check now (the hard way learned list)
&lt;/h2&gt;

&lt;p&gt;After getting burned i developed a checklist that i follow every single time. No exceptions, even if the seller seems trustworthy. Especially if the seller seems trustworthy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Before you even go see the car
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Get the VIN before the visit.&lt;/strong&gt; Ask for it via text or message. If the seller refuses to give you the VIN, dont waste your time going to see the car. There is no legitimate reason to withhold a VIN from a potential buyer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Run the VIN through multiple sources.&lt;/strong&gt; Check &lt;a href="https://www.nhtsa.gov/recalls" rel="noopener noreferrer"&gt;NHTSA&lt;/a&gt; for recalls and safety complaints. Check NMVTIS through &lt;a href="https://www.vehiclehistory.gov/" rel="noopener noreferrer"&gt;vehiclehistory.gov&lt;/a&gt; for title history. I built &lt;a href="https://otdcheck.com/" rel="noopener noreferrer"&gt;OTDCheck&lt;/a&gt; specifically to cross-reference databases in one place so you dont have to do this manually. Dont rely on a single source.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check the seller's story.&lt;/strong&gt; Look at their profile. Have they sold other cars recently? If someone is selling their "personal car" but has posted 6 cars for sale in the last year, they're a curbstoner (an unlicensed dealer pretending to be a private seller). Thats both illegal and a huge red flag.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Compare the asking price to market value.&lt;/strong&gt; Use KBB or Edmunds to get a realistic number. If the asking price is more than 10-15% below market for the year, mileage, and condition described, something might be wrong. Good deals exist but suspiciously good deals usually aren't.&lt;/p&gt;

&lt;h3&gt;
  
  
  At the car
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Bring a friend.&lt;/strong&gt; Safety first. Meet in a public place during daylight. Tell someone where you're going. This isn't paranoia, its common sense. There have been real incidents of people getting robbed or worse during car sale meetups.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cold start the engine.&lt;/strong&gt; Ask the seller not to start the car before you arrive. A cold start reveals problems that a warm engine hides. Rough idle, unusual noises, smoke from the exhaust, slow cranking. All these are more apparent on a cold start.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check every light.&lt;/strong&gt; Turn the key to the "on" position (but dont start it) and verify all warning lights illuminate. Then start the engine and make sure they all go off. If the check engine light doesnt come on during the key-on self test, someone may have removed the bulb or disabled it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pop the hood while its running.&lt;/strong&gt; Look for leaks, listen for unusual sounds, check the oil condition (dark is fine, milky is bad), look at the coolant (should be the right color, not brown or oily).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test drive for at least 20 minutes.&lt;/strong&gt; Not around the block. On the highway. Through a parking lot at low speed for turning noise. Over bumps for suspension noise. Hard braking (safely) to check the brakes. Turn off the radio and listen to the car.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Look underneath.&lt;/strong&gt; Get on your knees and look under the car. Check for fresh oil drips, rust on the frame, exhaust damage, and evidence of recent undercoating (which can hide rust).&lt;/p&gt;

&lt;h3&gt;
  
  
  The paperwork
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Title must match the seller.&lt;/strong&gt; The name on the title must match the person selling the car. If they say they're selling it for a friend, a family member, or "the title is in my LLC," walk away. Title jumping is illegal and it means theres no accountability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check for liens.&lt;/strong&gt; Some states show liens on the title. If theres a lien, the seller needs to pay it off before transferring the title to you. Never buy a car with an open lien unless you're doing the transaction at the lender's office.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get a bill of sale.&lt;/strong&gt; Write up a simple bill of sale with both names, the date, the VIN, the odometer reading, the agreed price, and both signatures. Some states require this for registration. Even if yours doesnt, its documentation that protects you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verify the VIN on the car matches the title.&lt;/strong&gt; Check the VIN plate on the dashboard (visible through the windshield) AND the door jamb sticker. Make sure both match the title. If they dont match, or if either looks tampered with, walk away immediately.&lt;/p&gt;

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

&lt;p&gt;The &lt;a href="https://www.naag.org/" rel="noopener noreferrer"&gt;National Association of Attorneys General&lt;/a&gt; estimates that curbstoning accounts for a significant portion of private used car sales. These are people who buy cars cheap (often with problems), do minimal fixes, and resell them as private sellers to avoid dealer licensing requirements, inspections, and consumer protection laws.&lt;/p&gt;

&lt;p&gt;Red flags for curbstoners:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multiple cars listed for sale simultaneously&lt;/li&gt;
&lt;li&gt;They want to meet somewhere other than their home&lt;/li&gt;
&lt;li&gt;The title is not in their name&lt;/li&gt;
&lt;li&gt;They know very little about the car's history ("I just bought it for my daughter but she doesn't want it")&lt;/li&gt;
&lt;li&gt;Cash only, no paper trail&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The bottom line
&lt;/h2&gt;

&lt;p&gt;I wish someone had given me this list before i bought that Elantra. The $3,800 in repairs taught me every single item on this checklist the hard way.&lt;/p&gt;

&lt;p&gt;Private sales can save you money. No dealer markup, no documentation fees, no sales pressure. But the tradeoff is that you are your own consumer protection agency. Nobody is going to verify the car for you. Nobody is going to back you up if something goes wrong.&lt;/p&gt;

&lt;p&gt;Take the extra hour. Do the checks. Bring a mechanic for a pre-purchase inspection ($100-200). Run the VIN. Check the paperwork. And if anything feels off, just walk away. There will always be another car.&lt;/p&gt;

&lt;p&gt;The one thing i know for sure: the cost of being careful is always less than the cost of being burned.&lt;/p&gt;

</description>
      <category>privatesale</category>
      <category>usedcars</category>
      <category>carbuyingtips</category>
      <category>consumerprotection</category>
    </item>
    <item>
      <title>Odometer Fraud Is Up 14% and Carfax Can</title>
      <dc:creator>GrimLabs</dc:creator>
      <pubDate>Mon, 04 May 2026 14:00:07 +0000</pubDate>
      <link>https://dev.to/robertatkinson3570/odometer-fraud-is-up-14-and-carfax-can-3c5i</link>
      <guid>https://dev.to/robertatkinson3570/odometer-fraud-is-up-14-and-carfax-can-3c5i</guid>
      <description>&lt;h1&gt;
  
  
  Odometer Fraud Is Up 14% and Carfax Can't Catch It All
&lt;/h1&gt;

&lt;p&gt;A guy on Reddit posted this last year and it stuck with me. He bought a 2018 Ford F-150 with 58,000 miles showing on the odometer. Great deal, great condition, everything checked out. Six months later he took it to a Ford dealer for a transmission issue under the extended warranty. The dealer pulled the service history and found that at its last oil change (done at a different Ford dealer before the sale) the truck had 127,000 miles on it.&lt;/p&gt;

&lt;p&gt;Someone rolled the odometer back almost 70,000 miles. His "great deal" was actually a high mileage truck priced like a low mileage one. And his warranty claim? Denied, because the actual mileage exceeded the coverage.&lt;/p&gt;

&lt;h2&gt;
  
  
  The numbers are getting worse
&lt;/h2&gt;

&lt;p&gt;According to &lt;a href="https://www.nhtsa.gov/equipment/odometer-fraud" rel="noopener noreferrer"&gt;NHTSA&lt;/a&gt;, odometer fraud affects approximately 2.45 million vehicles sold in the United States each year. That number has been climbing. Recent reporting from &lt;a href="https://www.npr.org/" rel="noopener noreferrer"&gt;NPR&lt;/a&gt; covered the trend, noting a roughly 14% increase in detected cases over the past three years.&lt;/p&gt;

&lt;p&gt;The average cost to a buyer who gets hit with odometer fraud is around $4,000. Multiply that across 2.45 million vehicles and your looking at nearly $10 billion in consumer losses annually. Thats not a typo. Billion with a B.&lt;/p&gt;

&lt;p&gt;And those are just the detected cases. The actual number is almost certainly higher because many cases go undetected. If the rollback is small enough (say 20,000-30,000 miles) and the buyer never cross-references service records, they might never know.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why digital odometers made this worse, not better
&lt;/h2&gt;

&lt;p&gt;You'd think digital odometers would be harder to tamper with than the old mechanical ones. Turns out the opposite is true.&lt;/p&gt;

&lt;p&gt;Mechanical odometers required physical manipulation. You had to literally take apart the instrument cluster and manually roll back the numbers. It took time, left tool marks, and was relatively detectable.&lt;/p&gt;

&lt;p&gt;Digital odometers can be reprogrammed with a $50 tool you can buy online. I'm not exaggerating. There are devices specifically marketed for "odometer correction" that plug into the car's OBD-II port and let you set whatever mileage you want. They're technically sold for "legitimate purposes" like replacing a faulty instrument cluster, but the reality is they're widely used for fraud.&lt;/p&gt;

&lt;p&gt;A &lt;a href="https://www.nicb.org/" rel="noopener noreferrer"&gt;2024 investigation by NICB&lt;/a&gt; found that the tools and knowledge to roll back a digital odometer are freely available online. YouTube tutorials, forum posts, Amazon listings for the hardware. The barrier to entry is essentially zero.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Carfax catches it (and how it misses)
&lt;/h2&gt;

&lt;p&gt;Carfax and similar services track odometer readings from multiple touchpoints: state inspections, service records, emissions tests, title transfers. When they see a reading that's lower than a previous one, they flag it as a rollback.&lt;/p&gt;

&lt;p&gt;This system works when there are enough data points. If a car gets regular oil changes at a chain shop that reports to Carfax, and then goes through a state inspection, there are multiple mileage checkpoints. A rollback would show up as an inconsistency.&lt;/p&gt;

&lt;p&gt;But heres where it breaks down:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Service gaps.&lt;/strong&gt; If the car hasnt been to a reporting shop in a while, there might be a multi-year gap in mileage records. Roll the odometer back to just above the last recorded reading and the fraud becomes invisible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Private party service.&lt;/strong&gt; If the owner does their own oil changes or uses a small independent shop that doesn't report to Carfax, there are no service-based mileage checkpoints.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;States without regular inspections.&lt;/strong&gt; Not every state requires annual safety or emissions inspections. In states without inspections, there might be no mileage checkpoint between title transfers. Thats a massive gap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick flips.&lt;/strong&gt; If someone buys a car, rolls the odometer, and resells it within a few months, the mileage discrepancy might not be large enough to trigger automated flags. Especially if there are no intervening service records.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to protect yourself
&lt;/h2&gt;

&lt;p&gt;Catching odometer fraud takes a little effort but its not impossible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check the service history.&lt;/strong&gt; Not just the Carfax report. Call the manufacturer's dealer network and ask them to look up the VIN in their system. Dealer service records often have mileage readings that don't make it to Carfax. If the car was serviced at a Honda dealer at 90,000 miles and its now showing 62,000, you have your answer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Look at the physical condition.&lt;/strong&gt; A car with 50,000 miles should look different than one with 120,000 miles. Check the pedal wear, the steering wheel, the driver seat bolster, the armrest. These areas show wear proportional to mileage. If a "50,000 mile" car has pedal pads worn smooth and a sagging driver seat, the mileage is probably wrong.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check tire age and wear.&lt;/strong&gt; Original tires on a 50,000 mile car should still have some life left. If the car has brand new tires, ask why. It might be legitimate, or it might be covering for the fact that the previous set wore out at 80,000 miles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Compare the title mileage.&lt;/strong&gt; When you look at the title, check the mileage recorded at the last transfer. Then look at the current odometer. Does the math make sense for the time between? If the title shows 85,000 miles transferred 8 months ago and the odometer now shows 88,000, thats about 4,500 miles per year. The average American drives 13,500 miles per year. Something doesn't add up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Run the VIN through NMVTIS.&lt;/strong&gt; The &lt;a href="https://www.vehiclehistory.gov/" rel="noopener noreferrer"&gt;National Motor Vehicle Title Information System&lt;/a&gt; tracks mileage at title events and can sometimes catch discrepancies that single-source reports miss. Cross referencing multiple databases is your best defense.&lt;/p&gt;

&lt;p&gt;Thats actually why I built &lt;a href="https://otdcheck.com/" rel="noopener noreferrer"&gt;OTDCheck&lt;/a&gt;. It pulls from multiple data sources simultaneously so you can spot inconsistencies that a single report would miss. The more data points you can compare, the harder it is for a rollback to go undetected.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why enforcement is so weak
&lt;/h2&gt;

&lt;p&gt;Odometer fraud is a federal crime under the Motor Vehicle Information and Cost Savings Act. Penalties include fines and up to 3 years in prison. But enforcement is incredibly thin.&lt;/p&gt;

&lt;p&gt;The problem is scale. With 2.45 million affected vehicles per year, federal agencies dont have the resources to investigate more than a tiny fraction of cases. Most enforcement happens at the state level, and state resources vary enormously.&lt;/p&gt;

&lt;p&gt;The result is that odometer fraud is a high-profit, low-risk crime. The tools are cheap, the technique is easy, the profit per vehicle is thousands of dollars, and the chance of getting caught and prosecuted is very small.&lt;/p&gt;

&lt;p&gt;Until enforcement catches up or vehicles get tamper-proof mileage tracking (blockchain-based solutions have been proposed but nothing is mainstream yet), this is a buyer-beware situation. Do your homework. Check the numbers. Trust your eyes over the odometer. And never assume that a low mileage reading means the car actually has low miles.&lt;/p&gt;

</description>
      <category>odometerfraud</category>
      <category>usedcars</category>
      <category>consumerfraud</category>
      <category>carbuying</category>
    </item>
    <item>
      <title>The Dealer Trick Nobody Talks About: Days on Lot</title>
      <dc:creator>GrimLabs</dc:creator>
      <pubDate>Sun, 03 May 2026 14:00:05 +0000</pubDate>
      <link>https://dev.to/robertatkinson3570/the-dealer-trick-nobody-talks-about-days-on-lot-2kf3</link>
      <guid>https://dev.to/robertatkinson3570/the-dealer-trick-nobody-talks-about-days-on-lot-2kf3</guid>
      <description>&lt;h1&gt;
  
  
  The Dealer Trick Nobody Talks About: Days on Lot
&lt;/h1&gt;

&lt;p&gt;My sister went to buy a used Mazda CX-5 last month. She walked onto the lot, test drove it, liked it, and the salesperson told her "we just got this one in, its getting a lot of interest, probably wont last the weekend."&lt;/p&gt;

&lt;p&gt;Standard pressure stuff. She almost fell for it.&lt;/p&gt;

&lt;p&gt;But before she went to the dealer she had looked up the VIN online and found the listing had been active for 47 days. This car wasnt "just in." It had been sitting there for almost seven weeks. Nobody wanted it at that price.&lt;/p&gt;

&lt;p&gt;She negotiated $2,800 off the asking price. The dealer took the deal the same day.&lt;/p&gt;

&lt;h2&gt;
  
  
  What "days on lot" means and why dealers hide it
&lt;/h2&gt;

&lt;p&gt;Every car on a dealer lot has a clock ticking. From the day it arrives (either from auction, trade-in, or consignment) the dealer is losing money on it. They're paying for the floor space. They're paying interest on the loan they took to buy it (called "floor plan" financing). They're paying for insurance on it.&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://www.coxautomotive.com/" rel="noopener noreferrer"&gt;Cox Automotive data&lt;/a&gt;, the average used car sits on a dealer lot for about 50-55 days before being sold. But that average hides a huge range. Some cars sell in under a week. Others sit for 90+ days.&lt;/p&gt;

&lt;p&gt;And heres the thing dealers dont want you to know: after about 45-60 days, most dealers are genuinely motivated to move that car. After 90 days, they're desperate. The carrying costs are eating into their margin and they might actually be underwater on it.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to find out how long a car has been sitting
&lt;/h2&gt;

&lt;p&gt;This isnt secret information but its not always obvious either. Here are the ways to figure it out:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check online listing dates.&lt;/strong&gt; Sites like Cars.com, Autotrader, and CarGurus show when a listing was first posted. Some dealers will take down a listing and repost it to reset the clock, but if you've been watching the market you might notice the same car reappearing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Look at the window sticker date.&lt;/strong&gt; Dealers are required to put a buyer's guide on used cars. Sometimes the date on the internal paperwork shows when the car was prepped for sale.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ask the salesperson directly.&lt;/strong&gt; This sounds too simple but just ask "when did you get this car in?" If they dodge the question or give a vague answer, thats telling. If they say "just came in" but the listing says otherwise, you know theyre not being straight with you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check vehicle history reports.&lt;/strong&gt; Some VIN check tools show when a vehicle was listed for sale and can give you a rough timeline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Look at the tire pressure sticker and inspection sticker.&lt;/strong&gt; If the car had a state inspection done on the lot, the date on the sticker tells you approximately when it arrived and was prepped for sale.&lt;/p&gt;

&lt;h2&gt;
  
  
  The negotiation leverage
&lt;/h2&gt;

&lt;p&gt;This is where it gets practical. A car thats been on the lot for 30 days or less has minimal negotiation room. The dealer just got it, they're optimistic about the price, and theres no carrying cost pressure yet.&lt;/p&gt;

&lt;p&gt;But once you get past 45 days the dynamics shift. Here's a rough framework based on what I've seen and what people in the car sales industry have shared:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;0-30 days:&lt;/strong&gt; Dealer has full confidence in the price. You might get $500-1,000 off but dont expect much more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;30-45 days:&lt;/strong&gt; Some flexibility. The car hasn't attracted a buyer at the current price so theres evidence it might be overpriced. $1,000-2,000 off is reasonable to ask for.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;45-60 days:&lt;/strong&gt; Real motivation kicks in. The sales manager is probably getting pressure from the finance department. $2,000-3,500 off is realistic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;60-90 days:&lt;/strong&gt; The dealer is likely losing money on the car every week. They may have already dropped the price once or twice. This is where you can get serious discounts. $3,000-5,000+ off original asking is possible depending on the car.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;90+ days:&lt;/strong&gt; At this point the dealer might be considering sending it to auction at a loss. If you make a reasonable offer (even significantly below asking) they might take it just to stop the bleeding.&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://www.edmunds.com/car-buying/how-long-has-that-car-been-on-the-lot.html" rel="noopener noreferrer"&gt;Edmunds&lt;/a&gt;, cars that sit past 60 days typically sell for 5-15% below the dealer's original asking price. On a $25,000 car thats $1,250 to $3,750 in savings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why some cars sit
&lt;/h2&gt;

&lt;p&gt;Not every car that sits on a lot for a long time is a bad car. Sometimes the dealer just priced it wrong. Sometimes its an unpopular color. Sometimes its a niche vehicle (manual transmission, weird trim level) that appeals to fewer buyers.&lt;/p&gt;

&lt;p&gt;But sometimes cars sit because something is actually wrong with them. High mileage for the year, accident history, mechanical issues that showed up during reconditioning. So dont just blindly buy a long-sitting car assuming you're getting a deal. Still do your homework.&lt;/p&gt;

&lt;p&gt;The key is that days on lot gives you information about the dealer's motivation level. And in negotiation, understanding the other side's motivation is everything.&lt;/p&gt;

&lt;h2&gt;
  
  
  The end-of-month factor
&lt;/h2&gt;

&lt;p&gt;Combine days on lot with timing and you've got even more leverage. Dealers have monthly sales targets. Their salespeople have monthly quotas. At the end of the month (especially the last 2-3 days), theres extra pressure to close deals.&lt;/p&gt;

&lt;p&gt;A car thats been sitting for 60 days and you show up on the 28th of the month? You have about as much leverage as a buyer can have. Not gonna lie, i've seen people get cars for $4,000-5,000 below asking in this exact scenario.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to actually say
&lt;/h2&gt;

&lt;p&gt;You dont need to be aggressive or confrontational about this. Just be honest and direct:&lt;/p&gt;

&lt;p&gt;"I noticed this car has been listed for about 50 days. I really like it but the price is a bit above what I'm seeing for comparable cars. Would you consider [your offer]?"&lt;/p&gt;

&lt;p&gt;Thats it. You're not accusing them of anything. You're not playing games. You're just showing that you've done your homework and you know the car hasn't been moving at the current price.&lt;/p&gt;

&lt;p&gt;Most salespeople will respect this more than someone who comes in uninformed and just says "whats your best price." Information is leverage. Use it.&lt;/p&gt;

&lt;p&gt;My sister's $2,800 savings on that CX-5 took her about 10 minutes of research before she went to the dealer. Thats a pretty good hourly rate.&lt;/p&gt;

</description>
      <category>carnegotiation</category>
      <category>dealertips</category>
      <category>usedcars</category>
      <category>carbuying</category>
    </item>
    <item>
      <title>How to Spot a Flood Car Before You Buy It (482,000 Are for Sale)</title>
      <dc:creator>GrimLabs</dc:creator>
      <pubDate>Sat, 02 May 2026 14:00:05 +0000</pubDate>
      <link>https://dev.to/robertatkinson3570/how-to-spot-a-flood-car-before-you-buy-it-482000-are-for-sale-4ggh</link>
      <guid>https://dev.to/robertatkinson3570/how-to-spot-a-flood-car-before-you-buy-it-482000-are-for-sale-4ggh</guid>
      <description>&lt;h1&gt;
  
  
  How to Spot a Flood Car Before You Buy It (482,000 Are for Sale)
&lt;/h1&gt;

&lt;p&gt;After Hurricane Helene hit the Southeast in late 2024, the insurance industry estimated over 300,000 vehicles were damaged or destroyed by flooding. After Hurricane Milton hit Florida just weeks later, that number jumped even higher. According to &lt;a href="https://www.nhtsa.gov/" rel="noopener noreferrer"&gt;NHTSA estimates&lt;/a&gt;, roughly 482,000 flood-damaged vehicles from 2024 storm events alone entered the used car pipeline.&lt;/p&gt;

&lt;p&gt;Most of those cars dont just get scrapped. They get dried out, cleaned up, and resold. Some legitimately, with proper salvage or flood titles. Many others through shady channels where the flood history gets buried.&lt;/p&gt;

&lt;p&gt;And if you think this is a regional problem that only affects people in hurricane zones, think again. These cars get shipped and sold nationwide. A flood car from Houston can end up on a lot in Ohio three months later.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why flood cars are so dangerous
&lt;/h2&gt;

&lt;p&gt;Water and cars do not mix. Not just "my floor mats got wet" water. We're talking about brackish, muddy, contaminated water that sits inside a vehicle for hours or days. It gets into everything.&lt;/p&gt;

&lt;p&gt;The electrical system is the biggest concern. Modern cars have dozens of electronic control modules scattered throughout the vehicle. Under seats, in door panels, behind the dash, in the trunk. When those get submerged, the damage might not show up immediately. But corrosion starts working on the connectors and circuit boards right away.&lt;/p&gt;

&lt;p&gt;You might buy a flood car and it runs perfectly fine for 3 months. Then the airbag module fails. Or the ABS system throws codes. Or the transmission control unit starts acting up. And each one of those repairs is $500 to $2,000+.&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://www.consumerreports.org/cars/used-cars/how-to-avoid-buying-a-flood-damaged-car/" rel="noopener noreferrer"&gt;Consumer Reports&lt;/a&gt;, the average cost of flood-related electrical failures in the first two years of ownership is $3,000 to $8,000. And thats on top of whatever you paid for the car.&lt;/p&gt;

&lt;p&gt;Then theres mold. Water gets trapped in insulation, carpet padding, seat foam, and ventilation ducts. Even a thorough cleaning cant always get it all. If you or your family have allergies or respiratory issues, a flood car can literally make you sick.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 15-minute parking lot inspection
&lt;/h2&gt;

&lt;p&gt;You dont need to be a mechanic to catch most flood cars. Honestly about 80% of them have visible signs if you know where to look. Here's what to check before you even start the engine:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Smell the interior.&lt;/strong&gt; Open all the doors and stick your head in. Flood cars often have a musty or mildewy smell that air fresheners cant fully mask. If the car smells aggressively like air freshener, thats actually a red flag too. Why is someone trying so hard to cover a smell?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check the carpet and floor mats.&lt;/strong&gt; Pull back the floor mats and feel the carpet underneath. Is it damp? Does it feel newer than the rest of the interior? Mismatched carpet or brand new carpet in an older car is suspicious. Also check in the trunk under the spare tire compartment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Look at the seat mounting bolts.&lt;/strong&gt; Get down and look at the bolts that hold the seats to the floor. If they show rust or signs of being removed (scratched bolt heads, missing fasteners) the seats may have been pulled out for drying or cleaning after a flood.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inspect the headlights and taillights.&lt;/strong&gt; Look for water lines, condensation, or a foggy appearance inside the lens housings. Moisture trapped inside lights is a classic flood indicator. Its hard to fake and a lot of resellers miss it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check under the hood.&lt;/strong&gt; Look at the electrical connectors and wiring harnesses. Flood water leaves a residue. You might see a dried mud line on the firewall or engine block. Pull back some of the rubber boots on electrical connectors and look for green or white corrosion on the metal contacts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Examine the door jambs and hinges.&lt;/strong&gt; Open all four doors and look at the hinges and the area where the door meets the body. Flood water leaves silt and residue in these crevices that's hard to fully clean out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pull the dipsticks.&lt;/strong&gt; Check the oil and transmission fluid. If either looks milky or has a weird consistency, water has gotten into those systems. This is a major red flag and means the engine or transmission has internal water damage.&lt;/p&gt;

&lt;h2&gt;
  
  
  The VIN paper trail
&lt;/h2&gt;

&lt;p&gt;Beyond the physical inspection you should absolutely check the vehicle's history:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check NMVTIS.&lt;/strong&gt; The &lt;a href="https://www.vehiclehistory.gov/" rel="noopener noreferrer"&gt;National Motor Vehicle Title Information System&lt;/a&gt; is the best single database for catching flood-branded titles, even ones that have been washed through other states.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Look at where the car has been.&lt;/strong&gt; If a vehicle was registered in a flood-affected area during a major storm event and then quickly transferred to another state, thats a red flag. The timing matters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check insurance loss records.&lt;/strong&gt; If the car was declared a total loss by an insurance company due to flood damage, it should show up in insurance databases even if the title has been cleaned up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Search the VIN on Google.&lt;/strong&gt; Sometimes you'll find the VIN listed in salvage auction records, flood car databases, or even news articles about recovered vehicles.&lt;/p&gt;

&lt;h2&gt;
  
  
  States with the highest risk
&lt;/h2&gt;

&lt;p&gt;Flood cars tend to originate from predictable places. According to &lt;a href="https://www.nhtsa.gov/" rel="noopener noreferrer"&gt;NHTSA data&lt;/a&gt; the states with the most flood-damaged vehicles entering the resale market are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Texas (Houston flooding is basically annual)&lt;/li&gt;
&lt;li&gt;Florida (hurricanes)&lt;/li&gt;
&lt;li&gt;Louisiana (hurricanes and river flooding)&lt;/li&gt;
&lt;li&gt;North Carolina (Helene devastated the western part of the state)&lt;/li&gt;
&lt;li&gt;New York and New Jersey (remnants of tropical systems)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But remember these cars dont stay in those states. They get shipped to landlocked states where buyers are less likely to be suspicious of flood damage. A flood car from Florida could be sitting on a lot in Kansas or Colorado right now.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to walk away
&lt;/h2&gt;

&lt;p&gt;If you find any two of the following, just walk away. Dont try to negotiate a discount, dont think you can fix it, just move on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Musty or heavily masked smells&lt;/li&gt;
&lt;li&gt;Mismatched or new carpet/upholstery in an older car&lt;/li&gt;
&lt;li&gt;Visible corrosion on electrical connectors&lt;/li&gt;
&lt;li&gt;Moisture inside lights&lt;/li&gt;
&lt;li&gt;Mud or silt in hard to reach areas&lt;/li&gt;
&lt;li&gt;Recent title transfer from a flood-prone state&lt;/li&gt;
&lt;li&gt;Suspiciously low price for the year and mileage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Theres always another car. The $2,000 you save buying a "deal" will cost you $5,000+ in repairs when the electrical gremlins start showing up six months later.&lt;/p&gt;

&lt;p&gt;The 482,000 number from 2024 storms will join the existing pool of flood cars already circulating. Every hurricane season adds more. The best protection is your own eyes, a mechanic you trust, and checking the VIN through multiple sources before you hand over any money.&lt;/p&gt;

</description>
      <category>floodcars</category>
      <category>usedcars</category>
      <category>carinspection</category>
      <category>buyerprotection</category>
    </item>
    <item>
      <title>800,000 Title-Washed Cars Are on the Road Right Now</title>
      <dc:creator>GrimLabs</dc:creator>
      <pubDate>Fri, 01 May 2026 14:00:07 +0000</pubDate>
      <link>https://dev.to/robertatkinson3570/800000-title-washed-cars-are-on-the-road-right-now-3d88</link>
      <guid>https://dev.to/robertatkinson3570/800000-title-washed-cars-are-on-the-road-right-now-3d88</guid>
      <description>&lt;h1&gt;
  
  
  800,000 Title-Washed Cars Are on the Road Right Now
&lt;/h1&gt;

&lt;p&gt;A woman in Florida bought a 2020 Nissan Rogue from a private seller last year. Clean title, decent price, looked great. Six months later the transmission started slipping. She takes it to the dealer and they pull the VIN. Turns out the car was totaled in a flood in Louisiana, given a salvage title, then re-registered in a different state where it magically got a clean title.&lt;/p&gt;

&lt;p&gt;She paid $19,000 for a car that was worth maybe $7,000. And the title said everything was fine.&lt;/p&gt;

&lt;p&gt;This is called title washing and its one of the biggest scams in the used car market that nobody really talks about.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is title washing
&lt;/h2&gt;

&lt;p&gt;Title washing is when someone takes a car with a branded title (salvage, flood, rebuilt, junk) and re-registers it in a state with weaker title laws to get a clean title. The damage history effectively disappears from the paperwork.&lt;/p&gt;

&lt;p&gt;Its not a glitch in the system. Its a deliberate exploit of the fact that US states don't have uniform title branding standards. What counts as "salvage" in California might not trigger the same brand in another state. And when a car is transferred across state lines, the receiving state sometimes issues a new clean title without carrying over the brand from the original state.&lt;/p&gt;

&lt;p&gt;According to the &lt;a href="https://www.vehiclehistory.gov/" rel="noopener noreferrer"&gt;National Motor Vehicle Title Information System (NMVTIS)&lt;/a&gt;, an estimated 800,000 title-washed vehicles are on US roads at any given time. Thats not a small number. And its probably conservative because by definition, successfully washed titles are hard to detect.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it actually works
&lt;/h2&gt;

&lt;p&gt;Heres the typical process. Not gonna lie, its disturbingly simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;A car gets totaled in a flood, accident, or other event. The insurance company pays out and the title gets branded "salvage" or "flood."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Someone buys the car at a salvage auction for cheap. Maybe $3,000-5,000 for a car that would normally sell for $20,000.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;They do minimal repairs. Enough to make it look presentable and run.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;They register the car in a state that doesnt recognize or carry over the original title brand. States with weaker title disclosure laws have historically included places like Mississippi, New Jersey, and several others (though laws keep changing).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The new state issues a clean title. No mention of salvage, flood, or rebuilt anywhere on the document.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The car gets sold to an unsuspecting buyer at near market value. The seller pockets the difference.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The profit margins are huge. Buy a flood-damaged SUV for $4,000, spend $2,000 on cosmetic repairs, sell it for $18,000 with a "clean" title. Thats a $12,000 profit on one car. People who do this professionally flip dozens of vehicles per year.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why state laws make this possible
&lt;/h2&gt;

&lt;p&gt;The core problem is that theres no federal standard for title branding. The &lt;a href="https://www.vehiclehistory.gov/" rel="noopener noreferrer"&gt;NMVTIS&lt;/a&gt; was created to help solve this by providing a national database, but it has limitations. Not all states report consistently. Not all title brands are standardized. And checking NMVTIS isn't required in every state when issuing a new title.&lt;/p&gt;

&lt;p&gt;Some states have made progress. A handful now require salvage brands to carry over when a vehicle is re-registered. But enforcement is inconsistent and the patchwork of 50 different state systems creates plenty of gaps for bad actors to exploit.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://www.nicb.org/" rel="noopener noreferrer"&gt;National Insurance Crime Bureau&lt;/a&gt; calls title washing "one of the most prevalent and costly consumer fraud schemes in America." They process thousands of complaints annually and estimate consumers lose billions of dollars to this scam every year.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who's most at risk
&lt;/h2&gt;

&lt;p&gt;Private party sales are the highest risk scenario. When you buy from a dealer, there are at least some regulatory requirements for disclosure (though dealers can be complicit too). When you buy from a private seller on Facebook Marketplace or Craigslist, your basically on your own.&lt;/p&gt;

&lt;p&gt;First time car buyers get hit hard because they dont know what to look for. Same with people buying in unfamiliar states. If you're buying a car that was recently registered in a new state, that should immediately raise a flag.&lt;/p&gt;

&lt;p&gt;Cars that are priced "too good" for their year and mileage are another red flag. If a 2021 Toyota RAV4 with 30,000 miles is listed for $5,000 below market, there's usually a reason. Sometimes its a motivated seller. Sometimes its a washed title.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to protect yourself
&lt;/h2&gt;

&lt;p&gt;There's no single foolproof method but layering your checks helps a lot:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check NMVTIS directly.&lt;/strong&gt; Go to &lt;a href="https://www.vehiclehistory.gov/" rel="noopener noreferrer"&gt;vehiclehistory.gov&lt;/a&gt; and run the VIN through an approved provider. This is the closest thing to a national title database and it catches a lot of washed titles that state-level checks miss.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Look at the title itself.&lt;/strong&gt; Check where the car has been registered. If a car has bounced between multiple states in a short period, thats a red flag. Also look for the word "duplicate" on the title. Multiple duplicate titles can indicate someone is shopping for a clean one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check for flood indicators.&lt;/strong&gt; Even after a title wash the physical car often still shows signs of flood damage. Musty smell, water lines in the trunk or under seats, corroded electrical connectors, fogging in the headlights. We'll cover this more in a future post.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Run the VIN through multiple databases.&lt;/strong&gt; A single history report might miss what another catches. Cross reference between NMVTIS, NHTSA recalls, insurance loss databases, and state DMV records.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get a pre-purchase inspection.&lt;/strong&gt; A mechanic who knows what to look for can spot flood damage and collision repair that no database will show. This is still your best single defense.&lt;/p&gt;

&lt;h2&gt;
  
  
  Its not getting better
&lt;/h2&gt;

&lt;p&gt;After major weather events the volume of title-washed cars spikes. Hurricane season, flooding events in the midwest, any large scale disaster that totals thousands of vehicles. Those cars dont just disappear. They end up in salvage auctions, get cosmetically repaired, get washed through lenient states, and show up on your local marketplace listings 3-6 months later.&lt;/p&gt;

&lt;p&gt;With climate events increasing in frequency, the pipeline of damaged vehicles feeding into this system is growing. And until theres a real federal standard for title branding and mandatory NMVTIS checks at every state DMV, the loopholes will keep getting exploited.&lt;/p&gt;

&lt;p&gt;The 800,000 number is just what we can estimate. The real number is probably higher. And every one of those cars is a potential $10,000+ loss for some unsuspecting buyer who thought they were getting a good deal.&lt;/p&gt;

</description>
      <category>titlewashing</category>
      <category>usedcars</category>
      <category>consumerprotection</category>
      <category>autofraud</category>
    </item>
    <item>
      <title>My</title>
      <dc:creator>GrimLabs</dc:creator>
      <pubDate>Thu, 30 Apr 2026 14:00:03 +0000</pubDate>
      <link>https://dev.to/robertatkinson3570/my-25lf</link>
      <guid>https://dev.to/robertatkinson3570/my-25lf</guid>
      <description>&lt;h1&gt;
  
  
  My 'Clean Carfax' Car Had $6,000 in Hidden Damage
&lt;/h1&gt;

&lt;p&gt;My buddy Marcus bought a 2019 Toyota Camry last October. Clean Carfax, one owner, 42,000 miles. The seller even showed him the report right there on the lot. Everything looked perfect.&lt;/p&gt;

&lt;p&gt;Three weeks later he's at the body shop getting an estimate for a weird paint bubble on the rear quarter panel. The tech pulls him aside and says "whoever repaired this did an okay job but there's bondo under here, the whole panel was replaced." Estimate to fix it properly: $6,200.&lt;/p&gt;

&lt;p&gt;Marcus called the dealer. They pointed at the Carfax. Clean report, sold as-is, have a nice day.&lt;/p&gt;

&lt;h2&gt;
  
  
  How a "clean" Carfax can miss real damage
&lt;/h2&gt;

&lt;p&gt;This isnt some rare edge case. It happens way more than people think. Carfax compiles data from insurance companies, body shops, DMV records, and other sources. But heres the catch: if a repair is paid for out of pocket (no insurance claim), Carfax might never know about it.&lt;/p&gt;

&lt;p&gt;And not every body shop reports to Carfax. According to &lt;a href="https://www.consumerreports.org/cars/used-cars/vehicle-history-reports/" rel="noopener noreferrer"&gt;Consumer Reports&lt;/a&gt;, independent shops and smaller operations often don't participate in Carfax's reporting network. So if someone gets their car fixed at a local shop and pays cash, that repair is basically invisible.&lt;/p&gt;

&lt;p&gt;A 2024 study from the &lt;a href="https://www.nicb.org/" rel="noopener noreferrer"&gt;National Insurance Crime Bureau&lt;/a&gt; found that roughly 1 in 6 vehicles on the road has some form of undisclosed damage history. Thats millions of cars driving around with hidden problems that wont show up on any standard history report.&lt;/p&gt;

&lt;h2&gt;
  
  
  The ways damage hides
&lt;/h2&gt;

&lt;p&gt;Not gonna lie, the ways damage gets hidden are kind of creative. Here are the most common ones i've seen people run into:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cash repairs.&lt;/strong&gt; The owner pays a body shop directly, no insurance claim filed. Carfax has no record of it. This is probably the most common scenario.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Out of state repairs.&lt;/strong&gt; Different states share data at different rates. A car damaged in one state and repaired in another might slip through the cracks in reporting databases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cosmetic-only repairs.&lt;/strong&gt; If the damage was considered cosmetic and no insurance claim was filed, theres no paper trail. But "cosmetic" damage can hide structural issues underneath.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dealer reconditioning.&lt;/strong&gt; When a dealer buys a car at auction they often fix it up before reselling. These repairs are done in house and basically never get reported anywhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real numbers from 2025
&lt;/h2&gt;

&lt;p&gt;The problem is getting worse not better. The &lt;a href="https://www.nhtsa.gov/" rel="noopener noreferrer"&gt;NHTSA&lt;/a&gt; tracks vehicle complaints and the data from late 2024 and early 2025 shows an uptick in reports from buyers who discovered undisclosed damage post-purchase.&lt;/p&gt;

&lt;p&gt;Part of this is just the used car market being so hot. When demand is high, sellers have less incentive to disclose problems. And when prices are elevated buyers are already stretching their budgets which means they have less money for due diligence.&lt;/p&gt;

&lt;p&gt;Turns out the pandemic era supply crunch is still having effects. Cars that would have been totaled or heavily discounted in 2019 got repaired and resold at near-market prices in 2021-2023. Those cars are now being resold again as second or third owner vehicles and the repair history is buried.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to actually look for
&lt;/h2&gt;

&lt;p&gt;Since you cant rely on a history report alone, here's what I tell everyone now:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get a pre-purchase inspection.&lt;/strong&gt; This is the single most important thing you can do. A mechanic can spot paint work, frame damage, and repair evidence that no report will show you. Budget $100-200 for this. Its the best money you'll spend.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check panel gaps.&lt;/strong&gt; Open every door, the hood, and the trunk. Look at the gaps between panels. If they're uneven, something was replaced or the frame was bent. Factory panel gaps are consistent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Look for overspray.&lt;/strong&gt; Check under the hood edges, inside door jambs, and around weather stripping for paint overspray. If the car was repainted after a collision, overspray is almost impossible to fully eliminate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use a paint depth gauge.&lt;/strong&gt; You can buy one for $20-30 on Amazon. It measures the thickness of paint on each panel. Factory paint is usually consistent across the car. If one panel reads way thicker, it was repainted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Run the VIN through multiple sources.&lt;/strong&gt; Dont just use one history report. Check &lt;a href="https://www.nhtsa.gov/recalls" rel="noopener noreferrer"&gt;NHTSA recalls&lt;/a&gt;, your state DMV title database, and tools like OTDCheck that aggregate data from different sources. Cross referencing catches things that a single report misses.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Marcus did about it
&lt;/h2&gt;

&lt;p&gt;Marcus ended up eating the cost. The dealer technically didnt do anything illegal since the Carfax was clean and the sale was as-is. He talked to a lawyer who told him it would cost more to pursue the case than the repair was worth.&lt;/p&gt;

&lt;p&gt;He's a lot more careful now. His advice to anyone buying used: "A clean Carfax means Carfax doesnt know about it. That's not the same as nothing happened."&lt;/p&gt;

&lt;p&gt;Honestly he's right. Vehicle history reports are a useful tool. But treating them as a guarantee of condition is a mistake that costs people thousands of dollars every year. They're one piece of the puzzle, not the whole picture.&lt;/p&gt;

&lt;p&gt;The lesson here isn't that Carfax is useless. Its that you need more than just a report. You need eyes on the car, a mechanic under the car, and a healthy dose of skepticism when anything seems too good to be true.&lt;/p&gt;

</description>
      <category>usedcars</category>
      <category>carfax</category>
      <category>vehiclehistory</category>
      <category>carbuyingtips</category>
    </item>
    <item>
      <title>Carfax Costs $45 Per Report. I Was Shopping 12 Cars.</title>
      <dc:creator>GrimLabs</dc:creator>
      <pubDate>Wed, 29 Apr 2026 14:00:06 +0000</pubDate>
      <link>https://dev.to/robertatkinson3570/carfax-costs-45-per-report-i-was-shopping-12-cars-2pi1</link>
      <guid>https://dev.to/robertatkinson3570/carfax-costs-45-per-report-i-was-shopping-12-cars-2pi1</guid>
      <description>&lt;h1&gt;
  
  
  Carfax Costs $45 Per Report. I Was Shopping 12 Cars.
&lt;/h1&gt;

&lt;p&gt;Last spring I was looking for a used Honda CR-V. Nothing crazy, just something reliable for my commute and weekend trips. I had a budget of about $18,000 and I found maybe 15 listings that looked promising on Facebook Marketplace and Autotrader.&lt;/p&gt;

&lt;p&gt;So i pull up Carfax to start checking VINs. First one, $44.99. Okay fine. Second one, another $44.99. By the third report I'm doing math in my head and realizing this is going to cost me over $500 just to do basic homework on these cars.&lt;/p&gt;

&lt;p&gt;Thats absurd.&lt;/p&gt;

&lt;h2&gt;
  
  
  The per-report pricing trap
&lt;/h2&gt;

&lt;p&gt;Look, I get that vehicle history data costs money to compile. But the way Carfax structures their pricing feels designed to punish people who are actually doing their due diligence. You can buy a single report for $44.99, or a pack of three for $99.99, or "unlimited" reports for one month at $149.99.&lt;/p&gt;

&lt;p&gt;If your shopping for 10+ cars (which is totally normal when you're comparing options) even the unlimited plan feels steep. And honestly most people dont need unlimited reports forever. They need them for like two weeks while they're car shopping.&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://www.consumerreports.org/cars/used-cars/" rel="noopener noreferrer"&gt;Consumer Reports&lt;/a&gt;, the average used car buyer looks at 7-12 vehicles before making a decision. At $45 each thats $315 to $540 just in history reports. On an $18,000 car that's 2-3% of the purchase price spent before you even negotiate.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you actually get for $45
&lt;/h2&gt;

&lt;p&gt;Here's the thing. A Carfax report gives you some useful stuff. Ownership history, service records (if the shop reports to Carfax), accident reports, title information. But it has gaps. Big ones.&lt;/p&gt;

&lt;p&gt;Not every body shop reports to Carfax. Not every state shares the same data. And Carfax themselves will tell you in the fine print that a "clean" report doesnt guarantee the car is actually clean. We'll get into that in another post but its a real problem.&lt;/p&gt;

&lt;p&gt;So your paying $45 for a report that might be incomplete, and you need to buy multiple of them to comparison shop responsibly.&lt;/p&gt;

&lt;h2&gt;
  
  
  The math nobody does
&lt;/h2&gt;

&lt;p&gt;Let me break this down real quick. Say you're buying a $15,000 used car. Here's what responsible shopping actually costs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;VIN history reports (8 cars): $360&lt;/li&gt;
&lt;li&gt;Pre-purchase inspection: $100-200&lt;/li&gt;
&lt;li&gt;Your time driving around to see cars: priceless (but not free)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thats $460-560 in due diligence costs. For a lot of people that's a car payment. And because of that, most buyers skip the VIN check entirely or only run one on the car they've already decided to buy. Which defeats the entire purpose.&lt;/p&gt;

&lt;p&gt;A &lt;a href="https://www.iseecars.com/" rel="noopener noreferrer"&gt;2024 survey from iSeeCars&lt;/a&gt; found that only 38% of used car buyers run a vehicle history report before purchasing. The number one reason people skip it? Cost.&lt;/p&gt;

&lt;h2&gt;
  
  
  What free VIN checks actually show
&lt;/h2&gt;

&lt;p&gt;There are free options out there. The &lt;a href="https://www.nhtsa.gov/recalls" rel="noopener noreferrer"&gt;NHTSA VIN lookup tool&lt;/a&gt; will show you recalls and safety complaints. Some state DMV sites let you check basic title status. And I built &lt;a href="https://otdcheck.com/" rel="noopener noreferrer"&gt;OTDCheck&lt;/a&gt; specifically to bridge the gap between "completely free but useless" and "$45 per report." It cross-references multiple data sources without the per-report pricing trap.&lt;/p&gt;

&lt;p&gt;The free NHTSA tool is great for recalls but it wont tell you about accidents, odometer rollbacks, or title washing. Its a starting point, not the whole picture.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I actually did
&lt;/h2&gt;

&lt;p&gt;I ended up buying the Carfax unlimited plan, using it heavily for two weeks, then canceling. It felt like a waste but I couldn't justify buying individual reports. And turns out three of the twelve cars I was looking at had issues that would have been expensive surprises.&lt;/p&gt;

&lt;p&gt;One had a salvage title that the seller conveniently forgot to mention. Another had been in a rear end collision. The third had three previous owners in two years which is never a good sign.&lt;/p&gt;

&lt;p&gt;Was the $150 worth it? Honestly yeah, it probably saved me thousands. But it still feels wrong that basic vehicle transparency is locked behind a paywall this steep.&lt;/p&gt;

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

&lt;p&gt;The used car market in the US is massive. About 40 million used cars are sold every year according to &lt;a href="https://www.edmunds.com/industry/insights.html" rel="noopener noreferrer"&gt;Edmunds&lt;/a&gt;. And the information asymmetry between sellers and buyers is still enormous. Sellers know the car's history. Buyers have to pay to find out.&lt;/p&gt;

&lt;p&gt;Until VIN data becomes cheaper or free (and some companies are working on this), the best advice I can give is: never buy a used car without checking the VIN. Budget for it. Factor it into your car shopping costs the same way you'd factor in a pre-purchase inspection.&lt;/p&gt;

&lt;p&gt;But also, dont just rely on one source. Cross reference the VIN through NHTSA for recalls, check your state's title database if they have one, and get a mechanic to look at anything you're serious about.&lt;/p&gt;

&lt;p&gt;The $45 per report model is not sustainable for regular buyers. Something's gotta change. And honestly it feels like its already starting to.&lt;/p&gt;

</description>
      <category>carbuying</category>
      <category>vincheck</category>
      <category>usedcars</category>
      <category>consumertips</category>
    </item>
    <item>
      <title>Why We Open-Sourced Our Audit Logging Instead of Using Splunk</title>
      <dc:creator>GrimLabs</dc:creator>
      <pubDate>Tue, 28 Apr 2026 14:00:07 +0000</pubDate>
      <link>https://dev.to/robertatkinson3570/why-we-open-sourced-our-audit-logging-instead-of-using-splunk-13kp</link>
      <guid>https://dev.to/robertatkinson3570/why-we-open-sourced-our-audit-logging-instead-of-using-splunk-13kp</guid>
      <description>&lt;p&gt;The quote from Splunk came in at $96,000 per year. For audit logging.&lt;/p&gt;

&lt;p&gt;Our CTO read the email, looked at me and said "we can build this." And for once, he was right. Sort of.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Enterprise Pricing Problem
&lt;/h2&gt;

&lt;p&gt;If you've ever priced enterprise logging solutions, you know the drill. Everything is "contact sales." You fill out a form, wait two days for a call, sit through a demo you dont need, and then get a quote that makes your eyes water.&lt;/p&gt;

&lt;p&gt;Here's what we were quoted in early 2025:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Splunk Enterprise Security&lt;/strong&gt;: ~$96K/year (based on daily ingest volume)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IBM QRadar&lt;/strong&gt;: ~$70K/year&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Elastic Security&lt;/strong&gt; (managed): ~$45K/year&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sumo Logic&lt;/strong&gt;: ~$38K/year&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For context, our total ARR at the time was about $800K. Spending $96K (12% of revenue) on a logging tool was insane. Even the cheapest option at $38K was painful.&lt;/p&gt;

&lt;p&gt;And these tools are designed for security operations centers at large enterprises. We didn't need SIEM capabilities, threat detection, or security orchestration. We needed audit logging. Record who did what, make it searchable, make it immutable, let customers and auditors access it.&lt;/p&gt;

&lt;p&gt;Thats a much simpler problem than what Splunk solves. But the market has this weird gap where your options are either "$100K enterprise platforms with 90% features you dont need" or "build it yourself from scratch."&lt;/p&gt;

&lt;h2&gt;
  
  
  The Build Decision
&lt;/h2&gt;

&lt;p&gt;So we decided to build our own audit logging system. Not because we're heroes, but because the math was obvious. Two engineers for two months would cost us about $40K in fully loaded salary. Thats less than half the annual cost of Splunk, and we'd own it.&lt;/p&gt;

&lt;p&gt;Here's what we built:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Our open-source audit logging core&lt;/span&gt;
&lt;span class="c1"&gt;// https://github.com/[redacted] (we actually open-sourced this)&lt;/span&gt;

&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;AuditEvent&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;version&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;1.0&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;eventType&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;actor&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ActorInfo&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;target&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;TargetInfo&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;changes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ChangeRecord&lt;/span&gt;&lt;span class="p"&gt;[];&lt;/span&gt;
  &lt;span class="nl"&gt;context&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;EventContext&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;integrity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;IntegrityInfo&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// ISO 8601&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;ActorInfo&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;service&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;system&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;email&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;ipAddress&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;userAgent&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;TargetInfo&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;name&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;tenantId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;ChangeRecord&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;field&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;oldValue&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;unknown&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;newValue&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;unknown&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// The core API is intentionally simple&lt;/span&gt;
&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;AuditLogger&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="nx"&gt;store&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;AuditStore&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;

  &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="nf"&gt;record&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;Omit&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;AuditEvent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;id&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;version&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;integrity&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;generateULID&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// Time-sortable IDs&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;integrity&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;computeIntegrity&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;store&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;1.0&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="nx"&gt;integrity&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;AuditFilter&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;AuditEvent&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;store&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="nf"&gt;verify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;tenantId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;timeRange&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;TimeRange&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;VerificationResult&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;store&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;verifyIntegrity&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;tenantId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;timeRange&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The storage layer was pluggable. We started with PostgreSQL (good enough for our scale), but the interface allowed swapping in DynamoDB, ClickHouse, or whatever.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Took Longer Than Expected
&lt;/h2&gt;

&lt;p&gt;The core was simple. Two weeks for basic event capture, storage, and querying. But then the real work started.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tenant isolation&lt;/strong&gt; took another 2 weeks. Row-level security, middleware enforcement, query wrappers, and exhaustive testing. I've written about this separately but its non-trivial.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Integrity verification&lt;/strong&gt; took a week. Hash chains, daily verification jobs, alerting on chain breaks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The query API&lt;/strong&gt; took 2 weeks. Filtering by actor, by target, by event type, by time range, by tenant. Pagination that works efficiently on millions of rows. Full-text search on event metadata.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The customer-facing UI&lt;/strong&gt; took 3 weeks. An activity log that tenant admins can access, with filters and export. This is what enterprise customers actually care about. They want to show their own auditors that they can monitor user activity in your product.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Export and SIEM integration&lt;/strong&gt; took another week. CSV export, JSON streaming, webhook notifications for real-time event forwarding to customer SIEM systems.&lt;/p&gt;

&lt;p&gt;Total: about 11 weeks. More than the "two months" we estimated. Shocking, i know.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why We Open-Sourced It
&lt;/h2&gt;

&lt;p&gt;After building this, we realized other startups face the exact same problem. The gap between "DIY from scratch" and "$100K enterprise platform" is massive. So we open-sourced the core library.&lt;/p&gt;

&lt;p&gt;The reasoning was straightforward:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Community contributions&lt;/strong&gt;: Other teams find and fix edge cases we haven't hit yet&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trust&lt;/strong&gt;: Customers can inspect the code that handles their audit data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recruiting signal&lt;/strong&gt;: Engineers like working on open-source&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Business model still works&lt;/strong&gt;: The library is free, but hosting, management UI, and compliance features are paid&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is the same model that &lt;a href="https://posthog.com" rel="noopener noreferrer"&gt;PostHog&lt;/a&gt;, &lt;a href="https://supabase.com" rel="noopener noreferrer"&gt;Supabase&lt;/a&gt;, and dozens of other developer tools use. Open core, with a managed offering on top.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Real Cost Comparison
&lt;/h2&gt;

&lt;p&gt;After running this for 18 months, here's the honest cost comparison:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Splunk (what we would have paid)&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Year 1: $96,000&lt;/li&gt;
&lt;li&gt;Year 2: $96,000 (likely more with data growth)&lt;/li&gt;
&lt;li&gt;Total 2 years: ~$192,000&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Our open-source approach&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Initial build: ~$55,000 (11 weeks, 2 engineers)&lt;/li&gt;
&lt;li&gt;Infrastructure (PostgreSQL, message queue): ~$200/month = $4,800 for 2 years&lt;/li&gt;
&lt;li&gt;Ongoing maintenance: ~5 hours/month = ~$15,000 for 2 years&lt;/li&gt;
&lt;li&gt;Total 2 years: ~$75,000&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So we saved about $117K over two years. But that savings came with real tradeoffs.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Tradeoffs Nobody Mentions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;You become the on-call team for audit logging&lt;/strong&gt;. When the hash chain verification job fails at 2am, thats your problem. Splunk has a 24/7 NOC. You have your phone on vibrate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Schema evolution is your problem&lt;/strong&gt;. When you need to add fields to your audit events, you need to handle backward compatibility, migration, and reprocessing. An enterprise platform handles this for you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scale is your problem&lt;/strong&gt;. At 10 million events per month, PostgreSQL was fine. At 100 million, we needed to add partitioning, archival to S3, and query optimization. This was another 2 weeks of engineering.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Compliance certifications are your problem&lt;/strong&gt;. If a customer asks "is your audit logging system SOC 2 certified," pointing to your GitHub repo isnt a great answer. Enterprise platforms come with their own compliance certifications.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Middle Ground
&lt;/h2&gt;

&lt;p&gt;Tbh thats exactly why I built &lt;a href="https://auditkit.dev/" rel="noopener noreferrer"&gt;AuditKit&lt;/a&gt;. Its the middle ground between build-from-scratch and $100K enterprise platforms. Audit-logging-specific functionality at SaaS pricing, not enterprise pricing.&lt;/p&gt;

&lt;p&gt;The build vs buy decision comes down to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Build&lt;/strong&gt; if audit logging is a core differentiator for your product, you have engineering bandwidth, and you want full control&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Buy enterprise&lt;/strong&gt; if you're a large org with budget, existing SIEM infrastructure, and need vendor support SLAs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Buy SaaS-tier&lt;/strong&gt; if you need audit logging that works, dont want to maintain it, and dont want to spend $100K&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;According to a &lt;a href="https://cloudsecurityalliance.org/" rel="noopener noreferrer"&gt;2024 analysis by the Cloud Security Alliance&lt;/a&gt;, the average cost of implementing and maintaining custom security logging infrastructure exceeds the cost of a commercial solution within 18-24 months for most organizations. Our experience was an exception because we had the specific engineering talent in-house, but its not the norm.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Learned
&lt;/h2&gt;

&lt;p&gt;Building our own audit logging taught us a lot about the problem space. Things we would have never learned by just installing a vendor tool. We understand immutability, tenant isolation, integrity verification, and retention policies deeply now.&lt;/p&gt;

&lt;p&gt;But it also consumed engineering time that could have gone toward product features. Those 11 weeks of build plus ongoing maintenance hours add up.&lt;/p&gt;

&lt;p&gt;If your a startup evaluating this decision, my honest advice: build a simple version first to understand the problem, then decide if you want to maintain it long-term or migrate to a managed solution. The worst decision is to not have audit logging at all because youre stuck analyzing Splunk quotes.&lt;/p&gt;

&lt;p&gt;The gap between $0 and $96,000 shouldnt be that wide. And increasingly, it isn't. The market is catching up. But for a long time, we were stuck in that gap, and building our way out was the right call. For us.&lt;/p&gt;

&lt;p&gt;Your mileage may vary.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>auditlogging</category>
      <category>splunk</category>
      <category>saas</category>
    </item>
  </channel>
</rss>
