Vector Intelligence Campaign Engine build UNVERIFIED
Save issue
Planning
Field Execution
• Organizer log • Operations hub
Active scenario
(name is saved in snapshot exports)
Active scenario: baseline

Scenario comparison

No comparison loaded.
Select a scenario to compare against baseline.
Stage 1 Set up

Set race context, timing, and operating mode. This frame drives all downstream vote, production, and risk calculations.

🎓Playbook — Set up▾
What this stage models

Sets the planning context. Templates load a realistic starting posture by office and contest context, then you override where local evidence is stronger. Election date drives timeline feasibility in later stages.

Scenario name → saved with export
Template selection → default planning posture
Election date → weeks remaining auto-calc
Mode → persuasion vs turnout emphasis
Common mistakes
  • Using "U.S. House / Congressional" for a governor race and reading the map like a district contest
  • Leaving election date blank then forgetting to set weeks remaining manually
  • Setting mode to Late-start before you know your capacity constraints
A plan is only meaningful relative to time constraints. Set election date first — everything else scales from it.

Race setup

Set office-aware race context, election date, weeks remaining, and mode. This establishes the planning context for all downstream math.
What this is Templates set planning defaults and guidance language. They do not change core math. Use them to start from a realistic race context, then override where local evidence justifies it.
Why office level matters Office level shapes how wide uncertainty should be, how much persuasion is realistically available, how much vote may arrive before Election Day, and how cautiously leadership should read the model. A statewide race is not just a bigger district race.
Why it matters Timeline affects later production planning. In early use, treat as reference only.
If unsure Leave blank; you can set it later when production planning is added.
What this changes In later phases, persuasion-first emphasizes persuasion volume before GOTV surge.

Universe

Define the size of the electorate you’re modeling (registration or expected voters). Be consistent with turnout assumptions.
How it’s used Turnout votes = U × turnout %. Persuasion universe = U × persuasion %.
How to choose Use Registered for broad planning, Active for tighter turnout universes.
Good practice Record file/date/source so imports and exports can be traced later.

Ballot & persuasion baseline

Name Support %
Undecided
Total —
Best practice Stress-test against you. Don’t rely on a friendly break.
Must sum to 100% across candidates.

Turnout baseline (recent comparable cycles)

Use two recent comparable cycles to set a baseline and uncertainty band. This drives volatility in simulation.
If unsure Pick the closest two cycles by election type and district boundaries.
Typical ±3 to ±5 is common. Keep it modest unless a unique cycle is expected.
Expected turnout %
—
Best / Worst turnout %
—
Votes per 1% turnout
—
Stage 9 Checks & guardrails

Validate inputs, inspect assumptions snapshot, and review guardrails. The most dangerous failures are silent ones.

🎓Playbook — Data Checks & Guardrails▾
What this stage does

Guardrails catch invalid states and "looks plausible but impossible" plans before you share them with a client or campaign. The assumptions snapshot freezes key parameters so you can detect drift between runs.

When to use it
  • Before every client presentation — run checks first
  • When results look surprisingly good — check guardrails
  • After importing a scenario from another session

Status stack location

Canonical status now lives in the right rail to prevent drift and duplicate headlines. Use this stage as a review workflow, not a second output surface.
Outcome
Win path — expected
Turnout votes, win threshold, projected votes, persuasion need
Fragility
Stress + Monte Carlo
Stress test summary, probability, margin band, volatility
Integrity
Validation + guardrails
Input validation, assumptions snapshot, and guardrails

Census data (phase 1)

Census-only flow: select geography context, fetch ACS rows from API, multi-select GEO units, and review aggregate demographics.
Resolution supports place, tract, block group, congressional district, and state legislative district scopes.
County is required for tract/block group. Place is used only for place resolution. District resolutions are state-only.
Ready.
0 selected of 0 GEOs. 0 rows loaded.
MetricValue
No ACS rows loaded.
Advisory signalValue
Load ACS rows for selected GEO units to compute advisory indices.
Assumption advisory pending.
Advisory signal guide
All advisory indices are centered at 1.00 baseline for the selected GEO footprint.
SignalWhat it meansLowModerateHigh
Field speed indexExpected canvassing throughput in this footprint.≤ 0.920.93-1.07≥ 1.08
Persuasion environmentStructural persuasion potential from ACS profile mix.≤ 0.920.93-1.07≥ 1.08
Turnout elasticityExpected turnout responsiveness to GOTV pressure.≤ 0.920.93-1.07≥ 1.08
Field difficultyOperational friction and organizer load for contact execution.≤ 0.92 (easier)0.93-1.07≥ 1.08 (harder)
Long/super commute shareHigher shares imply weaker weekday contact availability and tighter canvass windows.≤ 12%13-27%≥ 28%
No-internet shareHigher shares reduce digital follow-up and reminder coverage.≤ 8%9-19%≥ 20%
Poverty shareHigher shares can indicate larger turnout-opportunity upside with higher execution risk.≤ 10%11-17%≥ 18%
Advisory doors/hour multiplierMultiplier applied to blended APH to estimate environment-adjusted APH.< 0.900.90-1.10> 1.10
Required APH to hit goalRequired attempts per organizer hour to hit current need votes under current rates and weeks.Computed from your plan inputs
APH feasibility checkCompares required APH vs environment-adjusted APH.> 0% shortfall-10% to 0%≤ -10% buffer

Targeting lab

Rank GEO units by model-driven target score. This is a derived layer and does not modify core scenario math.
House model weights (used when Target model = House Model v1). Weights auto-normalize on run.
Targeting not run yet.
Load ACS rows, then run targeting.
Rank Geography Score Votes/hr Reason Flags
Run targeting to generate ranked GEOs.
No GEO selected. Select one or more GEO units to aggregate.
Race footprint not set.
Assumption provenance not set.
Footprint capacity: not set.
Census-adjusted assumptions are OFF.
Election CSV format guide
Keep election import separate from Census assumptions. Use strict CSV schema and dry-run validation before commit.
Election CSV schema guide loading.
Required columnsRule
state_fips, county_fips2-digit and 3-digit FIPS strings.
election_dateYYYY-MM-DD.
office, district_idCanonical office + district labels.
precinct_idStable precinct key per county.
candidate + votesLong format: one row per candidate with non-negative integer votes.
candidate name columnsWide format: each candidate is a column header and each cell is that candidate's vote total in the precinct.
Validation behaviorDry-run fails loud on required-field/type errors and reports all warnings before ingest.
Schema: election_results_csv.v1. Start with a template, then run dry-run parse before any import.
No dry-run run yet.
No normalized preview rows.
PrecinctCandidateVotesTotal precinct votes
No dry-run preview yet.
No saved selection sets.
No fetch yet.
Map idle. Select GEO units, then load boundaries.
No VTD ZIP loaded. VTD QA overlay source is TIGERweb.

Workflow governance

Lock scenario edits for client-safe reviews and require note/evidence on critical assumption changes.
Scenario lock OFF.
Governance controls healthy.

Benchmark catalog

Define empirical ranges for critical inputs by benchmark scope. These ranges only generate warnings; they never alter deterministic or Monte Carlo outputs.
0 benchmark entries configured.
Ready.
Reference Scope Range Warn/Hard Source Action
No benchmark entries configured.

Evidence linkage

Resolve governance gaps here: select a missing audit item, attach supporting evidence, and include a short note when the item requires documentation.
Workflow: 1) Select critical edit 2) Add title/source/date (+ note when required) 3) Attach evidence.
0 critical assumption edit(s) missing evidence.
0 critical assumption edit(s) missing note.
Select an audit item, then attach evidence. Add a note when required.
Evidence title Source Captured Ref ID
No evidence records yet.

Calibration source brief

Generate a client-ready calibration note from current benchmark catalog, evidence coverage, and expert toggles.
No models yet. Add a default model or import JSON to enable this selector.
Capacity decay OFF.
No correlation models configured.
0 scenarios configured.
No shock scenarios configured.
No calibration brief generated yet.

Feedback loop

Capture rolling daily-log metrics and generate metadata-only recommendations. No core math is modified automatically.
0 observed metric entries captured.
0 active drift recommendations.
No observed metrics captured yet.
No drift recommendations generated yet.
0 what-if requests parsed.
No what-if requests parsed yet.

Review workflow

Recommended sequence before decisions or exports:
  1. Check right-rail Input validation first.
  2. Confirm assumptions snapshot matches scenario intent.
  3. Review guardrails and stress summary for feasibility risks.
  4. Run Self-Test before final export or scenario handoff.

Why this changed

This removes duplicate dynamic outputs in center panels so one number has one canonical place. It improves auditability and prevents contradictory status reads.
Days till E-Day
Countdown — —
Election date—
Win path — expected
Turnout votes — —
Win threshold —
Your projected votes — —
Persuasion votes needed — —
Early & election day split
Early votes (expected)—
Election day votes—
Note—
Persuasion universe—
Universe check—
Key assumptions
Data checks & guardrails
Stress test summary
—
Monte Carlo win probability
— simulated
—
P10: — Median: — P90: —
—  |  —
Results may be stale — re-run Monte Carlo
Risk framing
— —
— —
Margin band—
Volatility—
Input validation
    Metadata
    —
    Diagnostics
    Recent errors (last 20, this session only)