Defense Manufacturing Sales (EU)

DEFSLS941· 903K records · 12 tables · v1.0.0 · Updated 2026-08-11
Defence & Military Defence & Military Dataset API
CSV JSON SQLdefense-industrysales-ordersorder-backlogmanufacturingeuropeeutime-seriesdemand-shock

Overview

Ten and a half years of European defense industry sales at order-line grain. 36 manufacturers sell 2,352 products across nine market segments (ammunition, missiles, air defence, artillery, uncrewed systems, land vehicles, electronics, soldier systems, naval) to 195 government customers in 35 countries. Through 2021 the industry drifts: low single-digit growth, a 2020 dip, framework contracts and comfortable lead times. From February 2022 a major European security crisis re-arms the continent, and the dataset carries the whole mechanism, not just the headline: order intake multiplies fastest in ammunition, missiles and air defence while naval barely moves, eastern European customers re-arm hardest, urgent operational contracts appear beside the frameworks, a share of lines is priced far above list in the scramble, delivery lead times stretch against real capacity, and the monthly backlog table grows to a peak because deliveries cannot follow orders. Revenue is recognised on delivery, so company financials boom later than order books, exactly as the real industry's income statements behaved. The tables reconcile by construction and the build re-verifies it: product monthly sales are the exact sum of the order and delivery lines, backlog is exactly cumulative orders minus deliveries per company and market, and company revenue equals delivered value per calendar year outside two documented fiscal-year rows. Built for demand-shock analytics, order-book and capacity modelling, ETL pipelines and BI logic. The licence and disclosure sections state the provenance of the data.

Analytics

Four entries from the packaged tables, with the performance the dataset records for them. Every value below is read from the shipped files.

Nortek Defence SystemsDC01soldier equipment and small systems
EUR 2,045MRevenue
EUR 3,172MOrder intake
EUR 15,374MBacklog
10.2%Margin
Monthly backlog (million EUR)Monthly backlog
1 / 4

Row Counts by Table

Counted from the files that ship, not estimated.

TableRows
def_sales_orders279,132
def_deliveries302,767
def_product_monthly_sales296,352
def_backlog_monthly13,356
def_contracts7,015
def_products2,352
def_companies36
def_divisions106
def_customers195
def_markets9
def_capacity_annual1,166
def_company_financials396

Table Relationships

One parent record and seven child tables, each joined back on the same key.

70%
Loading diagram

Schema

Every table ships with typed columns, referential integrity, and documentation.

def_sales_orders· Rows: 279,132
ColumnTypeDescription
order_line_idvarchar(16)Order line number. Primary key.
contract_idvarchar(16)The contract this line calls against.
product_idvarchar(16)The product ordered.
customer_idvarchar(8)The ordering program.
order_monthvarchar(16)Month the order was placed, as year-month. Import as text: spreadsheets convert values like 2022-02 to dates.
quantityintegerQuantity ordered, in the product's unit of measure.
unit_price_eurnumeric(12,2)Agreed unit price in euro. A small share sits far above list: urgent premiums, deliberate.

+4 more columns in def_sales_orders. The full schema ships with the download.

def_deliveries· Rows: 302,767
ColumnTypeDescription
delivery_line_idvarchar(16)Delivery line number. Primary key.
order_line_idvarchar(16)The order line this tranche delivers against.
delivery_monthvarchar(16)Month of delivery, as year-month. Import as text: spreadsheets convert values like 2022-02 to dates.
quantity_deliveredintegerQuantity delivered in this tranche. Tranches never exceed the ordered quantity in total.
delivered_value_eurnumeric(13,2)Delivered quantity times the order line's unit price, in euro.
stock_calloff_flagbooleantrue on the roughly fifty lines delivered from vendor-held stock before their order month, false otherwise. The documented lead-time trap.
def_product_monthly_sales· Rows: 296,352
ColumnTypeDescription
pms_idvarchar(16)Aggregate row key. Primary key.
product_idvarchar(16)The product this row aggregates.
year_monthvarchar(16)Month of this aggregate, 2016-01 to 2026-06 with no gaps. Import as text: spreadsheets convert values like 2022-02 to dates.
qty_orderedintegerQuantity ordered this month, the exact sum of the order lines. Zero months are real zeros.
qty_deliveredintegerQuantity delivered this month, the exact sum of the delivery lines.
order_value_eurnumeric(13,2)Order value this month in euro, exact.
delivered_value_eurnumeric(13,2)Delivered value this month in euro, exact.

+1 more columns in def_product_monthly_sales. The full schema ships with the download.

def_backlog_monthly· Rows: 13,356
ColumnTypeDescription
backlog_idvarchar(16)Backlog row key. Primary key.
company_idvarchar(8)The manufacturer whose open orders this row states.
market_codevarchar(16)The market segment of the open orders.
year_monthvarchar(16)Month end this backlog is stated at. Import as text.
open_order_value_eurnumeric(15,2)Open order value in euro: exactly cumulative orders minus cumulative deliveries.
currencyvarchar(16)ISO 4217 currency code. EUR throughout.
def_contracts· Rows: 7,015
ColumnTypeDescription
contract_idvarchar(16)Contract number. Primary key.
company_idvarchar(8)The selling manufacturer.
customer_idvarchar(8)The buying program.
contract_typevarchar(24)FRAMEWORK or URGENT_OPERATIONAL. Urgent contracts appear from 2022.
signed_datedateDate the contract was signed.
ceiling_value_eurintegerContract ceiling in euro.
currencyvarchar(16)ISO 4217 currency code. EUR throughout.

+1 more columns in def_contracts. The full schema ships with the download.

def_products· Rows: 2,352
ColumnTypeDescription
product_idvarchar(16)Product number. Primary key; the sales material every line table references.
company_idvarchar(8)The manufacturer of this product.
division_idvarchar(8)The division that owns this product.
market_codevarchar(16)Market segment of the product.
designationvarchar(16)Invented designation code. Follows no real naming system; an accidental match with a real designation is coincidental.
product_namevarchar(56)Designation plus a generic technical descriptor. One name is deliberately shared by two products at different manufacturers.
product_classvarchar(16)PLATFORM, SUBSYSTEM or CONSUMABLE.

+4 more columns in def_products. The full schema ships with the download.

def_companies· Rows: 36
ColumnTypeDescription
company_idvarchar(8)Manufacturer number. Primary key; foreign key on every company-grain table.
company_namevarchar(40)Generated manufacturer name. Collisions with real defense companies are a build failure.
country_codevarchar(8)ISO 3166-1 alpha-2 country code.
founded_yearintegerYear the manufacturer was founded.
employee_bandvarchar(16)Coded workforce size band.
listed_flagbooleantrue when the company is stock-exchange listed, false otherwise.
specialisationvarchar(56)The company's primary market in words.

+1 more columns in def_companies. The full schema ships with the download.

def_divisions· Rows: 106
ColumnTypeDescription
division_idvarchar(8)Division number. Primary key.
company_idvarchar(8)The parent manufacturer.
division_namevarchar(40)Division name, one per market segment the company operates in.
market_codevarchar(16)The market segment this division serves.
def_customers· Rows: 195
ColumnTypeDescription
customer_idvarchar(8)Customer number. Primary key.
country_codevarchar(8)ISO 3166-1 alpha-2 country code.
country_namevarchar(24)Country name in English.
branch_codevarchar(8)Armed-forces branch code: LAND, AIR, NAVAL, JOINT, GUARD, SOF or CIVIL.
branch_namevarchar(40)The branch in words.
customer_typevarchar(24)national_program or export_program.
program_office_codevarchar(16)Invented procurement office code, country plus branch plus sequence. Never a real agency's identity.

+1 more columns in def_customers. The full schema ships with the download.

def_markets· Rows: 9
ColumnTypeDescription
market_codevarchar(16)Market segment key. Primary key.
market_namevarchar(32)The segment in words.
default_unitvarchar(16)Unit the segment's products are counted in.
market_descriptionvarchar(120)How hard the segment surges after the 2022 crisis and its typical delivery lead time.
def_capacity_annual· Rows: 1,166
ColumnTypeDescription
capacity_idvarchar(8)Capacity row key. Primary key.
company_idvarchar(8)The manufacturer.
market_codevarchar(16)The market segment the capacity serves.
yearintegerCalendar year, 2016 to 2026.
capacity_value_eurbigintAnnual output capacity stated as deliverable value in euro. Expands from 2024.
utilisation_pctnumeric(7,2)Delivered value over capacity, in percent. Runs above 100 through the surge years; 2026 is annualised from the half year.
def_company_financials· Rows: 396
ColumnTypeDescription
financial_idvarchar(8)Financial row key. Primary key.
company_idvarchar(8)The manufacturer.
yearintegerReporting year.
fiscal_year_endvarchar(8)12-31 for calendar-year rows. Two documented rows carry 03-31 and report April to March; a naive calendar join misreads them, on purpose.
revenue_eurnumeric(15,2)Revenue in euro, recognised on delivery. Equals delivered value exactly for calendar-year rows.
order_intake_eurnumeric(15,2)Order intake in euro for the calendar year.
order_book_eurnumeric(16,2)Open order value at year end, in euro.

+4 more columns in def_company_financials. The full schema ships with the download.

Sample Data

A snapshot of real rows from the dataset (values are fully synthetic).

order_line_idcontract_idproduct_idcustomer_idorder_monthquantityunit_price_eurline_value_eururgent_flag
OL0000001CT00001DP000001CU01532016-094349281.891397127.56false
OL0000002CT00002DP000001CU01602017-108328623.232628985.84false
OL0000003CT00003DP000001CU00782018-0719287577.955463981.05false

Version History

v1.0.02026-08-11First release. 36 manufacturers, 2,352 products, 195 government customers, and monthly order, delivery, backlog, capacity and financial data from 2016-01 to 2026-06 around a 2022 demand shock.