Skip to content

Types of bidding

Space: VM Last Updated: 2023-04-27T09:01:20.536Z Author: Rachel Goode (Unlicensed) Version: 3 URL: https://vollers.atlassian.net/wiki/spaces/VM/pages/2001764353/Types+of+bidding


An overview of how the different types of bidding work.

Note that different clients will have variations on these.

Online / Timed Auctions

An online/timed auction uses incremental bidding.

A user enters a bid amount on the bidding form, they are shown a confirmation message and their bid is entered. If the amount they enter is too low (lower than opening bid or current bid amount) they'll be shown a message saying so.

If two people bid the same amount at the same time, then we use the database to decide who the winner is. The bid that has the lower ID is the winning bid (as it was written to the database first). This doesn't happen very often, but it is possible (particularly when you have a server under heavy load). Apart from tied bids the highest bidder is the winner, unless their bid is below reserve. If their bid is below reserve, then they will (normally) be shown a message saying they are below reserve.

Auto bidding

In other systems this is known as "proxy" or "max" bidding.

A user enters the maximum amount they are willing to bid and the system will make incremental bids on their behalf whenever other users bid. It will also trigger incremental bids immediately if the user is not currently the highest bidder or if the bidding is currently below reserve (though that can be configured differently for some clients).

This is how it works:

  • John auto bids 20 (which puts in an incremental bid of 1)
  • Alan does an incremental bid of 10
  • John's auto bid is triggered and inserts an incremental bid of 11 afterAlan's bid
  • John is still the highest bidder (with a bid of 11)

For tie-breaking situations the auto bid always wins. e.g.:

  • John auto bids 20 (which puts in an incremental bid of 1)
  • Alan does an incremental bid of 20
  • John's auto bid is triggered and inserts an incremental bid of 20 beforeAlan's bid
  • John is still the highest bidder (with a bid of 20)

If another user enters an auto bid when one is already active, then this triggers the other auto bid. You then end up with only one active auto bid at a time.

  • John auto bids 20 (which puts in an incremental bid of 1)
  • Alan does an auto bid of 10, this tries to insert a bid of 10 (as an auto bid is already active)
  • John's auto bid is triggered and inserts an incremental bid of 11 afterAlan's bid
  • John is still the highest bidder (with a bid of 11)

Or it can play out like this:

  • John auto bids 20 (which puts in an incremental bid of 1)
  • Alan does an auto bid of 30
  • John's auto bid is triggered and inserts an incremental bid of 20 (the maximum it can)
  • Alan's auto bid inserts an incremental bid of 21 (just enough to beat the other bid)
  • Alan is now the highest bidder (with a bid of 21)

Buy now bids

A "buy now" is just means a user can "buy" an item. A buy now option may be available alongside incremental bidding. If a user "buys" the item, then all other forms of bidding are stopped. (N.b. ERIC and CNC use the "multi buy now" stuff, so it's a little different for them).In case two users "buy" at exactly the same time, then only the first "buy now bid" counts.

Sealed bids

Sealed bids are kind of like "offers" (or sometimes a "blind bid"). They get entered into the system, but no winner is formally chosen by the system. Instead the admin (or lot owner) will decide who actually wins. Also there's no cross-validation of the bids. If one bidder bids 100, then another bidder can bid 10 without being told their bid is too low.This form of bidding can vary a bit between clients. Some of buttons/forms etc to be able to actually accept the bids (and trigger emails etc) in the site. Whereas some have to deal with sealed bids totally manually. Some site treat sealed bids as "pledges" where very user will donate the money they entered in the sealed bid.

Preview bidding

This is the same as "normal" bidding, but when the bidding ends the highest bidder is not the winner. Instead they are just the "highest bidder". They will get a different email from the system. Preview bidding is normally used by charities to do some online bidding prior to a real "event" (say at a hotel), where the final live/in room auction will be held. They use the bids from the preview bidding to set the opening prices of the lots in the real auction.

Live bidding

This is a form of incremental bidding (available in Rental). It's used when a client wants to combine a real "in-room" auction (with an auctioneer with a "gavel" etc) with online bidding. As an "in-room" auction only deals with a single lot at a time, we make the app do the same. We provide the auctioneer with a "console" where they can control which lot is currently being bid on (with next/previous buttons to change lots). They are also responsible for when bidding on the lot actually finishes.As we may have people "in the room" and online bidding at the same time the system is setup so that online bids have to be confirmed before they count. An online bidder will see that their bid is "pending" until the auctioneer (or a clerk) accepts the bid. It's a bit like a single proxy telephone bidder.Normally live auctions are run using NettypushNettypush and RedisRedis to provide near realtime bidding updates.

Combination bidding

Combination bidding is used in Cottrills. It's a way to have bidding on groups of lots, as well as bidding on those lots individually. It's so you can "play both sides" during bidding a bit. For example you might auction off a complete tool set, but also let people bid on the individual tools in that tool set. Obviously you can't sell the same tool twice, so either the bidder on the whole tool set wins or you sell each tool separately. Here are a few of the methods used in Cottrills:

isCombination() Whether this lot is a "combination lot" (one that's made up of smaller lots).
isCombinationFinished() Whether every lot involved in the combination has finished (as generally we extend overtime bidding for overtime across the whole combination).
isCombinationWinning() This tests if the combination that is this lot is winning. If this lot is not actually a combination it returns "true" (as it's a combination of just 1 lot - itself).
isCombined() Returns true is this lot is an "individual lot" that is part of a larger combination.
isLosingCombination(User) Returns true if the user is the highest bidder, but is not winning (as the combination is not winning).
isHighestSideOfCombination() Returns true if this lot is on the highest side of the combination. Only one "side" of the combination can be winning - either the "combination lot" itself or the "individual lots". So if this lot is an individual lot, then this returns true if the individual lots are winning (add up to more than the bids on the combination).

Helmsman bidding

Helmsman bidding is used in our private coffee auctions.

Essentially there is a single end date/count down for every lot in a helmsman auction, so all lots will end at precisely the same time. Also helmsman auctions typically don't immediately have an end date set.They also display very differently, with every lot in the auction displayed on one page in a fairly tabular layout.

Normally they work like this:

  • Bidding opens on all lots at a predefined timeAdmin see how bidding is going (no count down yet)Once admin is happy bidding has start ok (typically that every lot has had at least one bid) they "start the count down"
  • Count down is normally relatively short (say 3 minutes) and is the same for all lotsEvery time a bid is made on a lot, the countdown is reset back to the original amount (e.g. 3 minutes) for every lot
  • Once the countdown finishes the lots goes into a "pending" mode - bidding has paused and the admin can review thingsIf they aren't happy the can restart the countdown (say if the site went down, or loads of bidders lost network access)
  • IF they are happy then they formally end bidding and winner emails get sent etcAdditionally it's possible for the admin to pause the countdown at any stage.
  • To do this we remove the original end date and store how many seconds was left on the clock.
  • Then when they un-pause we can use the seconds left to figure out the new end date.
  • Each lot also defers the end date/countdown to its auction (whereas normally each lot has its own end date).
  • That way we can be sure that there is only a single countdown/end date for all lots in the auction.

Podium bidding

Podium bidding works like a normal forward auction. This means bidding for an item starts with an opening price determined by the auctioneer and bids are placed by bidders in increments above the previous bid. At the end of the auction, the highest bid wins. However, in a podium auction, there can be multiple winners.

Bidding is made in one of two ways. You can either bid at the next increment by pressing the "Bid" button and then pressing "Confirm" to confirm your placed bid or you can bid at a higher amount than the current increment and enter your own bid amount in to the box by the "Bid" button, then press "Bid" and confirm your bid by pressing "Confirm". Your bid will then be placed in the system and all bidders will see the change in current bid on the webpage.

All new bids and autobids need to be higher than the 1st placed bid on the podium.

There is a setting that allows you to add additional bids to a lot. If this is enabled, and a bidder has a place on the podium already, the bidder will be prompted to let us know if you would like to keep previous or duplicate bids when placing a second or third bid on the same lot. (This typically occurs when one person is bidding for multiple golfers from his or her company.)

There are 2 options for the way autobidding on the podium has 2 options:

Podium: The autobid triggers a bid if the bidder is knocked off the podium by another bidder.

Normal: The autobid triggers a bid regardless of whether the bidder is on the podium or not.

Commodity auction

The commodity auction was an experimental auction type that is a cross between a live auction and a helmsman:

  • one lot runs at a time,
  • there is a countdown clock that starts when that lot becomes the current lot and each time a bid is placed on the current lot, the countdown clock will reset to 2 mins.

The lot will display:

  • Time left, increment, current bid, winning/losing status.

When the countdown clock reaches zero, bidding on that lot is finished.

The countdown duration is a configurable time on the auction

Bids can be placed on future lots - bidding will be open from the start of the auction but the clock will only run on the current lot.

It is configurable on the auction whether admin needs to accept online bids.

When bidding on a lot is finished and you move to the next lot.

  1. Countdown says "Bidding Ended" once it has hit zero (or one second after, so people can see it hit zero)
  2. If the countdown reaches 0, bidders shouldn’t be able to bid on the current live lot (should have server side validation at least). If going ‘Previous Lot’, countdown should start again and bidders can bid on the current live lot.