Civic influence accountable record system for source-backed relationships, organizations, people, funding, lobbying, roles, affiliations, documents, and claims.
Civic Influence Record defines a domain record system for representing source-backed civic influence structures as durable, inspectable records.
Civic Influence Record records:
- people, organizations, and roles
- funding, contribution, and lobbying records
- affiliations and policy documents
- source records and relationship records
- entity resolution records
- claims, interpretations, and reports
Civic Influence Record does not assert causation, endorsement, control, ideological agreement, coordination, legitimacy, or wrongdoing by default.
The purpose of Civic Influence Record is to provide a durable record structure for inspecting influence-relevant relationships without collapsing them into stronger claims.
Civic Influence Record defines constraints on:
- organization records
- person records
- source records
- relationship records
- entity resolution records
- funding and contribution records
- lobbying and public filing references
- policy document records
- claim and interpretation records
- rendered influence reports
Civic Influence Record helps protect civic information systems from specific failure modes:
- treating association as endorsement
- treating employment as corporate action
- treating funding as authorship
- treating grants as control
- treating lobbying as policy success
- treating shared personnel as unified intent
- treating network proximity as causation
- treating entity resolution as ideological agreement
Current versions are pre-v1. The contract is being co-developed with its implementations and verifiers; dependencies track main during this phase. Versioned releases will follow once the contract stabilizes.
v1 will commit to:
- the civic influence record model shape
- entity resolution evidence requirements
- relationship typing requirements
- time-bound recording conventions
v1 does not claim closure over influence, causation, ideology, coordination, endorsement, or control.
Extension policy applies once v1 stabilizes. Until then, the contract is in active development and changes occur on main. Extension is permitted under a new version of the record model or through declared profile extensions.
Any extension MUST:
- preserve conformance with the Accountable Record contract
- preserve source traceability
- preserve the distinction between relationship and inference
- preserve the distinction between entity resolution and substantive agreement
- preserve the distinction between funding, influence, authorship, and control
- declare prohibited inferences for new record types or fields
- be explicit, traceable, and verifiable
This system defines:
- civic influence accountable records
- person and organization records
- source-backed relationship records
- entity resolution records
- funding, contribution, lobbying, and public filing references
- policy document and claim records
- interpretation records
- human-readable civic influence reports
- export bundles for verification
This system does NOT define:
- causation
- endorsement
- control
- ideological agreement
- wrongdoing
- public influence scoring
- legal or ethical judgment
- recommendation or decision logic
- source data hosting
- automatic entity truth
- replacements for source databases or public filing systems
- Civic Influence Record implements the Accountable Record contract for civic influence materials.
- Other implementations could organize civic influence records differently while still satisfying the contract.
- Civic Influence Record may consume data from sources such as FEC, LDA.gov, USAspending, ProPublica Nonprofit Explorer, OpenCorporates, OpenSecrets, and LittleSis, and from public campaign finance, lobbying, nonprofit, corporate, government spending, and public filing records.
- Civic Influence Record does not replace those sources.
- Civic Influence Record produces export bundles that may be checked by
se-verification-civic-influence-record-spec. - SE verification checks whether Civic Influence Record preserves SE-relevant distinctions without determining causation, endorsement, control, or judgment.
Civic Influence Record records source-backed civic relationships, not causation or judgment.
A civic influence record may show that a person, organization, filing, funding record, lobbying report, policy document, or relationship was recorded from a source. It does not assert that the relationship caused an outcome, demonstrated control, established endorsement, or resolved disagreement about influence.
Civic Influence Record exists so that civic influence structures can remain inspectable across disagreement, reinterpretation, and time.
- README.md - Project overview
- DECISIONS.md - Founding design decisions
- RECORD_MODEL.md - Civic influence record model
- EXPORTS.md - Export bundle description
- ANNOTATIONS.md - Annotation standards
- LICENSE - Licensing terms
- CITATION.cff - Citation metadata
- CHANGELOG.md - Version history
- data/examples - Example civic influence records
- data/records - Record fixtures
- data/exports - Verification-ready exports
Show command reference
Open a machine terminal where you want the project:
git clone https://github.com/structural-explainability/civic-influence-record-spec
cd civic-influence-record-spec
code .uv self update
uv python pin 3.15
uv sync --extra dev --extra docs --upgrade
# install git hooks once per clone
uvx pre-commit install
# autofix and manual fix issues
git add -A
uvx pre-commit run --all-files
# repeat if changes were made
git add -A
uvx pre-commit run --all-files
# validate Markdown sources and generated specification artifacts
uv run se-validate
# generate machine-readable specification artifacts under data/spec/
uv run se-ref-export
# check that generated data/spec/ artifacts are current
uv run se-ref-export --check
# validate reference artifacts and registry consistency
uv run se-ref-validate
# run strict validation, including all standard source and export checks
uv run se-validate --strict
# do chores
uv run python -m pyright
uv run python -m pytest
# save progress
git add -A
git commit -m "update"
git push -u origin main