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

# Accounting = fn(events)

> 会計処理をイベントの純粋関数として定義するlimの設計思想。

# 会計を関数にする

limの核心的な設計思想は **Accounting = fn(events)** です。会計処理をイベントの純粋関数として定義することで、リアルタイム・再現可能・テスト可能な会計システムを実現します。

## 従来の会計ソフトとの違い

従来の会計ソフト（freee、MFなど）は「画面に入力する」ことが前提です。人間がUIを操作し、勘定科目を選び、金額を入力します。

limは違います:

| 従来の会計ソフト     | lim            |
| ------------ | -------------- |
| 人間が画面に入力     | イベントが自動で流入     |
| バッチ処理（月次・年次） | リアルタイム処理       |
| 仕訳 = 手入力データ  | 仕訳 = fn(event) |
| 状態を直接変更      | イベントから状態を導出    |
| AIはオプション     | AIが標準          |

## 純粋関数としての会計

```
journal_entry = judgment_engine(event, rules, history)
```

同じイベント、同じルール、同じ履歴を入力すれば、常に同じ仕訳が出力されます。この性質により:

* **再現性**: いつでも過去のイベントを再処理できる
* **テスト可能性**: 仕訳生成ロジックをユニットテストできる
* **監査可能性**: 仕訳の根拠（どのイベントから生成されたか）を常に追跡できる

## シナリオ分析

純粋関数の最大の利点はシナリオ分析です。仮想イベントを入力すれば、財務への影響を即座にシミュレーションできます:

```bash theme={null}
# 「エンジニア2人採用したら？」
lim scenario create --name "hire-2-engineers"
lim scenario add-event "月給500000円の従業員を2人追加"
lim scenario diff
```

```
Scenario: hire-2-engineers vs. current
────────────────────────────────────────
                    Current     Scenario    Diff
Monthly burn        ¥360,000    ¥1,360,000  +¥1,000,000
Runway              7.1 mo      2.6 mo      -4.5 mo
Annual payroll cost ¥4.3M       ¥16.3M      +¥12.0M
```

## イベントの種類

limが処理するイベントの主な種類です:

| イベント  | ソース      | 例               |
| ----- | -------- | --------------- |
| 銀行取引  | Bank API | 入出金の検知          |
| 請求書受領 | Webhook  | 請求書PDFの受信       |
| 経費申請  | MCP Tool | AI Agentからの経費登録 |
| 売上計上  | API      | 販売システムからの通知     |
| 給与確定  | 内部       | 給与計算の完了         |

## イベントソーシングとの関係

limはイベントソーシングの考え方を採用しています。仕訳はイベントから**導出**されるものであり、イベントが真のソースです。

```
events → judgment_engine → journal_entries → financial_statements
```

イベントを保持しているので、ルールを更新して過去の仕訳を再計算することも可能です。

<Tip>
  会計の本質は「ビジネスイベントを数値で記録すること」です。limはこの本質を `fn(events)`
  として表現しています。
</Tip>

## 次のステップ

<CardGroup cols={2}>
  <Card title="イベント駆動設計" icon="bolt" href="/ja/concepts/event-driven">
    イベントの流れと処理の仕組み。
  </Card>

  <Card title="Judgment Engine" icon="brain" href="/ja/agents/judgment-engine">
    イベントを仕訳に変換するエンジンの詳細。
  </Card>
</CardGroup>
