How many sold in the last how many hours?

Before today, I'd never heard of pawramp.com. I ended up there because I was considering buying one of their products as gift. When I ended up on a product page, I couldn't help but notice the blinking 🔥and the impressive stat that "65 sold in last 11 hours".

Hmmm. Why would they say last 11 hours. It was roughly 11am, I think, when I visited this site so maybe it's some kind of count since midnight? That's a stretch but plausible. Or this is one of those BS counters that's a pretty well worn dark pattern (booking.com is the main offender I'm aware of) to nudge people to buy something. I hit refresh a couple of times and got completely different numbers each time. Try it yourself.

So these are 💩numbers, made up to try to conjure some kind of peer pressure effect and convince people that yep, they need a ramp for paws.

Looking closer, the number sold in the last whatever hours do have their own placeholders in the page:

I started looking at scripts loaded via dev tools. pawramp.js seemed like an obvious candidate so I took a look at that.

The first function in that file is flashSoldBar, and, it turns out, that's what's populating the sold count and number of hours. Here's the function:

function flashSoldBar(prefix) {  
  //if (!nathan_settings.flash_sold) return;
  var minQty = nathan_settings.flash_sold_min;
  var maxQty = nathan_settings.flash_sold_max;
  var minTime = nathan_settings.flash_min_time;
  var maxTime = nathan_settings.flash_max_time;
  minQty = Math.ceil(minQty);
  maxQty = Math.floor(maxQty);
  minTime = Math.ceil(minTime);
  maxTime = Math.floor(maxTime);

  var qty = Math.floor(Math.random() * (maxQty - minQty + 1)) + minQty;
  qty = parseInt(qty);
  if (qty <= minQty) {
    qty = minQty;
  }
  if (qty > maxQty) {
    qty = maxQty;
  }
  jQuery(".nt_flash_total_day" + prefix).html(qty);

  var time = Math.floor(Math.random() * (maxTime - minTime + 1)) + minTime;
  time = parseInt(time);
  if (time <= minTime) {
    time = minTime;
  }
  if (time > maxTime) {
    time = maxTime;
  }
  jQuery(".nt_flash_in_hour" + prefix).html(time);
}

and the settings object:

{
  "flash_sold": true,
  "flash_sold_min": 13,
  "flash_sold_max": 81,
  "flash_min_time": 6,
  "flash_max_time": 24
}

From that we can see that the page is going to say anywhere from 13 - 81 items were sold in the last 6 - 24 hours. The fun thing is that the function is defined globally so we can call it from the dev tools console. If we call it from a timer, it'll repeatedly update the counts, take a look:

I like supporting small companies like this but I wish they'd quit with this bullshit. I was pretty sure I was going to buy their product without knowing how many people also supposedly bought it in the last 15 hours. How many of those 160 reviews are fake too?

What's that? Oh, yes, I did buy a pawramp.