> ## Documentation Index
> Fetch the complete documentation index at: https://village-docs.villagelabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuration Overview

> Understanding the core configuration objects of the Repurchase Engine.

## The Configuration Philosophy

The Repurchase Engine's configuration is designed around a core philosophy: the separation of stable, legal rules from variable, strategic assumptions. This separation makes your simulations more accurate, easier to manage, and less prone to error.

<CardGroup cols={2}>
  <Card title="PlanRules" icon="scale-balanced" href="/configuration/plan-rules-guide">
    The legal framework of your ESOP, based on your plan document. Changes rarely.
  </Card>

  <Card title="OperatingAssumptions" icon="chart-mixed" href="/configuration/operating-assumptions-guide">
    Your annual strategic and financial decisions. Changes frequently.
  </Card>
</CardGroup>

## The Three Core Configuration Objects

Every simulation in the Repurchase Engine is driven by three main configuration objects:

1. **`PlanRules`**: This object defines the legal and administrative rules of your ESOP. Think of it as a digital version of your plan document. It includes things like your vesting schedule, distribution policies, and eligibility requirements. Once set up, `PlanRules` rarely change.

2. **`OperatingAssumptions`**: This object defines the financial and strategic assumptions for a given year. It includes your contribution strategy, share valuation growth, and repurchase strategy. You will likely create many different `OperatingAssumptions` to model different "what-if" scenarios.

3. **`InitialState`**: This object is a snapshot of your ESOP at the beginning of the simulation. It includes your employee census data, the current state of your trust's cash and share accounts, and the details of any outstanding ESOP loans.

## How They Work Together

Think of it like this:

* `PlanRules` are the **rules of the game**.
* `OperatingAssumptions` is your **strategy for the year**.
* `InitialState` is the **state of the board at the start of the game**.

You run a simulation by providing the engine with these three objects. The engine then projects the future of your ESOP, year by year, by applying your annual `OperatingAssumptions` within the constraints of your `PlanRules`, starting from your `InitialState`.

```mermaid theme={null}
graph TD
    A[InitialState] --> C{Simulation Engine};
    B[PlanRules] --> C;
    D[OperatingAssumptions] --> C;
    C --> E[Projected Results];
```

## Getting Started

Ready to dive in? Here's our recommended path:

1. Start with the **[PlanRules Guide](/configuration/plan-rules-guide)** to model your plan document.
2. Next, read the **[OperatingAssumptions Guide](/configuration/operating-assumptions-guide)** to learn how to model your financial strategies.
3. Finally, use the **[InitialState Guide](/configuration/initial-state-guide)** to prepare your starting census and financial data.
