Financial analysis methodology
How filings were selected and reconciled, how records are linked, and what the figures do and do not include.
Data as of 2026-09-19. Figures cover campaign statements for periods through that date; coverage differs by committee.
Filing selection
Filing selection — the highest amendment per filing, and the Form 497 post-period rule — is performed once, in an earlier processing step. These pages are computed only from that step's output and never re-read the raw NetFile exports.
A "filing" is one committee, one form type and one exact reporting period (committee ID, period start date and period end date) for Form 460, keyed across all schedule sheets and the Summary sheet together; a Form 497 report is keyed on the committee ID and the report number. Only the highest-amendment version of each filing is kept; every row of every superseded version is dropped. A Form 497 Part 1 row counts as a contribution only when its contribution date is strictly after the end date of the committee's latest kept Form 460; Part 2 rows are kept as outgoing information, never as incoming contributions.
Selection and accounting
Each selected filing is reconciled against its own Summary Page: monetary contributions are Summary/F460 line 1, reconciled to Schedule A itemized transactions plus its unitemized summary line. This reported measure can include loan forgiveness and is not necessarily entirely new cash. New loans and in-kind support remain separate. Payments use Summary/F460 line 6, reconciled to Schedule E itemized, unitemized and interest components. Ending cash comes directly from the latest summary. Current-year totals also reconcile to the latest reported year-to-date amounts.
Schedule G subvendor and Schedule D support detail are informational and never added again to payments. A Schedule D record is not assumed to be an independent expenditure merely because of its schedule. Loan balances and unpaid bills are amounts owed at a point in time, not sums across periods. The historical Protect Salinas accrued-expense mismatch remains withheld from affected balance analysis (see Standing rules below).
Form 497 receipts count separately only when dated after the committee's latest retained full statement. Reports without a full-statement cutoff cannot establish additional receipts.
Each profile states the coverage dates of the exports overall and of the committees it covers. Download dates are unknown; no assertion is made that the City's NetFile exports used here include every filing currently available online. Missing candidate matches mean unavailable, not zero.
Connections and privacy
People are linked only using the same normalized full name plus reported city and postal code, or substantive employer and occupation. Generic employment descriptions are insufficient. Organizations use mechanical spelling normalization and explicit committee IDs. Committee-to-committee links require an explicit ID or a unique mechanically normalized committee name. No fuzzy merges, ownership, family relationships, coordination, or donor motives are inferred. Sender and recipient reports are not added together as new money.
Individual donors are named only when their aggregate contributions meet this site's disclosure threshold for that recipient and year. Smaller donors are pooled; their identifying details are excluded from public transaction rows. Street addresses, email addresses and phone numbers are excluded. No private donors were researched online. Different spellings without sufficient identity evidence remain separate. In the downloadable data, the identity-evidence column lists the bases on which a person's records were linked anywhere in the exports, not only the records at the recipient shown.
In the downloadable data, transaction references list the committee, filing and version, transaction ID, and source workbook, sheet and row. Candidate associations use explicit committee candidate/election names and the official candidate roster; cover-statement verification remains pending. Profiles cover all discovered committees, including historical committees and committees without a current full statement.
Official interpretation sources
- California Secretary of State CAL format ↗: parent forms, schedule fields, amendment and transaction identifiers.
- FPPC Form 460 ↗: summary lines and schedule accounting.
- City candidate roster ↗: candidate names and offices.
Export completeness, unmatched filings and the historical accrued-expense reconciliation remain incomplete.
Presentation
Amounts on these pages and in the explorer are rounded to whole dollars (half-up); the downloadable data keeps exact integer cents. Ranking records include both beginning and ending coverage dates and reported Summary line 19 outstanding debt. Itemized Schedule F ending balances are labeled itemized unpaid bills, because unitemized obligations need not appear in transaction rows. Line 19 includes loans and accrued expenses and must not be added to those balances.
Missing schedule-summary components remain explicitly unavailable. For committee 1475742, absent A/C/E components have no corresponding schedule rows and the relevant F460 summary explicitly reports zero. Those parent-summary zeroes establish the headline figures; the derivation is recorded once per unavailable component, rather than treating absent records as reported zeroes. Missing required values without this evidence stop processing.
A separate review checks summary availability and Schedule F row identities. One historical Protect Salinas Schedule F transaction, on the 2025-01-01 to 2025-06-30 statement, reports a beginning balance of $3,000, $0 incurred, -$1,000 paid and a $0 ending balance, which leaves a row-balance discrepancy of about $4,000. This matches the existing net-change discrepancy; no correction is assumed. Affected historical balance conclusions remain withheld.
Standing rules
- Contributor and payee names are shown as reported; beyond the mechanical normalization described above, no name is altered, merged or dropped.
- Committee 1470558, statement 2025-01-01 to 2025-06-30, one Schedule F row: its unpaid-bill and line 19 balances stay withheld; the unresolved-check note appears only on committee 1470558's page.
- Candidates without a matched committee (Hezekiah Gonzalez, Tony Barrera, Jose Guerra, Brenton Bagley) are shown as unavailable, never zero.
- Individual naming: an individual contributor is named only if their total to one committee in one calendar year (monetary + in-kind + eligible later Form 497 receipts) is $500 or more; otherwise pooled, and pooled amounts stay in every total. A record naming several individuals jointly is split equally among them, so each named person must reach $500 on that equal share. Individual payees are named. The joint $500 Schedule A line to committee 1490549 stays withheld (pooled, names withheld).
- The as-of date is the latest statement end date across kept filings, computed from the data (currently 2026-09-19), and stated on every page.
Verification
Every figure was recomputed independently from the filings and checked before publication.
Download the data
The tables behind these pages, as CSV files (UTF-8, comma-separated, one header row). Each file keeps the exact values of the verified analysis.
- committees-2026.csv: one row per committee with a 2026 full statement: the figures in the results table and the funding breakdown.
- candidates-2026.csv: one row per candidate with a matched committee: the figures in the candidate table.
- statements.csv: one row per retained full statement (Form 460) of every committee: period totals, balances and the reconciliation result.
- donors-and-payees.csv: one row per reported party, committee, year and role: contributors, payees, lenders, in-kind support, later receipts, subvendors and other increases to cash, with pooled rows where names are withheld.
- shared-contributors.csv: one row per contributor reported by more than one committee in the same year, with each recipient.
How to read the files
- Columns ending in "_cents" hold amounts in cents: divide by 100 to get dollars. The pages round to whole dollars; the files keep exact cents.
- Dates use the ISO format, year-month-day.
- In statements.csv, "withheld" marks the unpaid-bill, accrued-expense and outstanding-debt balances of committee 1470558 for 2025-01-01 to 2025-06-30, because that statement did not reconcile. They are withheld, not zero.
- A pooled row ("AGGREGATED_PRIVATE_INDIVIDUALS" in party_id) combines individual contributors or lenders below the disclosure threshold for one committee and year. Their names are withheld; their amounts stay in every total.
- On pooled “names withheld” rows, the source_refs column reads withheld.
- Measures stay separate in the files too: contributions, later receipts, loans, in-kind support, payments, cash, unpaid bills and debt are never added together.
Columns
| Column | File | Meaning |
|---|---|---|
| name, office | candidates-2026.csv | Candidate name and office as listed on the City candidate roster. |
| Filer_ID | committees-2026.csv, candidates-2026.csv, statements.csv, donors-and-payees.csv | Committee ID, as assigned in the City records. |
| names, latest_name | committees-2026.csv, candidates-2026.csv | Every committee name reported under the ID (a JSON list), and the name on its latest statement. |
| from_date, thru_date | committees-2026.csv, candidates-2026.csv, statements.csv | Start and end of the statement coverage. |
| filing_id | statements.csv | Committee ID, form, period start and period end, joined by vertical bars. |
| version, filed_date | statements.csv | Amendment number of the retained version (000 is the original) and the date it was filed. |
| monetary_cents | committees-2026.csv, candidates-2026.csv, statements.csv | Monetary contributions (line 1), including unitemized amounts. |
| itemized_cents, unitemized_cents | committees-2026.csv, candidates-2026.csv, statements.csv | Itemized and unitemized monetary contributions. |
| reported_monetary_ytd_cents, reported_payments_ytd_cents | statements.csv | Calendar-year-to-date contributions and payments as reported on the statement. |
| reported_total_contributions_cents, total_expenditures_cents | statements.csv | Total contributions and total expenditures as reported on the statement. |
| in_kind_cents | committees-2026.csv, candidates-2026.csv, statements.csv | In-kind (non-monetary) contributions, kept separate from monetary contributions. |
| loans_received_cents | committees-2026.csv, candidates-2026.csv, statements.csv | New loans received (Schedule B1), gross. |
| loans_net_change_cents | committees-2026.csv, candidates-2026.csv, statements.csv | Loans received net of repayments and forgiveness (line 2). |
| payments_cents | committees-2026.csv, candidates-2026.csv, statements.csv | Payments made (Schedule E summary), including unitemized payments and loan interest. |
| itemized_payments_cents | committees-2026.csv, candidates-2026.csv, statements.csv | Itemized payments. |
| unitemized_payments_cents, loan_interest_paid_cents | statements.csv | Unitemized payments and loan interest paid. |
| cash_cents | committees-2026.csv, candidates-2026.csv, statements.csv | Ending cash (line 16) at the end of the coverage. |
| unpaid_bills_cents | committees-2026.csv, candidates-2026.csv, statements.csv | Itemized unpaid bills (Schedule F ending balances) at the end of the coverage. |
| net_accrued_cents | statements.csv | Accrued expenses (unpaid bills) reported on line 9 for the period. |
| outstanding_debts_cents | committees-2026.csv, candidates-2026.csv, statements.csv | Total outstanding debt (line 19), which includes loans and unpaid bills. |
| missing_component_basis | statements.csv | Schedules with no rows whose zero is established by the Summary Page (blank when none). |
| status, failed_checks | statements.csv | Reconciliation result: "RECONCILED", or "CHECK_FAILED" with the check that did not reconcile. |
| monetary_ytd_match, payments_ytd_match | committees-2026.csv, candidates-2026.csv | "True" when the 2026 totals match the latest reported year-to-date amounts. |
| late_post_period_cents | committees-2026.csv, candidates-2026.csv | Later receipts: eligible Form 497 contributions dated after the latest full statement, kept separate. |
| individual_itemized_cents, organization_itemized_cents | committees-2026.csv, candidates-2026.csv | Itemized monetary contributions from individuals, and from organizations and committees. |
| salinas_itemized_cents, outside_itemized_cents, unknown_itemized_cents | committees-2026.csv, candidates-2026.csv | Itemized monetary contributions by reported postal code: Salinas, other, and unknown. |
| itemized_contributor_groups | committees-2026.csv, candidates-2026.csv | Number of matched contributor groups among itemized contributions. |
| top5_itemized_cents, top5_share_basis_points | committees-2026.csv, candidates-2026.csv | Itemized contributions from the five largest matched contributor groups, and their share of itemized contributions in hundredths of a percent (divide by 100 for a percentage). |
| year | donors-and-payees.csv, shared-contributors.csv | Calendar year of the records. |
| role | donors-and-payees.csv | What the row records: "monetary_contribution", "payment", "loan_received", "in_kind", "late_receipt", "subvendor_detail", "misc_cash_increase", "unpaid_balance", "support_detail" or "late_outgoing_report". |
| party_id, party_name | donors-and-payees.csv, shared-contributors.csv | The matched party and its name as reported; "AGGREGATED_PRIVATE_INDIVIDUALS" marks a pooled row. |
| reported_entity_codes | donors-and-payees.csv | Entity codes reported on the filings, such as "IND" for an individual. |
| amount_cents, record_count | donors-and-payees.csv | Amount for the row and the number of filing records in it. |
| first_date, last_date | donors-and-payees.csv | Earliest and latest transaction dates in the row. |
| identity_evidence | donors-and-payees.csv | How records were matched to one party: "person_city_zip" (same full name, city and postal code), "person_employer_occupation" (same full name, employer and occupation), "organization_mechanical" (same organization name after spelling normalization), "committee_id" (same committee ID), "NO_MERGE_RECORD_SPECIFIC" (records not merged) or "PRIVACY_AGGREGATE" (pooled row). |
| reported_committee_ids | donors-and-payees.csv | Committee IDs reported for the party, when it is a committee. |
| source_refs | donors-and-payees.csv, shared-contributors.csv | Where each record comes from: committee, filing, version, transaction ID and the row in the export workbook. |
| recipient_count, total_cents, recipients | shared-contributors.csv | Number of recipient committees, the sum of the listed amounts, and each recipient committee ID with its amount (a JSON list). |
Sources and method
Figures come from campaign statements that committees filed with the City of Salinas, as exported from its NetFile portal. Each measure is kept separate, and amounts are rounded to whole dollars.
Download the data ↓ How to read these numbers → City of Salinas NetFile portal ↗