{
  "schemaVersion": 1,
  "id": "P57-C05",
  "title": "Аналитики продаж: возврат, пустая выборка и настоящий ноль",
  "author": {
    "id": "P57",
    "name": "Матвей Волков"
  },
  "specialty": "Обучение ИИ на процессах команды",
  "projectStatus": "concept",
  "source": {
    "document": "catalogue_60_personas.md",
    "briefId": "P57-C05",
    "title": "Аналитики продаж",
    "kind": "editorial_concept",
    "data": "synthetic"
  },
  "context": "Нулевая выручка может быть результатом продажи и полного возврата либо отсутствием строк. Эти случаи нельзя подписывать одинаково без пояснения.",
  "decision": "Я дал полный журнал и определение показателя. Участник считает чистую сумму, отдельно читает число операций и не относит возврат в чужой период. 🛠 Здесь ответ проверяется арифметикой, а не уверенным тоном.",
  "constraint": "Исходные документы учебные и полностью приложены. Задание оценивает конкретные действия на этом наборе, а не квалификацию человека в целом.",
  "steps": [
    "Прочитать полный исходный материал и короткий разбор правила.",
    "Ввести ответы в поля задания и получить объяснение по каждому пункту.",
    "Исправить конкретный пропуск; эталон доступен отдельно после попытки."
  ],
  "inspection": [
    "Пустая попытка не получает оценку за невыполненное действие — проверено.",
    "Эталонная попытка проходит все предметные критерии — проверено.",
    "Один правдоподобный неверный ответ не получает полный балл — проверено."
  ],
  "sample": {
    "headers": [
      "Пункт",
      "Вопрос",
      "Ответ",
      "Результат",
      "Разбор"
    ],
    "rows": [
      [
        "1",
        "Сумма октября",
        "Не заполнен",
        "Нужен ответ",
        "Заполните ответ по исходному материалу, затем проверьте попытку."
      ],
      [
        "2",
        "Операций октября",
        "Не заполнен",
        "Нужен ответ",
        "Заполните ответ по исходному материалу, затем проверьте попытку."
      ],
      [
        "3",
        "Сумма ноября",
        "Не заполнен",
        "Нужен ответ",
        "Заполните ответ по исходному материалу, затем проверьте попытку."
      ],
      [
        "4",
        "Декабрь: пусто / нулевая продажа",
        "Не заполнен",
        "Нужен ответ",
        "Заполните ответ по исходному материалу, затем проверьте попытку."
      ]
    ]
  },
  "sampleNote": "Авторский контрольный набор; не клиентские документы и не результаты внешней модели.",
  "caseStudy": {
    "role": "Автор обучения рабочим процессам",
    "contribution": "Я написал урок по отчёту продаж с пропусками данных и задания на различие нуля и неизвестного значения.",
    "objective": "Четыре операции дают проверяемую сумму; отдельный запрос показывает разницу между нулем и отсутствием данных.",
    "problem": "Нулевая выручка может быть результатом продажи и полного возврата либо отсутствием строк. Эти случаи нельзя подписывать одинаково без пояснения.",
    "result": "Задание с полным журналом отличает октябрьский ноль при двух операциях от пустого декабря. Ноябрь дает 600; все три вывода имеют прямой расчет.",
    "deliverables": [
      "index.html",
      "source.json",
      "source.csv",
      "result.json",
      "result.csv",
      "engine.js",
      "checks.json",
      "style.css",
      "lesson.txt",
      "answer-key.json"
    ],
    "blocks": [
      {
        "type": "text",
        "title": "Пустая строка не сообщает об отсутствии продаж",
        "text": "Запись S1 с суммой 1200 — известное событие. Отсутствие данных за другой день не даёт такого же знания о нулевой сумме. В заданиях ученик должен удержать это различие при выводе итога, иначе гладкая фраза о динамике скрыла бы незагруженный участок источника."
      },
      {
        "type": "text",
        "title": "Короткий урок",
        "text": "Сначала зафиксируйте период и дату учета. В этой задаче берется дата операции. Возврат уменьшает сумму периода, в котором проведен. Пустая выборка имеет count=0; взаимно погашенные операции могут дать sum=0 при count>0."
      },
      {
        "type": "text",
        "title": "Задание",
        "text": "Рассчитайте октябрь, ноябрь и пустой декабрь по журналу. Суммы вводите целыми числами без валюты."
      },
      {
        "type": "table",
        "title": "Полные исходные материалы",
        "lead": "",
        "table": {
          "headers": [
            "ID",
            "Дата",
            "Сумма",
            "Текст"
          ],
          "rows": [
            [
              "S1",
              "2026-10-10",
              "1200",
              "Продажа O1"
            ],
            [
              "R1",
              "2026-10-12",
              "-1200",
              "Полный возврат O1"
            ],
            [
              "S2",
              "2026-11-01",
              "800",
              "Продажа O2"
            ],
            [
              "R2",
              "2026-11-03",
              "-200",
              "Частичный возврат O2"
            ]
          ]
        }
      }
    ]
  },
  "deliverable": {
    "type": "course",
    "entry": "/catalogue/deliverables/p57-c05/index.html",
    "label": "Открыть работающий материал",
    "files": [
      {
        "path": "/catalogue/deliverables/p57-c05/index.html",
        "name": "index.html",
        "mimeType": "text/html"
      },
      {
        "path": "/catalogue/deliverables/p57-c05/source.json",
        "name": "source.json",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p57-c05/source.csv",
        "name": "source.csv",
        "mimeType": "text/csv"
      },
      {
        "path": "/catalogue/deliverables/p57-c05/result.json",
        "name": "result.json",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p57-c05/result.csv",
        "name": "result.csv",
        "mimeType": "text/csv"
      },
      {
        "path": "/catalogue/deliverables/p57-c05/engine.js",
        "name": "engine.js",
        "mimeType": "text/javascript"
      },
      {
        "path": "/catalogue/deliverables/p57-c05/verify.cjs",
        "name": "verify.cjs",
        "mimeType": "text/javascript"
      },
      {
        "path": "/catalogue/deliverables/p57-c05/checks.json",
        "name": "checks.json",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p57-c05/style.css",
        "name": "style.css",
        "mimeType": "text/css"
      },
      {
        "path": "/catalogue/deliverables/p57-c05/lesson.txt",
        "name": "lesson.txt",
        "mimeType": "text/plain"
      },
      {
        "path": "/catalogue/deliverables/p57-c05/answer-key.json",
        "name": "answer-key.json",
        "mimeType": "application/json"
      }
    ],
    "summary": "Задание с полным журналом отличает октябрьский ноль при двух операциях от пустого декабря. Ноябрь дает 600; все три вывода имеют прямой расчет."
  },
  "takeaway": "Задание с полным журналом отличает октябрьский ноль при двух операциях от пустого декабря. Ноябрь дает 600; все три вывода имеют прямой расчет.",
  "capabilities": [
    "completed_course"
  ],
  "externalConnections": []
}
