# GCS-DATA-002 — Data Acquisition Contract

**Document class:** Data acquisition & entity-resolution contract
**Spec ID:** GCS-DATA-002
**Version:** v1.0
**Status:** Settled
**Owner:** Phil
**Approver:** Phil
**Settled:** 2026-07-08
**Parent:** GCS-SYS-001
**Related:** GCS-DATA-003, GCS-SIG-003, GCS-IMPL-004

---

## 0. Purpose

Defines every data stream GCS ingests, its real latency and clock, its schema, its authority tier, and the entity-resolution graph that binds them so a dollar can be followed across FIC/MIC/TIC. All streams inherit the demonstration standard (GCS-SYS-001 §5) and the integrity commitments (§8).

## 1. The multi-clock principle (binding)

Streams are grouped by their **clock**, not their topic. The signal lives in the *phase relationship between clocks*. Never read tempo from a calendar-quantized source.

- **Fast input clock (daily–weekly):** money issuance and disbursement.
- **Fast behavior clock (event-timed, days):** insider transactions, threshold crossings, material events.
- **Slow confirmation clock (quarterly):** institutional holdings.
- **Governance clock (annual + season window):** proxies, proposals, votes.
- **Ambient clock (continuous):** news, for event-timing only.

## 2. Source register

### 2.1 Monetary / fiscal input layer (fast input clock)

| Stream | Source (primary) | Clock | What it carries | Authority |
|---|---|---|---|---|
| Fed balance sheet (H.4.1) | Federal Reserve / FRED | Weekly | Reserve creation, QE/QT state | Tier 1 |
| Treasury General Account (TGA) | US Treasury Daily Statement / FRED | Daily | Cash actually leaving/entering govt account — the real "money travels" clock | Tier 1 |
| Reverse repo (RRP) balances | FRED | Daily/weekly | Liquidity parking | Tier 1 |
| Treasury auction settlements | TreasuryDirect | Per-auction | New issuance settlement dates | Tier 1 |
| Money stock (M2, etc.) | FRED | Weekly/monthly | Broad money | Tier 1 |
| Fed policy events (FOMC) | Federal Reserve | Per-meeting + intraday | Rate decisions; narrow-window shock ID | Tier 1 |

### 2.2 Expenditure / capability layer (fast input clock)

| Stream | Source (primary) | Clock | What it carries | Authority |
|---|---|---|---|---|
| Federal contract obligations | USASpending.gov API | Event-timed (obligation date) | Money hitting named recipients (MIC primes, chip programs) | Tier 1 |
| Grants / assistance | USASpending.gov API | Event-timed | Non-contract federal outflow | Tier 1 |
| Daily Treasury Statement outlays | US Treasury | Daily | Aggregate disbursement | Tier 1 |

### 2.3 Corporate behavior layer (fast behavior clock)

| Stream | Source (primary) | Latency | What it carries | Authority |
|---|---|---|---|---|
| Form 4 (insider transactions) | SEC EDGAR | ≤2 business days | Insider buy/sell — near-real-time behavior | Tier 1 |
| Schedule 13D/13G | SEC EDGAR | ≤10 days after 5% crossing | New large position; 13D = control intent, 13G = passive | Tier 1 |
| Form 8-K (material events) | SEC EDGAR | Event-timed (≤4 business days) | Comp amendments, proposal withdrawals, board changes — engagement-window signatures | Tier 1 |
| Short interest | Exchange / FINRA | Bi-monthly | Positioning pressure | Tier 2 |

### 2.4 Ownership confirmation layer (slow confirmation clock)

| Stream | Source (primary) | Latency | What it carries | Authority |
|---|---|---|---|---|
| Form 13F | SEC EDGAR | 45 days after quarter-end | Institutional holdings ≥ threshold | Tier 1 |
| 13F full roster | SEC EDGAR | Quarterly | The *full* filer list — required to measure concentration vs. dispersed tail | Tier 1 |

**Binding rule:** 13F is used for *magnitude and rotation only*, never for tempo. Its timing is a calendar artifact (§1).

### 2.5 Governance layer (governance clock) — THE DECISIVE LAYER

| Stream | Source (primary) | Clock | What it carries | Authority |
|---|---|---|---|---|
| DEF 14A (proxy statement) | SEC EDGAR | Annual, files weeks pre-meeting | Full ballot: director slate, proposals, comp | Tier 1 |
| Shareholder proposals | Within DEF 14A / DEFA14A | Annual | Filed proposals; track filed→withdrawn→voted | Tier 1 |
| **Form N-PX (fund proxy votes)** | SEC EDGAR | Annual (by Aug 31) | **How every fund actually voted every item — the goldmine** | Tier 1 |
| Vote outcomes | 8-K / DEF 14A follow-ups | Post-meeting | Resolved results | Tier 1 |
| Record dates | DEF 14A | Per-meeting | The snapshot date that fixes voting power | Tier 1 |
| Proxy advisor policies | ISS / Glass Lewis (published benchmark policies) | Annual (effective ~Feb 1) | The recommendation logic the dispersed tail follows | Tier 2 |

**Note on N-PX:** this is the stream that converts "how do the passive giants vote" from speculation to query. Prioritize its ingestion and normalization.

### 2.6 Ambient layer (news — event-timing only)

| Stream | Source | Use | Authority |
|---|---|---|---|
| Financial/general news | Licensed news APIs, web fetch of primary outlets | **Event-timing and corroboration only** — never as a primary fact where a filing exists | Tier 3 |

**Binding rule:** news is a *bearing for timing and corroboration*, not a source of record. Where a filing exists, the filing governs. Conspiracy-prone and fabricated-quote sources are excluded (GCS-SYS-001 §8).

## 3. Authority tiers (binding)

- **Tier 1 — Primary filing / official series.** Authoritative. Assertable.
- **Tier 2 — Structured secondary** (advisor policies, exchange stats). Usable, flagged, reconciled to Tier 1 where possible.
- **Tier 3 — Ambient** (news). Timing/corroboration only. Never sole basis for an asserted number.

## 4. The entity-resolution graph (the make-or-break layer)

Everything depends on binding these streams to a shared entity model. This is ~80% of the build effort and the thing most likely to break the system if done carelessly.

### 4.1 Node types
- **Issuer** (public company; CIK-anchored)
- **Filer / manager** (institutional holder; CIK-anchored)
- **Fund** (voting entity under a manager; N-PX-anchored)
- **Recipient** (contract awardee; USASpending recipient ID / UEI)
- **Ultimate parent** (resolved corporate parent)
- **Sector** (FIC / MIC / TIC classification + sub-sector)
- **Government node** (Treasury, Fed, DoD contracting office, sanctions authority)

### 4.2 Edge types
- **holds** (filer → issuer, with %, share count, as-of date)
- **votes** (fund → proposal, with for/against/withhold, meeting date)
- **manages / sub-advises** (manager → fund) — **critical: this edge collapses apparent independence**
- **disburses** (government node → recipient, with amount, obligation date)
- **is-parent-of** (ultimate parent → subsidiary)
- **gates** (node → flow, with gating share) — the chokepoint edge

### 4.3 Identifier crosswalk (required)
- SEC **CIK** ↔ ticker ↔ CUSIP ↔ LEI ↔ USASpending **UEI/recipient ID**.
- Maintain a versioned crosswalk table. Mergers, renames, and re-tickers are tracked with effective dates (the Lockheed pension-trust and RTX-rename type cases must resolve correctly).

### 4.4 The independence audit (binding — inherits GCS-SYS-001 §8)
Before any two holders are counted as *independent bearings* for concordance:
- Resolve the **manages/sub-advises** edges. A sub-advised fund and its advisor are **one bearing, not two.** (The Geode↔Fidelity type relationship must collapse.)
- Resolve fund-family and feeder structures. Sub-funds of one family are one bearing.
- Output an **independence-adjusted holder count and bloc size** per issuer — this is the number that adjudicates concentration-vs-dispersion, and the disagreement resolved in the thread hinges on it.

## 5. Cross-complex linkage (the FIC/MIC/TIC seam)

For each issuer, compute and store:
- Its complex(es) and sub-sector.
- Its top holders with independence-adjusted percentages.
- The **common-ownership overlap**: which holders appear as top holders across MIC *and* TIC *and* FIC issuers simultaneously (the shared-substrate finding).
- Its position on the **gates** graph (does it hold a chokepoint edge; e.g., lithography, fabrication, dollar clearing, propulsion).
- Government disbursement edges into it (USASpending).

This is what lets GCS follow a dollar: government node → *disburses* → recipient (MIC prime) → *held by* → managers → who also *hold* → TIC and FIC issuers. The path is the product.

## 6. Ingestion requirements

- **Idempotent, incremental pulls.** Every source pulled on its native clock; re-pulls must not duplicate.
- **Point-in-time storage.** Store data *as it was known on each date* (as-of stamps on every record). Predictions must be back-testable against only what was knowable then; no lookahead leakage.
- **Raw + normalized retention.** Keep the raw filing/response *and* the normalized record. Normalization is re-runnable from raw.
- **Rate-limit and ToS compliance.** SEC EDGAR fair-access limits, USASpending and FRED API terms respected. Only lawful, public data (GCS-SYS-001 §7).
- **Reconciliation jobs.** Nightly job reconciles Tier 2 aggregator figures to Tier 1 primaries; flags divergences.

## 7. Acceptance criteria (data layer)

1. Every Tier 1 stream ingested on its native clock with as-of stamps and no lookahead leakage.
2. Entity-resolution crosswalk covers all in-scope issuers, filers, funds, recipients, with effective-dated merger/rename handling.
3. Independence audit runs and produces independence-adjusted bloc sizes per issuer.
4. N-PX normalized to (fund, proposal, vote) tuples joined to DEF 14A ballot items.
5. Cross-complex common-ownership overlap computed and queryable.
6. Every asserted figure traces to a Tier 1 source; aggregator-only figures flagged provisional.

## 8. Contract Gate

Positive verification: future ingestion tests prove raw -> normalized
round-trips with `as_of_timestamp`, `fetch_timestamp`, `source_authority_tier`,
and no duplicate rows on re-pull.

Negative verification: an ingestion record without source authority, raw
payload digest, or point-in-time timestamp is rejected.

Validation command: Phase 0 static gate is `python3 -m tools.check_contracts
--check`; future ingestion gates must be added before data pulls begin.

---

*End GCS-DATA-002.*
