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

# How Sanilog works

> See how Sanilog connects reusable catalog choices, customer agreements, operational jobs, dispatch, charges, and invoices.

Sanilog keeps each business fact in the part of the product that owns it. This lets your team change future defaults without silently rewriting accepted customer terms, completed work, or issued financial history.

```mermaid theme={null}
%%{init: {"theme":"base","themeVariables":{"primaryColor":"#FFF4EC","primaryTextColor":"#171717","primaryBorderColor":"#E06106","lineColor":"#E06106","secondaryColor":"#FFFFFF","tertiaryColor":"#F5F5F5"}}}%%
flowchart LR
  catalog["Catalog"] --> agreement["Agreement"]
  agreement --> job["Job"]
  job --> dispatch["Dispatch"]
  job --> charge["Charge"]
  charge --> invoice["Invoice"]
```

## The main boundaries

* **Catalog** contains reusable suggestions such as equipment types, services, fees, and taxes.
* **Agreement** contains the terms accepted for a client and site.
* **Job** contains the real work the field team must perform.
* **Dispatch** contains the accepted assignment, stop order, and road route for an operating day.
* **Charge** contains an office-side billable fact created from the operation.
* **Invoice line** is frozen financial history after the invoice is issued.

Each boundary copies the values it needs. A later catalog change affects future choices, not existing agreements. A later agreement change does not rewrite completed jobs or issued invoices.

## Customer and operational places

A client belongs to the operator's customer list. A client site belongs to that customer and is where service happens. A tenant place belongs to the operator and may be a yard, dump, fuel stop, water fill, or office.
