---
title: Модель финансовой истины — TSync Intelligence
description: Единое формальное определение каждого финансового показателя слоя TSync Intelligence — базовая валюта и методология курсов, оценка запасов, дебиторка/кредиторка, денежные средства, валютная экспозиция, операционная прибыль — с чётким разделением базы Фазы 1 и модели Фазы 2.
product: TSync Intelligence 11.3.6
language: ru
canonical: https://docs.tsync.pro/ru/modules/tsync-financial-truth-model/
source: https://docs.tsync.pro/llms.txt
---

# Модель финансовой истины

**Единый источник истины** о том, что *означает* каждый финансовый показатель в
TSync Intelligence. Каждая метрика, которую [слой Intelligence](tsync-intelligence.md)
предоставляет через `tsync_finance()`, имеет здесь ровно одно определение, чтобы все
продвинутые модули (Динамическая оценка, Валютная экспозиция, KPI) считали на одной
основе, а результаты были воспроизводимы и проверяемы.

> **Область.** Этот документ определяет *методологию*. Фаза 1 поставляет **базовые**
> определения ниже (реализованы в `Tsync_finance_service`). Пункты с пометкой
> **[Фаза 2]** формально определены здесь, но их полный расчёт отложен.

---

## 0. Соглашения

- **Базовая валюта** — `tsync_fx()->base()` (учётная база, напр. `RON`), из опции
  `tsync_acc_base_currency`. Все агрегаты выражаются в базе.
- **Учётный курс** — `tsync_fx()->rate(CUR, date)`: курс `CUR`→база на дату, из
  `Tsync_currency`. **Правило даты курса:** Румыния использует курс BNR за
  **предыдущий рабочий день**; Молдова — курс **того же дня**. Базовая валюта по
  определению имеет курс `1.0`.
- **Пересчёт** — всегда *через базу*: `convert(amount, from, to) = amount ×
  rate(from) ÷ rate(to)`.
- **Округление** — денежные агрегаты округляются до **2 знаков**; удельные затраты и
  значения позиций в снимках хранят внутри **4 знака**.
- **Версионирование** — каждая строка метрики несёт `calc_version` + `calculated_at`
  (увеличиваются при каждом пересчёте), так что устаревшее значение можно обнаружить.
  Изменение определения здесь — это рост **версии методологии** (см. §8).

---

## 1. Оценка запасов

$$\text{InventoryValue} = \sum_{\text{stock rows}} (\,qty \times avg\_cost\,)$$

- Источник: `tsync_stock` — каноническая колонка остатка **`qty`** (никогда не
  `qty_on_hand`), удельная себестоимость **`avg_cost`**.
- Метод себестоимости: **AVCO** (скользящее средневзвешенное) — `avg_cost`
  поддерживается путём складских проводок при каждом приёме.
- `tsync_finance()->getInventoryValue()`. Уже в базе (запасы оцениваются в базе).

## 2. Дебиторская задолженность

$$\text{Receivables} = \sum_{\text{open customer invoices}} (\,total - \text{payments}\,)$$

- **Открытые** = статус счёта ∈ { `unpaid` (1), `partially_paid` (3), `overdue` (4) }.
  Оплаченные (2) и отменённые (5) исключаются.
- `total` — брутто-сумма счёта; `payments` — сумма зафиксированных по нему оплат.
- `tsync_finance()->getReceivables()`. Счета не в базе: см. §6.

## 3. Кредиторская задолженность

$$\text{Payables} = \sum_{\text{open supplier invoices}} (\,total - \text{payments}\,)$$

- **Открытые** = статус счёта поставщика не из { оплачен, отменён }.
- `tsync_finance()->getPayables()`.

## 4. Денежный остаток (прокси операционных денег)

$$\text{Cash} = \sum \text{customer payments} - \sum \text{supplier payments} - \sum \text{expenses}$$

- **Прокси** на основе движений, а не сверенный банковский остаток. Настоящая
  банковская сверка / закрытие периода — **[Фаза 2]**.
- `tsync_finance()->getCashBalance()`.

## 5. Валютная экспозиция

$$\text{Exposure} = \sum_{\substack{\text{open receivables}\\ \text{cur} \neq \text{base}}} \text{baseValue(open amount)}$$

- Значение в базовой валюте **открытой дебиторки не в базовой валюте** — сумма под
  риском валютных колебаний. `tsync_finance()->getCurrencyExposure()`.
- **Базовый** показатель: измеряет экспозицию, а не реализованную/нереализованную
  прибыль/убыток.

## 6. Методология валютной прибыли / убытка  **[расчёт Фазы 2]**

Формально: для позиции в иностранной валюте, учтённой по курсу $r_0$ на дату $d_0$ и
оценённой/расчётной по курсу $r_1$ на дату $d_1$,

$$\text{FX gain/loss} = \text{amount}_{\text{cur}} \times (r_1 - r_0)$$

- **Нереализованная** (открытые позиции): $r_1$ = курс на отчётную дату.
- **Реализованная** (при расчёте): $r_1$ = курс на дату расчёта.
- **Правило:** доходы/расходы и активы/обязательства учитываются по **историческому
  курсу** ($r_0$) при признании; переоценка использует **текущий курс** ($r_1$);
  разница — это валютная прибыль/убыток. Фаза 1 фиксирует экспозицию (§5) и курсы
  (§0); проведённая строка прибыли/убытка — это Фаза 2.

## 7. Операционная прибыль

**База Фазы 1** — `tsync_finance()->getOperationalProfit($days)`:

$$\text{OpProfit}_{\text{baseline}} = \text{revenue}_{\text{window}} - \text{expenses}_{\text{window}}$$

**[Фаза 2] истинная операционная прибыль** — формально:

$$\text{OpProfit} = \text{revenue} - \text{COGS} - \text{operating expenses} \pm \text{FX gain/loss} - \text{accruals/deferrals}$$

где **COGS** берётся из AVCO в момент продажи (не себестоимость на конец периода),
валютная прибыль/убыток по §6, начисления/отложения по дате признания.
**Операционные затраты** = COGS + операционные расходы (без финансирования и налогов).
База намеренно опускает COGS, валютную прибыль/убыток и начисления — не считайте её
аудированной прибылью.

## 8. Версионирование методологии и воспроизводимость

- Каждая метрика хранит `calc_version` (счётчик пересчётов данных) и создаётся под
  **версией методологии** (версией этого документа). Изменение любой формулы здесь
  увеличивает версию методологии; снимки фиксируют действующую методологию, чтобы
  историческое значение всегда можно было воспроизвести из тех же входных данных.
- **Контракт воспроизводимости:** один и тот же набор данных + та же версия
  методологии должны давать одни и те же числа (основа режима аудита/исследования).

## 9. Дорожная карта Фазы 2 (пока не обязательна)

Операционная прибыль на основе COGS, проведённая валютная прибыль/убыток,
банковская сверка / закрытие периода, начисления/отложения, консолидация по
нескольким компаниям и сценарии переоценки по историческому курсу против текущего.

---

*Реализовано в `application/libraries/Tsync_finance_service.php` (база) и
`Tsync_fx_service.php` (курсы). Проверяется `tests/sim/intelligence_finance_snapshot_sim.php`
и `tests/fx_service_test.php`.*
