Skip to main content

Foundational Philosophy

The Repurchase Engine is built upon three core design principles that ensure its robustness, auditability, and extensibility. These principles inform every architectural decision and distinguish this system from traditional financial modeling tools.

Separation of Concerns

Distinguish legal rules from business strategy

Immutability

Never overwrite; always append

Abstraction

High-level intents, not low-level functions

Principle 1: Separation of Concerns

Plan Rules vs. Operating Assumptions

The engine’s input framework makes a crucial distinction between two types of information:

PlanRules

The “Constitution”The stable, legal framework of the ESOP as defined in the official plan document.Characteristics:
  • Non-discretionary
  • Legally binding
  • Changes infrequently
  • Requires plan amendments
Examples:
  • Vesting schedule
  • Distribution timing
  • Diversification eligibility
  • Cash usage hierarchy

OperatingAssumptions

The “Annual Strategy”The discretionary, variable financial decisions made by the company on an annual basis.Characteristics:
  • Discretionary
  • Business decisions
  • Changes annually
  • No legal filing required
Examples:
  • Contribution amounts
  • Share valuations
  • Repurchase timing
  • Growth assumptions

Why This Matters

This separation directly reflects how plan sponsors and fiduciaries actually think and operate. The plan document is the unchanging foundation, while annual business decisions vary based on financial conditions.
To compare scenarios, you simply swap out OperatingAssumptions while keeping PlanRules constant. No need to duplicate or modify legal configurations.
By structurally separating legal requirements from business decisions, the system prevents common errors like accidentally modifying vesting schedules when you meant to change contribution levels.

Implementation Example

☝️ These rarely change

Principle 2: Immutability

The Database as a System of Record

The data layer is a temporal, stateful, and immutable system of record.
First Principle: A model’s credibility is tied to its reproducibility. We never overwrite data; every input scenario and simulation run is a permanent, versioned record.

The Problem with Traditional Approaches

Most financial models overwrite results:

The Immutable Approach

The Repurchase Engine appends, never overwrites:

Implementation

Every simulation creates permanent, timestamped records:
1

Input Versioning

2

Execution Logging

3

State Archival

Benefits

Perfect Reproducibility

Rerun any historical simulation and get identical results

Temporal Analysis

Compare how forecasts evolved over time

Audit Trail

Complete record of all modeling decisions

Debugging

Trace back to exact inputs that produced any output

Real-World Application


Principle 3: Abstraction

The Agent Toolkit as a User Intent Layer

The engine is designed for deep integration with AI agents like Kelso (or Claude, GPT, etc.).
First Principle: The tools exposed to an agent represent high-level user intents (e.g., “compare two scenarios”), not a direct mapping to internal engine functions.

The Problem with Tight Coupling

The Abstraction Layer

Agent Toolkit Design

The toolkit exposes user-facing intents, not technical functions:
☝️ Stable, semantic, user-oriented

Benefits

The agent’s core conversational and analytical abilities remain intact even if the engine’s internal logic is completely overhauled.
Agent tools map directly to how users think and speak:
Agent developers don’t need deep knowledge of ESOP mechanics or engine internals. They work with high-level concepts that match user needs.

Real-World Example


How These Principles Work Together

The three principles create a powerful, resilient system:

The Compound Effect

  • Separation makes configuration intuitive
  • Immutability makes results reproducible
  • Abstraction makes integration stable
→ Result: A system that’s both powerful and maintainable

Next Steps

Simulation Core

See how these principles are implemented in processing

Data Layer

Explore the immutable database structure