Monarch Castle Technologies
MODEL CARD · v2.0

Open methodology · deterministic pipeline

Procurement acceleration model

A 0–90 day screening index for unusual defense procurement, industrial demand, acquisition policy, and critical-input pressure. Not a conflict probability or contract forecast.

1. Composite

Five independent official-source components are normalized to 0–100:

S = 0.30 T + 0.25 U + 0.20 N + 0.15 R + 0.10 M + B

ComponentWeightSource
EU defense notices (T)30%TED Search API
U.S. industrial awards (U)25%USAspending
NATO demand language (N)20%NATO sitemap
Acquisition policy (R)15%Federal Register
Critical materials (M)10%FRED

Unavailable components are excluded and remaining weights renormalized. A validated component can be retained for at most 72 hours and is visibly marked.

2. Robust velocity

TED, NATO, and Federal Register signals use current 14-day activity expressed as a weekly equivalent versus 12 preceding weeks.

z = (x − median(history)) / (1.4826 × MAD)
density = min(scale × x, 55)
anomaly = min(18 × max(z,0), 45)
score = 0.55 × density + 0.45 × anomaly

If MAD is zero, baseline standard deviation is used; if both are zero, z is zero. TED selection uses CPV 35300000, 35400000, 35600000, and 35700000. NATO titles are deterministically weighted for procurement, production, industry, munitions, capabilities, investment, contracts, air defense, missiles, and drones. Federal Register rules and proposed rules receive 1.5 weight; other DARS documents receive 1.

3. U.S. industrial awards

USAspending transactions are limited to Department of Defense contracts and eight aircraft, missile, spacecraft, and ammunition manufacturing NAICS codes. Because reporting can lag, time windows anchor to the latest reported action date and the entire component is freshness-discounted.

freshness = clamp(1 − reporting lag days / 120, 0, 1)
magnitude = clamp((log₁₀(max(weekly obligations,1)) − 6) / 3 × 55, 0, 100)
score = freshness × (0.55 × magnitude + 0.45 × min(18 × max(z,0),45))

This prevents old award data from being represented as a current signal. Negative obligations are treated as de-obligations and contribute zero to acceleration magnitude.

4. Critical materials

FRED global copper (PCOPPUSDM) and nickel (PNICKUSDM) monthly returns are robust-z standardized against 30 prior returns.

pressure = clamp((|z| − 0.5) / 2.5 × 100, 0, 100)
M = 0.55 × copper pressure + 0.45 × nickel pressure

5. Concurrence and bands

A +5 bonus requires an official demand/policy component (TED, NATO, or Federal Register) ≥45 and an industrial/input component (USAspending or materials) ≥40.

0–24.9Baseline
25–44.9Watch
45–64.9Elevated
65–79.9High
80–100Severe

6. Reproduce

No API key, account, paid service, or generative AI is required.

git clone https://github.com/MonarchCastleTech/defense-procurement.git
cd defense-procurement
python -m pip install -r requirements.txt
python -m pytest -q
python pipeline/defense_procurement_pipeline.py
python -m http.server 8000

GitHub Actions repeats tests, collection, evidence commit, and Pages deployment every six hours.

7. Limitations

Procurement notices are not awards; obligations can be modified or de-obligated; USAspending has reporting lag; official publication volume reflects communications and rulemaking practice; metals are globally confounded. The model screens acceleration pressure. It does not infer intent, predict war, estimate contract probability, or replace primary-document review.