Source document

scripts/loaders/miami/_survey-score.ts

Served verbatim from the project repository. Internal working document conventions apply: documents may reference file paths, branch names, and findings-ledger anchors from the repo.

/** Favorable response share. An unknown answer is not favorable on either
 * wording direction. Never infer disagreement as the complement of agreement. */
export function favorableSurveyShare(row: { pct_agree?: string; pct_dk?: string; pct_disagree?: string }, reverse: boolean): number | null {
  const read = (value: string | undefined) => value === undefined || value.trim() === "" ? null : Number(value);
  const agree = read(row.pct_agree), unknown = read(row.pct_dk), disagree = read(row.pct_disagree);
  // Protect loads from older parsed files that retain a publisher's empty profile.
  if (agree === 0 && unknown === 0 && disagree === 0) return null;
  const value = reverse ? disagree : agree;
  return value !== null && Number.isFinite(value) && value >= 0 && value <= 100 ? value : null;
}