calculate_demand_multiplier

Function calculate_demand_multiplier 

Source
pub fn calculate_demand_multiplier(demand: u64, supply: u64) -> f64
Expand 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);