Data Import

Run FEC data ingestion. Each run is idempotent and logged with full source traceability. The FEC API key is stored securely server-side.

Run FEC ingestion

Fetches a bounded batch from the FEC open API and upserts records by source id (no duplicates).

Committees / PACs
FEC committee master records
Candidates
FEC candidate master records
Disbursements (PAC spending)
Schedule B — committee disbursements
Independent expenditures
Schedule E — support/oppose spending
Each run fetches up to 1,000 records (10 pages) per dataset for the selected cycle. Historical bulk imports can be expanded via maxPages. Individual-contributor (Schedule A) data is excluded: the FEC restricts its use for commercial purposes, so only committee/PAC data is ingested.

Bulk fetch from URL

Download a bulk file directly from FEC.gov server-side — no 25MB upload limit. Paste a link or use a quick-fill. Large files process in streaming batches; use the returned offset to resume.

'Run until done' auto-fills the URL for the selected dataset + cycle and auto-advances the offset from each batch's next_offset, looping until the file is exhausted. Keep this tab open while it runs.

Red / blue dashboard snapshot

Re-aggregates per-company Democratic vs Republican totals server-side (bypasses the 5,000-record client window) and stores the ranked lists the homepage reads. Resumable — each run processes ~250 committees; click Continue until 'complete'.

'Run until done' loops automatically — pausing 90s on a rate-limit hit (up to 3 times) before resuming — and stops on its own once the snapshot is complete. Keep this tab open while it runs.

Company name cleanup

Convert PAC-named company records (e.g. 'BEST BUY CO., INC. EMPLOYEE POLITICAL FORUM') into real companies using the affiliated committee's organization name, enrich ticker/industry via lookup, and remove standalone PACs. Resumable — run in batches.

Each batch rewrites company records and their committee links; runs are throttled to respect platform rate limits, so a batch of 80 takes ~90 seconds. 'Run until done' loops automatically — keep this tab open.

Enrich company aliases (brand names)

Adds well-known consumer brands and subsidiaries to each company's aliases (e.g. P&G → Tide, Pampers, Gillette; GM → Chevrolet, Buick, Cadillac) so users can find a company by searching for a brand they buy. Resumable — skips companies that already have enough aliases.

Each batch calls the LLM to identify consumer brands owned by each company; runs are throttled to respect rate limits. Companies with 6+ aliases are skipped on re-runs.

LDA lobbying disclosure ingest

Pulls federal lobbying filings from lda.gov (no API key needed) and writes LobbyingRecord rows, linked to a matching Company by client name. Idempotent — dedupes by filing URL. Leave 'Company slug' empty to process all companies in slices.

Leave 'Company slug' empty to ingest all companies. Each batch processes limit companies starting at offset; 'Run until done' auto-advances the offset by the limit each batch until the company list is exhausted. Start at offset 0 on a fresh run; maxPages caps filings fetched per company (10 pages ≈ 1,000 filings).

Import log

Audit trail of every ingestion run — records retrieved, inserted, updated, and rejected.

No imports yet. Run an ingestion above to populate this log.

Approved sources

OpenSecrets is explicitly excluded. No data is sourced from third-party proprietary political-finance datasets.

BuyAligned

Put your money where your values are. BuyAligned makes it easy to see where the companies you buy from send their political dollars — so you can decide which ones deserve yours.

Explore

About

Buy me a coffee

If BuyAligned has been useful, a small tip keeps it independent and ad-free.

Secure checkout via Base44 Payments. You can tip without an account.

This site reports publicly disclosed political-finance data. Inclusion of a company, candidate, committee, or transaction does not imply wrongdoing, endorsement, or a political position.