---
title: "What is missing before profit is trustworthy"
method: POST
path: "/pnl/costs/coverage"
tags: ["P&L"]
---

# What is missing before profit is trustworthy

`POST /pnl/costs/coverage`

The SKUs that sold and the products that shipped samples in this window with no cost on file, ordered by how many units each one represents — the worklist for making ``POST /pnl/profit`` complete, biggest impact first. ``coverage_pct`` is by units, not by SKU count, so one missing best-seller outranks fifty missing long-tail SKUs.

## Request body

- PnlCostCoverageRequest — POST /pnl/costs/coverage request body — what is still missing.
  - `start_date` string, date, nullable — Inclusive window start (YYYY-MM-DD).
  - `end_date` string, date, nullable — Inclusive window end (YYYY-MM-DD).
  - `sample_basis` 'shipped' | 'approved' | 'requested'

## Response `200`

Successful Response

- PnlCostCoverageResponse — The worklist for making contribution profit trustworthy.
  - `shop_id` integer, required
  - `seller_id` string, required
  - `currency` string, required
  - `start_date` string, required
  - `end_date` string, required
  - `sample_basis` string, required
  - `cogs` PnlCogsCoverage, required
    - `units` integer, required
    - `units_costed` integer, required
    - `coverage_pct` number, required
    - `missing_count` integer, required
    - `missing` PnlMissingSkuCost[], required
      - `product_id` string, required
      - `sku_id` string, required
      - `product_name` string, nullable
      - `sku_name` string, nullable
      - `units` integer, required
    - `truncated` boolean, required — True when `missing` was capped and more rows exist.
  - `samples` PnlSampleCoverage, required
    - `sample_units` integer, required
    - `sample_units_costed` integer, required
    - `coverage_pct` number, required
    - `missing_count` integer, required
    - `missing` PnlMissingSampleCost[], required
      - `product_id` string, required
      - `sample_units` integer, required
    - `truncated` boolean, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/reacherapp/apis/reacher-data-api.md) · [All operations](https://skmtc.dev/reacherapp/apis/reacher-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/reacherapp/reacher-data-api/revisions/5eefff009b5b/schema)
