{ "schema_version": "business_answer_contract_v1", "contract_id": "margin_profitability_v1", "domain": "margin_profitability", "title": "Маржинальность номенклатуры", "purpose": "Зафиксировать минимальную форму честного бизнес-ответа для вопросов о выручке, себестоимости, валовой прибыли и марже по товарам/номенклатуре.", "answer_surface": { "must_start_with": "direct_answer_first", "required_fields": [ { "field": "period", "meaning": "Период расчёта или честное указание, что период не задан/не подтверждён." }, { "field": "revenue_ex_vat", "meaning": "Выручка без НДС или честное unknown, если контур не может доказать сумму." }, { "field": "cogs", "meaning": "Себестоимость или честное unknown, если нет подтверждённой основы." }, { "field": "gross_profit", "meaning": "Валовая прибыль как revenue_ex_vat - cogs или честное unknown." }, { "field": "margin_pct", "meaning": "Процент маржи или честное unknown при недостаточной базе." }, { "field": "evidence_basis", "meaning": "Какие документы/регистры/цепочки подтверждают расчёт." } ], "must_not_contain": [ "route ids", "capability ids", "debug ids", "fixed assets / ОС leak", "amortization / амортизация leak", "payment document as margin source" ], "limited_answer_rule": "Если точный расчёт невозможен, ответ должен сказать, что подтверждено, что неизвестно, и предложить следующий проверяемый шаг." }, "root_layers": [ "intent", "route", "capability", "field_mapping", "answer_surface" ], "detectors": [ "margin_domain_leak_accounting_route", "margin_required_fields_missing", "margin_next_action_missing", "margin_payment_document_false_source", "margin_os_amortization_leak" ], "acceptance": { "must_have": [ "direct_answer_first", "period", "revenue_ex_vat_or_honest_unknown", "cogs_or_honest_unknown", "gross_profit_or_honest_unknown", "margin_pct_or_honest_unknown", "evidence_basis_or_honest_boundary", "next_action_if_limited" ], "must_not_have": [ "fixed assets leak", "amortization leak", "payment document as margin source", "technical garbage" ] } }