In the last patch, I made some changes. here is the current system:
Each customer arrives at the showroom and looks at the cars on sale. That customer has a fixed ‘budget’ and have some leeway around that budget, from 20% less to 20% more (so a $20,000 customer checks out cars between $16,000 and $24,000, regardless what price range this puts them into). Every customer looks at every car and calculates a ‘score’ for that car…
They take into account the value of the car by comparing its estimated fair value to its actual value (basically they look at the markup you set). They then get a value from 1% to 100% saying how likely they are to buy that car. if the car is a different body style to the one they had originally wanted, they penalize that score.
The top five cars by this rating system are then looked at, and the player effectively rolls a percentage dice against each one to see if they will buy them. They may buy one of them, or not buy at all. The other four cars (or maybe all five) get given feedback by this customer on why they did not get bought, with the options being:
- Wrong Body Style (assuming thats true)
- Too Expensive ( failed the random die-roll)
- Missing features (The car was missing some essential features, and this had a 5% or more impact on the likelihood to buy.
- Bought an identical model (The customer bought exactly this model, but there was just more than one).
So like I say…thats the current system. It appears to have problems.
The most obvious problem is the customer budget. A top budget makes sense, but a bottom budget kind of does-not. If the customer wants a top feature sports car, and has a set budget of $200,000 and we are trying desperately to sell them for $100k, they should snap that up!. This is clearly nonsensical. What the customer should have is reasonable feature requests, not the minimum budget (which was being used as a proxy for this). The problem is, I need to do this sensibly, accurately, correctly and also fast, because some people have a LOT of cars on sale and a lot of customers. So how can I do this…
Right now I think the first thing I’m going to try is to remove the lower budget limit, but instead represent it as a quantity of features, that at a reasonable price, would be equivalent to that value. In other words, if My budget range is $80-120,000, I actually cap my buying at $120,000, but will consider any car that has $80,000-worth of features, regardless how far below $120k that car is priced.