**all numbers in this analysis are simulated**

In this report, we use Agent-Based Modeling (ABM) to examine the performance of a Liquidity Bootstrapping Pool (LBP) under different simulated conditions. Using the Balancer V2 LBP spreadsheet as a starting point, we used the ABM to systematically sweep the parameter space of values we were interested in. The parameters used by the ABM should be roughly comparable to the spreadsheet; one can be used to test the other. Since the ABM includes stochastic elements, it does not behave the same each time it is run; consequently, each parameter configuration is simulated multiple times. The ABM does not assume a constant daily token flow rate; instead, this value is an outcome of the model. The ABM dynamics permit unexpected - or even impossible - states to emerge; consider “sanity-checking” parameter values against the Balancer spreadsheet.

The following parameter-values were examined:

- tokens in pool
- 600_000
- 800_000

- usdc in pool
- 100_000
- 300_000
- 400_000
- 500_000
- 1_000_000
- 2_000_000

- weight token start
- 0.98
- 0.9
- 0.8
- 0.7

- weight token end
- 0.02
- 0.1
- 0.2
- 0.3
- 0.5

- economy size
- 2_000_000
- 5_000_000
- 10_000_000

This ABM is a replica of a Balancer-style LBP with the following parameters:

- starting balances (token and usd)
- starting weights (token and usd)
- ending weights (token and usd)

The LBP is implemented in Python and was built on top of BalancerV2cad. Our LBP model replicates several key features of a real LBP, including a gradual weight update procedure.

This ABM is strongly influenced by the “Balancer LBP Simulator” spreadsheet:

- https://docs.balancer.fi/v/v1/guides/smart-pool-templates-gui/liquidity-bootstrapping-pool
- https://docs.google.com/spreadsheets/d/125MgAqv0f81Qp6y9VZHAcwMkVhvdcNKA
- https://vimeo.com/466075719

Parameters should be roughly interchangeable between the ABM and the spreadsheet.

This ABM does not include a Token Flow parameter, which is a notable difference from the spreadsheet. Instead, Token Flow is an outcome of token swaps, which are executed by Agents. Buying/selling is itself a function of lot size and agent wealth. Wealth is pareto-distributed, which is itself scaled to ensure the agent economy sums to the target wealth parameter. Therefore, instead of estimating token flow, we characterize LBP participation in terms of:

- number of tokens bought/sold per lot
- number of agents
- agent wealth: total USD held by all agents

These parameters can be estimated from historical LGE/LBP studies.

The basic approach to this simulation study has been:

- identified key parameters with a meaningful effect on LBP performance
- determined interesting values for these parameters
- identified model outcomes of interest
- ran ABM with all possible parameter combinations
- ran combinations repeatedly with different randomness each time
- collected results data from all simulations
- bundled data as a CSV file for R

Consider these visualizations as an executive summary. Altogether, there are several hundred parameter combinations, each of which is run repeatedly. The following visualizations overlay all of these results onto a single graphic, which is more information than can reasonably fit. Even so, trends can be identified - and we can examine specific regions of the results at a later time.

Plots have the following dimensions:

- Starting SVY; indicated by color
- Starting USD; indicated by line type (solid/dashed)
- Starting Weight of SVY (top number above each plot; 0.7 or 0.98)
- Ending Weight of SVY (bottom number above each plot; 0.3 or 0.02)

Weights are normalized in the ABM and range from 0.02 to 0.98, which is a little different from the spreadsheet. The LBP is parameterized by starting and ending weights for the Token - and the weight for USD is automatically calculated as \(1.0 - Token Weight\). So, when the top-left plot has 0.7/0.02 above it, this means the pool starts as 0.7 SVY/0.3 USDC and ends as 0.02 SVY/0.98 USDC.