pub fn calculate_demand_multiplier(demand: u64, supply: u64) -> f64Expand description
Calculate reward multiplier based on demand/supply ratio.
Returns a multiplier between 1.0x and 3.0x based on the demand/supply ratio.
- Low demand (ratio ≤ 0.5): 1.0x multiplier
- High demand (ratio ≥ 2.0): 3.0x multiplier
- Medium demand: Linear interpolation between 1.0x and 3.0x
§Examples
use chie_shared::calculate_demand_multiplier;
// Low demand: plenty of supply
let multiplier = calculate_demand_multiplier(50, 100);
assert_eq!(multiplier, 1.0);
// High demand: scarce supply
let multiplier = calculate_demand_multiplier(200, 100);
assert_eq!(multiplier, 3.0);
// Medium demand: 1:1 ratio
let multiplier = calculate_demand_multiplier(100, 100);
assert!((multiplier - 1.666).abs() < 0.01);
// No supply: maximum multiplier
let multiplier = calculate_demand_multiplier(100, 0);
assert_eq!(multiplier, 3.0);