Spoiler warning! This article contains detailed information about the background mechanics of the game. |
This page describes the mechanics the game uses to set the customers' prices - namely, the "pin" price, and the maximum price a customer will accept without haggling. The mechanics have been reverse-engineered directly from the game code (version 1.108), and thus should be 100% accurate.
For pre-made charts using this data refer to the Pricing Strategies page.
Market Price[]
The Market Price (a term we'll use on this page) is the Base Price of an item, adjusted with regards to its current price status (High Price, Low Price or Price Crash).
Item Status | Market Price |
---|---|
Normal | Exactly 100% of Base Price |
High Price | Random, between 200%-250% of Base Price |
Low Price | Random, between 45%- 55% of Base Price |
Price Crash | Random, between 35%- 45% of Base Price |
For High/Low/Crashed-price items, the Market Price is rerolled on every transaction!
Pin Price[]
Each transaction has a "Pin" price - a price supposedly corresponding to what the customer expects for that item. The game awards a "Pin Bonus" (+30 MXP) for naming a price within 0.5% of the Pin Price (in either direction), and a "Near Pin" (+15 MXP) for naming a price within 5% of the Pin Price.
The Pin Price does not depend on the customer. However, it is based on the Market Price (see above).
Operation | Pin Price |
---|---|
Sell | Random, between 100%-110% of Market Price |
Buy | Random, between 65%- 75% of Market Price |
Price Limit[]
If Recette names a price too high/low, the customer will refuse to haggle and leave outright.
Operation | Price Limit |
---|---|
Sell | Random, between 200%-300% of Market Price |
Buy | Random, between 20%- 30% of Market Price |
Best Price[]
If you name a price on the first attempt over (under if buying) a certain threshold, a customer haggle or leave. Buying or selling items at this "Best Price" threshold should result in optimal income without breaking Just Bonus chains.
The Best Price depends on the customer. Each customer has a price factor (a % which determines how high/low they are willing to go without haggling), and a randomness factor (a % which indicates how much their limit can vary from transaction to transaction in either direction).
Name | Price Factor | Randomness | Purchase Factor |
---|---|---|---|
Tear | 130% | ±2% | 35% |
Louie | 120% | ±2% | 45% |
Charme | 125% | ±2% | 40% |
Caillou | 135% | ±3% | 30% |
Tielle | 135% | ±3% | 30% |
Elan | 135% | ±3% | 30% |
Nagi | 135% | ±3% | 30% |
Griff | 135% | ±3% | 30% |
Arma | 135% | ±3% | 30% |
Guildmaster | 130% | ±1% | 35% |
Woman | 120% | ±3% | 45% |
Man | 130% | ±4% | 35% |
Old Man | 125% | ±8% | 40% |
Girl | 115% | ±1% | 50% |
Euria | N/A | ±5% | 200% |
Alouette | 150% | ±1% | 15% |
Prime | 105% | ±2% | 60% |
For sales, the Best Price is the Market Price multiplied by the customer's Price Factor (± Randomness Factor).
For purchases (Recette purchasing items from customers), the formula (165% − Factor) is used instead of the Factor.
Haggling[]
If the customer is not satisfied with Recette's offer (when the offer is over the Best Price threshold), they will haggle. When this happens, their Best Price may change as well - thus, repeating the same offer may succeed a second or third time. The number of times a character will haggle with you depends on your reputation with them. Reputation is earned through completed sales and Near Pin / Pin bonuses, and lost through haggling (both successful and unsuccessful) - see Customer Reputation for more information.
Haggling behavior varies from character to character. Each character has two haggle factors (how much does their Best Price change on the first and second haggle attempt). Any haggling attempts beyond the second use the first attempt factor.
The table below displays how much haggling affects the Best Price for every character. The value indicates how many % of the Market Price is added (or removed, when buying) to the Best Price on the corresponding haggle attempt.
Character | First | Second |
---|---|---|
Tear | 0% | 0% |
Louie | 5% | 5% |
Charme | 5% | 5% |
Caillou | 0% | 0% |
Tielle | 0% | 0% |
Elan | 0% | 0% |
Nagi | 0% | 0% |
Griff | 0% | 0% |
Arma | 0% | 0% |
Guildmaster | 3% | 3% |
Woman | 10% | 10% |
Man | 5% | 0% |
Old Man | 5% | 0% |
Girl | 0% | 10% |
Euria | 0% | 50% |
Alouette | 20% | 20% |
Prime | 0% | 10% |
Example[]
Let's calculate the possible range of values for the following transaction:
- Item Base Price: 3000 Pix
- Item Price Status: High Price
- Customer: Man
Results:
- Market Price: 3000 Pix × 200%-250% = 6000-7500 Pix
- Sell Pin Price: 200%-250% × 100%-110% = 200%-275% (6000-8250 Pix)
- Sell Price Limit: 200%-250% × 200%-300% = 400%-750% (12000-22500 Pix)
- Customer Sell Price Factor: 130% ±4% = 126%-134%
- Sell Best Price: 200%-250% × 126%-134% = 252%-335% (7560-10050 Pix)
- Buy Pin Price: 200%-250% × 65%-75% = 130%-187.5% (3900-5625 Pix)
- Buy Price Limit: 200%-250% × 20%-30% = 40%-75% (1200-2250 Pix)
- Customer Buy Price Factor: 165% − 126%-134% = 31%-39%
- Buy Best Price: 200%-250% × 31%-39% = 62%-97.5% (1860-2925 Pix)
Notes[]
- Tear is present as a customer character in the game data. It's assumed that her corresponding data is used in the tutorial scenes.
- Rounding errors may cause actual values to be 1 Pix lower than expected.
- Euria is hard-coded with a 5x multiplier. Her internal stats show a 125% price factor, ±1% variance, 40% purchase factor, and 10% drop on the second haggle.
- Relevant memory addresses (for version 1.108, Steam):
- 0730B57C - Market Price
- 0730B574 - Best Price
- 0730B588 - Pin Price
- 00460161 - Function which calculates sales prices
- 004603CF - Function which calculates purchase prices