SPB Git

spb/wp42_uqo

Public

# Sales KPI definitions — Boréal Fenestration Inc.

Document: SOPS-KPI-DEF, version 2025.3 (approved by Finance and Sales Operations, 2025-11-14) Scope: fiscal year 2025 (FY2025 = 2025-01-01 to 2025-12-31, calendar year), with FY2024 as the comparison period. Currency: Canadian dollars, before GST/QST/HST. All figures are computed from the ERP order-line export (sales.sqlite, table orders) joined to products (list prices and unit costs) and to the regional mapping (regions_mapping.csv).

These definitions are binding for every KPI pack. When a figure in a pack differs from a figure in another report, the figure computed with these definitions prevails.

# 1. Data preparation rules

1.1 Order-line identity. One row of orders is one order line. A line is uniquely identified by the pair (order_id, line_no). The ERP export routine is known to repeat rows when it is run while the nightly job is still writing; if the export contains more than one row with the same (order_id, line_no), exactly one occurrence is kept and the number of removed rows is reported in the pack.

1.2 Status. status takes the values shipped, returned and cancelled. A return is recorded by the ERP as its own order line with status = 'returned' (a credit line with a positive quantity, carrying the order_date of the original order); the original shipped line keeps status = 'shipped'. Cancelled lines were never invoiced: they are excluded from every KPI (revenue, margin, orders, average order value, returns and delivery).

1.3 Line value and unit price validation. Line value = qty × unit_price. The unit_price of a line must lie between 50 % and 150 % of the product's list_price (table products). A line outside this range is a data-entry error: the line is kept, its unit_price is replaced by the product's list_price, and the pack reports the number of lines and the product(s) affected. Normal commercial discounts (0–12 %) and the January 2025 price-list increase (+3 %) are within the accepted range and must not be altered.

1.4 Period attribution. Every line, including return (credit) lines, is attributed to the month and year of its order_date.

1.5 Regions. Each line carries region_code (three upper-case letters). Region names come from regions_mapping.csv; codes must be normalised to upper case before joining so that every line maps to exactly one named region. A pack with lines in an "unknown" region is not acceptable.

1.6 Dates. ship_date must be on or after order_date. A shipped line whose ship_date is earlier than its order_date is impossible (interface error): it is kept in revenue and margin but excluded from the on-time delivery metric (numerator and denominator), and the number of such lines is reported in the pack.

# 2. KPI formulas

# KPI Definition
K1 Gross shipped revenue Σ line value over lines with status = 'shipped'
K2 Returns value Σ line value over lines with status = 'returned'
K3 Net revenue K1 − K2
K4 Net COGS Σ qty × unit_cost over shipped lines − Σ qty × unit_cost over returned lines (unit_cost from products)
K5 Gross margin K3 − K4
K6 Gross margin % K5 ÷ K3 × 100
K7 Number of orders count of distinct order_id having at least one shipped line in the period
K8 Average order value (AOV) K3 ÷ K7
K9 Return rate % K2 ÷ K1 × 100
K10 On-time delivery % among shipped lines (status = 'shipped') with a valid ship_date (rule 1.6), share with ship_date − order_date ≤ 10 calendar days, × 100
K11 Year-over-year (YoY) % (net revenue 2025 ÷ net revenue 2024 − 1) × 100, computed for the full year and for each calendar month (January 2025 vs January 2024, etc.)
K12 Top-10 products the ten products with the highest net revenue (K3) in FY2025, ranked in descending order, with each product's share of FY2025 net revenue

K7, K8, K9 and K10 are reported for FY2025 (FY2024 values are welcome as comparison). K1–K6 and K11 are reported for FY2025 and FY2024, and K3 and K11 month by month.

# 3. Presentation conventions

  • Currency amounts to the dollar (no cents) in the dashboard; percentages with one decimal.
  • The commentary quotes headline figures in full dollars (for example 12,345,678 CAD), never rounded to millions, so that Finance can tie them to the dashboard.
  • Regions are presented in the order of regions_mapping.csv; products by rank.
  • Every data-preparation action (rules 1.1, 1.3, 1.5, 1.6) is quantified in the pack: how many rows or lines, which product(s), which region code(s).
Files · main
Menu

Theme