{
 "name": "sakskartet-nordre-follo",
 "title": "Sakskartet Nordre Follo: avstemninger",
 "description": "Avstemningene i Nordre Follo kommunestyre og Nordre Follo formannskap, dekodet per person og parti. Ingenting er skrevet av KI, og filene har ingen innleggstekst (den er KI-behandlet talegjenkjenning og ligger bare på sidene, merket).",
 "homepage": "https://nordrefollo.sakskart.no/presse/",
 "version": "2026-10-22",
 "created": "2026-10-22",
 "licenses": [
  {
   "name": "CC-BY-4.0",
   "path": "https://creativecommons.org/licenses/by/4.0/deed.no",
   "title": "Creative Commons Navngivelse 4.0"
  }
 ],
 "sources": [
  {
   "title": "Nordre Follo kommunes møtearkiv",
   "path": "https://opengov.360online.com/Meetings/NORDREFOLLO"
  },
  {
   "title": "KommuneTV",
   "path": "https://nordrefollo.kommunetv.no"
  }
 ],
 "contributors": [
  {
   "title": "Sakskartet",
   "path": "https://nordrefollo.sakskart.no/om/",
   "role": "publisher"
  }
 ],
 "sakskartet": {
  "hva": "Beskrivelse av eksportfilene. Krediter slik: Kilde: Sakskartet (nordrefollo.sakskart.no), data fra Nordre Follo kommune og KommuneTV. CC BY 4.0.",
  "kommune": "Nordre Follo",
  "kommunenummer": "3207",
  "generert": "2026-10-22",
  "utgitt_av": "Sakskartet (nordrefollo.sakskart.no) — uavhengig og partinøytral tjeneste, ikke kommunens nettsted",
  "lisens": {
   "navn": "CC BY 4.0",
   "url": "https://creativecommons.org/licenses/by/4.0/deed.no",
   "spdx": "CC-BY-4.0",
   "kreditering": "Kilde: Sakskartet (nordrefollo.sakskart.no), data fra Nordre Follo kommune og KommuneTV. CC BY 4.0.",
   "merknad": "Protokoller og vedtak fra offentlig myndighet er uten opphavsrettslig vern (åndsverkloven § 14). Lisensen gjelder det Sakskartet selv har laget: sammenstillingen (dekodede stemmer, koblingen sak–avstemning–opptak) og filformatet (åndsverkloven § 24). Fritt å bruke, også kommersielt, med kreditering. For KommuneTVs opptak og tekster gjelder KommuneTVs egne vilkår."
  },
  "kilder": [
   {
    "hva": "Saksdokumenter og møteprotokoller",
    "fra": "Nordre Follo kommunes møtearkiv",
    "url": "https://opengov.360online.com/Meetings/NORDREFOLLO"
   },
   {
    "hva": "Stemmedata, talerlogg og opptak",
    "fra": "KommuneTV",
    "url": "https://nordrefollo.kommunetv.no",
    "dekning_fra": "2024-02-01"
   }
  ],
  "behandling": {
   "automatisk_strukturert": [
    "Stemmene er dekodet fra KommuneTVs stemmedata, der hver stemme bærer en talerid. Navnet bak id-en står for de fleste i KommuneTVs talerlogg (navn_sikkerhet = talerlogg). For en del vararepresentanter er koblingen utledet (utledet): en KI-assistert tolkning av fremmøtelister og stemmemønster, gjort i arkivarbeidet før dataene ble bygget og kontrollert mot protokollen der den navngir stemmetall (protokoll); ca. 6 % av de navngitte stemmene. Utledede koblinger kan være feil — sjekk protokollen før du siterer en enkelt stemme. Partiet er det representanten hadde på avstemningsdagen.",
    "Avstemningene er knyttet til sak med arkivsaksnummer og tittel; saker uten sikker kobling har tom sak_url.",
    "Utfallet er lest av KommuneTVs resultattekst («Vedtatt 13–0»). Mangler den, er det regnet av stemmetallene og merket i utfall_kilde.",
    "Partikodene er normalisert (kilden skriver «S» for Partiet Sentrum; her står det «PS»)."
   ],
   "ki_generert": "Ingen tekst i denne fila er skrevet eller oppsummert av en språkmodell (KI), og ingen felt er laget av en språkmodell når fila bygges. Kommer et KI-generert felt til, merkes det i selve feltet (navnet begynner med «ki_»), ikke bare her. Koblingen mellom KommuneTVs talerid og navn er håndkuratert i kildetreet; hvordan hver kobling er belagt, står i feltet navn_sikkerhet.",
   "ki_behandlet": "Innleggstekst (transkript) er automatisk teksting fra KommuneTV, det vil si maskinell talegjenkjenning (KI-behandlet) som ingen har kontrollert. Den er ikke sitatsikker. Eksportfilene for avstemninger inneholder ingen innleggstekst; der utdrag forekommer (sitatsjekk-blokkene på sidene), er de merket der de står."
  },
  "metode": "https://nordrefollo.sakskart.no/om/",
  "presse": "https://nordrefollo.sakskart.no/presse/",
  "rettelser": "https://nordrefollo.sakskart.no/om/#rettelser",
  "forbehold": [
   "Ytringstekstene er automatisk teksting (auto-teksting) og kan inneholde feil — KommuneTV-opptaket og møteprotokollen er de autoritative kildene. Direktesitater må aldri presenteres som eksakte.",
   "Egennavn i ytringstekst er upålitelige (auto-teksting) — talernavn kommer fra KommuneTVs talerlogg, ikke fra transkriptteksten.",
   "Tekstvinduet er typisk ±én setning upresist; kantene kan inneholde naboytringer — medietiden er den autoritative pekeren inn i opptaket.",
   "Lyd, tekst og voteringer dekker kommunestyrets og formannskapets møter fra og med februar 2024 (KommuneTV-arkivet starter 2024-02-01). Møtene 2020–2023 finnes kun som saksdokumenter i saksoversikten — arkivet er altså IKKE komplett for kommunestyret.",
   "For møtene 2024-05-29 og 2024-10-29 mangler talerlogg — innleggene derfra vises med «Ukjent taler».",
   "Voteringstallene kommer fra KommuneTV og kan avvike fra protokollen: avbrutte eller omtatte voteringer forekommer, og enkelte punktvoteringer mangler — møteprotokollen er den autoritative kilden for utfall.",
   "Enkelte stemmer kunne ikke knyttes til navn — de vises som «stemmer uten navn», og partifordelingen kan da mangle enkeltstemmer.",
   "Partiet ved en stemme er det representanten hadde PÅ VOTERINGSDATOEN, ikke dagens. Tallene per parti er frammøtte, ikke mandater — en vara teller under sitt eget parti, også når hun møter for noen fra et annet.",
   "Partikoden «PS» betyr Partiet Sentrum (kilden skriver «S»; her er det normalisert) — ikke SV, Senterpartiet («SP») eller «politisk sak» som i saksnummeret «PS 93/26».",
   "Fravær er implisitt: voteringene inneholder kun de som stemte — «stemte ikke» betyr ikke «mot»."
  ]
 },
 "resources": [
  {
   "name": "voteringer",
   "path": "https://nordrefollo.sakskart.no/data/nordre-follo/voteringer.csv",
   "title": "Alle avstemninger",
   "format": "csv",
   "mediatype": "text/csv",
   "encoding": "utf-8-sig",
   "dialect": {
    "delimiter": ",",
    "lineTerminator": "\r\n",
    "header": true
   },
   "schema": {
    "fields": [
     {
      "name": "votering_id",
      "type": "string",
      "description": "dato-organ-saksnummer-løpenummer i møtet. Stabil så lenge KommuneTVs data for møtet ikke endres"
     },
     {
      "name": "dato",
      "type": "date",
      "description": "møtedato (ÅÅÅÅ-MM-DD)"
     },
     {
      "name": "organ",
      "type": "string",
      "description": "organet avstemningen skjedde i (kommunestyret eller formannskapet)"
     },
     {
      "name": "saksnummer",
      "type": "string",
      "description": "saksnummer i møtet slik KommuneTV fører det. ⚠ Talerlogg og protokoll har ulike nummerserier: koble på sak_url, ikke på (dato, saksnummer)"
     },
     {
      "name": "sakstittel",
      "type": "string",
      "description": "sakens tittel fra KommuneTV"
     },
     {
      "name": "forslag",
      "type": "string",
      "description": "forslagsteksten som ble stemt over, i full lengde slik kilden har den. Tom når kilden ikke har tekst — da står forslaget i protokollen"
     },
     {
      "name": "avstemning_om_hele_saken",
      "type": "boolean",
      "trueValues": [
       "ja"
      ],
      "falseValues": [
       "nei"
      ],
      "description": "ja = avstemningen om selve innstillingen; nei = endrings- eller tilleggsforslag"
     },
     {
      "name": "resultattekst",
      "type": "string",
      "description": "KommuneTVs egen resultattekst, ordrett"
     },
     {
      "name": "utfall",
      "type": "string",
      "description": "vedtatt / falt / likt / ingen_stemmer_registrert (for + mot = 0; resultatteksten står i resultattekst) — for FORSLAGET. «mot» betyr mot forslaget, ikke nødvendigvis mot saken"
     },
     {
      "name": "utfall_kilde",
      "type": "string",
      "description": "kommunetv_resultattekst eller regnet_av_stemmetall (når resultatteksten mangler)"
     },
     {
      "name": "for",
      "type": "integer",
      "description": "stemmer for, inkludert stemmer uten navn"
     },
     {
      "name": "mot",
      "type": "integer",
      "description": "stemmer mot, inkludert stemmer uten navn"
     },
     {
      "name": "stemmer_uten_navn",
      "type": "integer",
      "description": "stemmer KommuneTV ikke har knyttet til et navn"
     },
     {
      "name": "plasser_i_organet",
      "type": "integer",
      "description": "antall plasser i organet (47 i kommunestyret, 13 i formannskapet)"
     },
     {
      "name": "ikke_registrert",
      "type": "integer",
      "description": "plasser − for − mot: ingen registrert stemme. Er IKKE «mot» — kan være fravær eller manglende registrering"
     },
     {
      "name": "personstemmer",
      "type": "boolean",
      "trueValues": [
       "ja"
      ],
      "falseValues": [
       "nei"
      ],
      "description": "ja = navnene finnes (se stemmer.csv, med navn_sikkerhet per stemme)"
     },
     {
      "name": "sak_url",
      "type": "string",
      "description": "sakssiden hos Sakskartet; tom når koblingen ikke er sikker"
     },
     {
      "name": "opptak_url",
      "type": "string",
      "description": "møtet hos KommuneTV. Spilleren tar ikke tidskode i adressen"
     },
     {
      "name": "opptak_tilgjengelig",
      "type": "boolean",
      "trueValues": [
       "ja"
      ],
      "falseValues": [
       "nei"
      ],
      "description": "nei = KommuneTV har tatt ned opptaket; avstemningen sto like fullt"
     },
     {
      "name": "AP_for",
      "type": "integer",
      "description": "Arbeiderpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "AP_mot",
      "type": "integer",
      "description": "Arbeiderpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "FRP_for",
      "type": "integer",
      "description": "Fremskrittspartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "FRP_mot",
      "type": "integer",
      "description": "Fremskrittspartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "H_for",
      "type": "integer",
      "description": "Høyre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "H_mot",
      "type": "integer",
      "description": "Høyre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "KRF_for",
      "type": "integer",
      "description": "Kristelig Folkeparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "KRF_mot",
      "type": "integer",
      "description": "Kristelig Folkeparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "MDG_for",
      "type": "integer",
      "description": "Miljøpartiet De Grønne: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "MDG_mot",
      "type": "integer",
      "description": "Miljøpartiet De Grønne: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PS_for",
      "type": "integer",
      "description": "Partiet Sentrum: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PS_mot",
      "type": "integer",
      "description": "Partiet Sentrum: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PP_for",
      "type": "integer",
      "description": "Pensjonistpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PP_mot",
      "type": "integer",
      "description": "Pensjonistpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "R_for",
      "type": "integer",
      "description": "Rødt: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "R_mot",
      "type": "integer",
      "description": "Rødt: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SP_for",
      "type": "integer",
      "description": "Senterpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SP_mot",
      "type": "integer",
      "description": "Senterpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SV_for",
      "type": "integer",
      "description": "Sosialistisk Venstreparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SV_mot",
      "type": "integer",
      "description": "Sosialistisk Venstreparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "V_for",
      "type": "integer",
      "description": "Venstre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "V_mot",
      "type": "integer",
      "description": "Venstre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     }
    ],
    "primaryKey": "votering_id"
   }
  },
  {
   "name": "voteringer-2024",
   "path": "https://nordrefollo.sakskart.no/data/nordre-follo/voteringer-2024.csv",
   "title": "Avstemninger, år 2024",
   "format": "csv",
   "mediatype": "text/csv",
   "encoding": "utf-8-sig",
   "dialect": {
    "delimiter": ",",
    "lineTerminator": "\r\n",
    "header": true
   },
   "schema": {
    "fields": [
     {
      "name": "votering_id",
      "type": "string",
      "description": "dato-organ-saksnummer-løpenummer i møtet. Stabil så lenge KommuneTVs data for møtet ikke endres"
     },
     {
      "name": "dato",
      "type": "date",
      "description": "møtedato (ÅÅÅÅ-MM-DD)"
     },
     {
      "name": "organ",
      "type": "string",
      "description": "organet avstemningen skjedde i (kommunestyret eller formannskapet)"
     },
     {
      "name": "saksnummer",
      "type": "string",
      "description": "saksnummer i møtet slik KommuneTV fører det. ⚠ Talerlogg og protokoll har ulike nummerserier: koble på sak_url, ikke på (dato, saksnummer)"
     },
     {
      "name": "sakstittel",
      "type": "string",
      "description": "sakens tittel fra KommuneTV"
     },
     {
      "name": "forslag",
      "type": "string",
      "description": "forslagsteksten som ble stemt over, i full lengde slik kilden har den. Tom når kilden ikke har tekst — da står forslaget i protokollen"
     },
     {
      "name": "avstemning_om_hele_saken",
      "type": "boolean",
      "trueValues": [
       "ja"
      ],
      "falseValues": [
       "nei"
      ],
      "description": "ja = avstemningen om selve innstillingen; nei = endrings- eller tilleggsforslag"
     },
     {
      "name": "resultattekst",
      "type": "string",
      "description": "KommuneTVs egen resultattekst, ordrett"
     },
     {
      "name": "utfall",
      "type": "string",
      "description": "vedtatt / falt / likt / ingen_stemmer_registrert (for + mot = 0; resultatteksten står i resultattekst) — for FORSLAGET. «mot» betyr mot forslaget, ikke nødvendigvis mot saken"
     },
     {
      "name": "utfall_kilde",
      "type": "string",
      "description": "kommunetv_resultattekst eller regnet_av_stemmetall (når resultatteksten mangler)"
     },
     {
      "name": "for",
      "type": "integer",
      "description": "stemmer for, inkludert stemmer uten navn"
     },
     {
      "name": "mot",
      "type": "integer",
      "description": "stemmer mot, inkludert stemmer uten navn"
     },
     {
      "name": "stemmer_uten_navn",
      "type": "integer",
      "description": "stemmer KommuneTV ikke har knyttet til et navn"
     },
     {
      "name": "plasser_i_organet",
      "type": "integer",
      "description": "antall plasser i organet (47 i kommunestyret, 13 i formannskapet)"
     },
     {
      "name": "ikke_registrert",
      "type": "integer",
      "description": "plasser − for − mot: ingen registrert stemme. Er IKKE «mot» — kan være fravær eller manglende registrering"
     },
     {
      "name": "personstemmer",
      "type": "boolean",
      "trueValues": [
       "ja"
      ],
      "falseValues": [
       "nei"
      ],
      "description": "ja = navnene finnes (se stemmer.csv, med navn_sikkerhet per stemme)"
     },
     {
      "name": "sak_url",
      "type": "string",
      "description": "sakssiden hos Sakskartet; tom når koblingen ikke er sikker"
     },
     {
      "name": "opptak_url",
      "type": "string",
      "description": "møtet hos KommuneTV. Spilleren tar ikke tidskode i adressen"
     },
     {
      "name": "opptak_tilgjengelig",
      "type": "boolean",
      "trueValues": [
       "ja"
      ],
      "falseValues": [
       "nei"
      ],
      "description": "nei = KommuneTV har tatt ned opptaket; avstemningen sto like fullt"
     },
     {
      "name": "AP_for",
      "type": "integer",
      "description": "Arbeiderpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "AP_mot",
      "type": "integer",
      "description": "Arbeiderpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "FRP_for",
      "type": "integer",
      "description": "Fremskrittspartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "FRP_mot",
      "type": "integer",
      "description": "Fremskrittspartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "H_for",
      "type": "integer",
      "description": "Høyre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "H_mot",
      "type": "integer",
      "description": "Høyre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "KRF_for",
      "type": "integer",
      "description": "Kristelig Folkeparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "KRF_mot",
      "type": "integer",
      "description": "Kristelig Folkeparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "MDG_for",
      "type": "integer",
      "description": "Miljøpartiet De Grønne: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "MDG_mot",
      "type": "integer",
      "description": "Miljøpartiet De Grønne: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PS_for",
      "type": "integer",
      "description": "Partiet Sentrum: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PS_mot",
      "type": "integer",
      "description": "Partiet Sentrum: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PP_for",
      "type": "integer",
      "description": "Pensjonistpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PP_mot",
      "type": "integer",
      "description": "Pensjonistpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "R_for",
      "type": "integer",
      "description": "Rødt: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "R_mot",
      "type": "integer",
      "description": "Rødt: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SP_for",
      "type": "integer",
      "description": "Senterpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SP_mot",
      "type": "integer",
      "description": "Senterpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SV_for",
      "type": "integer",
      "description": "Sosialistisk Venstreparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SV_mot",
      "type": "integer",
      "description": "Sosialistisk Venstreparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "V_for",
      "type": "integer",
      "description": "Venstre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "V_mot",
      "type": "integer",
      "description": "Venstre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     }
    ],
    "primaryKey": "votering_id"
   }
  },
  {
   "name": "voteringer-2025",
   "path": "https://nordrefollo.sakskart.no/data/nordre-follo/voteringer-2025.csv",
   "title": "Avstemninger, år 2025",
   "format": "csv",
   "mediatype": "text/csv",
   "encoding": "utf-8-sig",
   "dialect": {
    "delimiter": ",",
    "lineTerminator": "\r\n",
    "header": true
   },
   "schema": {
    "fields": [
     {
      "name": "votering_id",
      "type": "string",
      "description": "dato-organ-saksnummer-løpenummer i møtet. Stabil så lenge KommuneTVs data for møtet ikke endres"
     },
     {
      "name": "dato",
      "type": "date",
      "description": "møtedato (ÅÅÅÅ-MM-DD)"
     },
     {
      "name": "organ",
      "type": "string",
      "description": "organet avstemningen skjedde i (kommunestyret eller formannskapet)"
     },
     {
      "name": "saksnummer",
      "type": "string",
      "description": "saksnummer i møtet slik KommuneTV fører det. ⚠ Talerlogg og protokoll har ulike nummerserier: koble på sak_url, ikke på (dato, saksnummer)"
     },
     {
      "name": "sakstittel",
      "type": "string",
      "description": "sakens tittel fra KommuneTV"
     },
     {
      "name": "forslag",
      "type": "string",
      "description": "forslagsteksten som ble stemt over, i full lengde slik kilden har den. Tom når kilden ikke har tekst — da står forslaget i protokollen"
     },
     {
      "name": "avstemning_om_hele_saken",
      "type": "boolean",
      "trueValues": [
       "ja"
      ],
      "falseValues": [
       "nei"
      ],
      "description": "ja = avstemningen om selve innstillingen; nei = endrings- eller tilleggsforslag"
     },
     {
      "name": "resultattekst",
      "type": "string",
      "description": "KommuneTVs egen resultattekst, ordrett"
     },
     {
      "name": "utfall",
      "type": "string",
      "description": "vedtatt / falt / likt / ingen_stemmer_registrert (for + mot = 0; resultatteksten står i resultattekst) — for FORSLAGET. «mot» betyr mot forslaget, ikke nødvendigvis mot saken"
     },
     {
      "name": "utfall_kilde",
      "type": "string",
      "description": "kommunetv_resultattekst eller regnet_av_stemmetall (når resultatteksten mangler)"
     },
     {
      "name": "for",
      "type": "integer",
      "description": "stemmer for, inkludert stemmer uten navn"
     },
     {
      "name": "mot",
      "type": "integer",
      "description": "stemmer mot, inkludert stemmer uten navn"
     },
     {
      "name": "stemmer_uten_navn",
      "type": "integer",
      "description": "stemmer KommuneTV ikke har knyttet til et navn"
     },
     {
      "name": "plasser_i_organet",
      "type": "integer",
      "description": "antall plasser i organet (47 i kommunestyret, 13 i formannskapet)"
     },
     {
      "name": "ikke_registrert",
      "type": "integer",
      "description": "plasser − for − mot: ingen registrert stemme. Er IKKE «mot» — kan være fravær eller manglende registrering"
     },
     {
      "name": "personstemmer",
      "type": "boolean",
      "trueValues": [
       "ja"
      ],
      "falseValues": [
       "nei"
      ],
      "description": "ja = navnene finnes (se stemmer.csv, med navn_sikkerhet per stemme)"
     },
     {
      "name": "sak_url",
      "type": "string",
      "description": "sakssiden hos Sakskartet; tom når koblingen ikke er sikker"
     },
     {
      "name": "opptak_url",
      "type": "string",
      "description": "møtet hos KommuneTV. Spilleren tar ikke tidskode i adressen"
     },
     {
      "name": "opptak_tilgjengelig",
      "type": "boolean",
      "trueValues": [
       "ja"
      ],
      "falseValues": [
       "nei"
      ],
      "description": "nei = KommuneTV har tatt ned opptaket; avstemningen sto like fullt"
     },
     {
      "name": "AP_for",
      "type": "integer",
      "description": "Arbeiderpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "AP_mot",
      "type": "integer",
      "description": "Arbeiderpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "FRP_for",
      "type": "integer",
      "description": "Fremskrittspartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "FRP_mot",
      "type": "integer",
      "description": "Fremskrittspartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "H_for",
      "type": "integer",
      "description": "Høyre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "H_mot",
      "type": "integer",
      "description": "Høyre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "KRF_for",
      "type": "integer",
      "description": "Kristelig Folkeparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "KRF_mot",
      "type": "integer",
      "description": "Kristelig Folkeparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "MDG_for",
      "type": "integer",
      "description": "Miljøpartiet De Grønne: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "MDG_mot",
      "type": "integer",
      "description": "Miljøpartiet De Grønne: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PS_for",
      "type": "integer",
      "description": "Partiet Sentrum: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PS_mot",
      "type": "integer",
      "description": "Partiet Sentrum: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PP_for",
      "type": "integer",
      "description": "Pensjonistpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PP_mot",
      "type": "integer",
      "description": "Pensjonistpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "R_for",
      "type": "integer",
      "description": "Rødt: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "R_mot",
      "type": "integer",
      "description": "Rødt: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SP_for",
      "type": "integer",
      "description": "Senterpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SP_mot",
      "type": "integer",
      "description": "Senterpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SV_for",
      "type": "integer",
      "description": "Sosialistisk Venstreparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SV_mot",
      "type": "integer",
      "description": "Sosialistisk Venstreparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "V_for",
      "type": "integer",
      "description": "Venstre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "V_mot",
      "type": "integer",
      "description": "Venstre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     }
    ],
    "primaryKey": "votering_id"
   }
  },
  {
   "name": "voteringer-2026",
   "path": "https://nordrefollo.sakskart.no/data/nordre-follo/voteringer-2026.csv",
   "title": "Avstemninger, år 2026",
   "format": "csv",
   "mediatype": "text/csv",
   "encoding": "utf-8-sig",
   "dialect": {
    "delimiter": ",",
    "lineTerminator": "\r\n",
    "header": true
   },
   "schema": {
    "fields": [
     {
      "name": "votering_id",
      "type": "string",
      "description": "dato-organ-saksnummer-løpenummer i møtet. Stabil så lenge KommuneTVs data for møtet ikke endres"
     },
     {
      "name": "dato",
      "type": "date",
      "description": "møtedato (ÅÅÅÅ-MM-DD)"
     },
     {
      "name": "organ",
      "type": "string",
      "description": "organet avstemningen skjedde i (kommunestyret eller formannskapet)"
     },
     {
      "name": "saksnummer",
      "type": "string",
      "description": "saksnummer i møtet slik KommuneTV fører det. ⚠ Talerlogg og protokoll har ulike nummerserier: koble på sak_url, ikke på (dato, saksnummer)"
     },
     {
      "name": "sakstittel",
      "type": "string",
      "description": "sakens tittel fra KommuneTV"
     },
     {
      "name": "forslag",
      "type": "string",
      "description": "forslagsteksten som ble stemt over, i full lengde slik kilden har den. Tom når kilden ikke har tekst — da står forslaget i protokollen"
     },
     {
      "name": "avstemning_om_hele_saken",
      "type": "boolean",
      "trueValues": [
       "ja"
      ],
      "falseValues": [
       "nei"
      ],
      "description": "ja = avstemningen om selve innstillingen; nei = endrings- eller tilleggsforslag"
     },
     {
      "name": "resultattekst",
      "type": "string",
      "description": "KommuneTVs egen resultattekst, ordrett"
     },
     {
      "name": "utfall",
      "type": "string",
      "description": "vedtatt / falt / likt / ingen_stemmer_registrert (for + mot = 0; resultatteksten står i resultattekst) — for FORSLAGET. «mot» betyr mot forslaget, ikke nødvendigvis mot saken"
     },
     {
      "name": "utfall_kilde",
      "type": "string",
      "description": "kommunetv_resultattekst eller regnet_av_stemmetall (når resultatteksten mangler)"
     },
     {
      "name": "for",
      "type": "integer",
      "description": "stemmer for, inkludert stemmer uten navn"
     },
     {
      "name": "mot",
      "type": "integer",
      "description": "stemmer mot, inkludert stemmer uten navn"
     },
     {
      "name": "stemmer_uten_navn",
      "type": "integer",
      "description": "stemmer KommuneTV ikke har knyttet til et navn"
     },
     {
      "name": "plasser_i_organet",
      "type": "integer",
      "description": "antall plasser i organet (47 i kommunestyret, 13 i formannskapet)"
     },
     {
      "name": "ikke_registrert",
      "type": "integer",
      "description": "plasser − for − mot: ingen registrert stemme. Er IKKE «mot» — kan være fravær eller manglende registrering"
     },
     {
      "name": "personstemmer",
      "type": "boolean",
      "trueValues": [
       "ja"
      ],
      "falseValues": [
       "nei"
      ],
      "description": "ja = navnene finnes (se stemmer.csv, med navn_sikkerhet per stemme)"
     },
     {
      "name": "sak_url",
      "type": "string",
      "description": "sakssiden hos Sakskartet; tom når koblingen ikke er sikker"
     },
     {
      "name": "opptak_url",
      "type": "string",
      "description": "møtet hos KommuneTV. Spilleren tar ikke tidskode i adressen"
     },
     {
      "name": "opptak_tilgjengelig",
      "type": "boolean",
      "trueValues": [
       "ja"
      ],
      "falseValues": [
       "nei"
      ],
      "description": "nei = KommuneTV har tatt ned opptaket; avstemningen sto like fullt"
     },
     {
      "name": "AP_for",
      "type": "integer",
      "description": "Arbeiderpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "AP_mot",
      "type": "integer",
      "description": "Arbeiderpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "FRP_for",
      "type": "integer",
      "description": "Fremskrittspartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "FRP_mot",
      "type": "integer",
      "description": "Fremskrittspartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "H_for",
      "type": "integer",
      "description": "Høyre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "H_mot",
      "type": "integer",
      "description": "Høyre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "KRF_for",
      "type": "integer",
      "description": "Kristelig Folkeparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "KRF_mot",
      "type": "integer",
      "description": "Kristelig Folkeparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "MDG_for",
      "type": "integer",
      "description": "Miljøpartiet De Grønne: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "MDG_mot",
      "type": "integer",
      "description": "Miljøpartiet De Grønne: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PS_for",
      "type": "integer",
      "description": "Partiet Sentrum: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PS_mot",
      "type": "integer",
      "description": "Partiet Sentrum: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PP_for",
      "type": "integer",
      "description": "Pensjonistpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PP_mot",
      "type": "integer",
      "description": "Pensjonistpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "R_for",
      "type": "integer",
      "description": "Rødt: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "R_mot",
      "type": "integer",
      "description": "Rødt: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SP_for",
      "type": "integer",
      "description": "Senterpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SP_mot",
      "type": "integer",
      "description": "Senterpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SV_for",
      "type": "integer",
      "description": "Sosialistisk Venstreparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SV_mot",
      "type": "integer",
      "description": "Sosialistisk Venstreparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "V_for",
      "type": "integer",
      "description": "Venstre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "V_mot",
      "type": "integer",
      "description": "Venstre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     }
    ],
    "primaryKey": "votering_id"
   }
  },
  {
   "name": "voteringer-formannskapet",
   "path": "https://nordrefollo.sakskart.no/data/nordre-follo/voteringer-formannskapet.csv",
   "title": "Avstemninger, formannskapet",
   "format": "csv",
   "mediatype": "text/csv",
   "encoding": "utf-8-sig",
   "dialect": {
    "delimiter": ",",
    "lineTerminator": "\r\n",
    "header": true
   },
   "schema": {
    "fields": [
     {
      "name": "votering_id",
      "type": "string",
      "description": "dato-organ-saksnummer-løpenummer i møtet. Stabil så lenge KommuneTVs data for møtet ikke endres"
     },
     {
      "name": "dato",
      "type": "date",
      "description": "møtedato (ÅÅÅÅ-MM-DD)"
     },
     {
      "name": "organ",
      "type": "string",
      "description": "organet avstemningen skjedde i (kommunestyret eller formannskapet)"
     },
     {
      "name": "saksnummer",
      "type": "string",
      "description": "saksnummer i møtet slik KommuneTV fører det. ⚠ Talerlogg og protokoll har ulike nummerserier: koble på sak_url, ikke på (dato, saksnummer)"
     },
     {
      "name": "sakstittel",
      "type": "string",
      "description": "sakens tittel fra KommuneTV"
     },
     {
      "name": "forslag",
      "type": "string",
      "description": "forslagsteksten som ble stemt over, i full lengde slik kilden har den. Tom når kilden ikke har tekst — da står forslaget i protokollen"
     },
     {
      "name": "avstemning_om_hele_saken",
      "type": "boolean",
      "trueValues": [
       "ja"
      ],
      "falseValues": [
       "nei"
      ],
      "description": "ja = avstemningen om selve innstillingen; nei = endrings- eller tilleggsforslag"
     },
     {
      "name": "resultattekst",
      "type": "string",
      "description": "KommuneTVs egen resultattekst, ordrett"
     },
     {
      "name": "utfall",
      "type": "string",
      "description": "vedtatt / falt / likt / ingen_stemmer_registrert (for + mot = 0; resultatteksten står i resultattekst) — for FORSLAGET. «mot» betyr mot forslaget, ikke nødvendigvis mot saken"
     },
     {
      "name": "utfall_kilde",
      "type": "string",
      "description": "kommunetv_resultattekst eller regnet_av_stemmetall (når resultatteksten mangler)"
     },
     {
      "name": "for",
      "type": "integer",
      "description": "stemmer for, inkludert stemmer uten navn"
     },
     {
      "name": "mot",
      "type": "integer",
      "description": "stemmer mot, inkludert stemmer uten navn"
     },
     {
      "name": "stemmer_uten_navn",
      "type": "integer",
      "description": "stemmer KommuneTV ikke har knyttet til et navn"
     },
     {
      "name": "plasser_i_organet",
      "type": "integer",
      "description": "antall plasser i organet (47 i kommunestyret, 13 i formannskapet)"
     },
     {
      "name": "ikke_registrert",
      "type": "integer",
      "description": "plasser − for − mot: ingen registrert stemme. Er IKKE «mot» — kan være fravær eller manglende registrering"
     },
     {
      "name": "personstemmer",
      "type": "boolean",
      "trueValues": [
       "ja"
      ],
      "falseValues": [
       "nei"
      ],
      "description": "ja = navnene finnes (se stemmer.csv, med navn_sikkerhet per stemme)"
     },
     {
      "name": "sak_url",
      "type": "string",
      "description": "sakssiden hos Sakskartet; tom når koblingen ikke er sikker"
     },
     {
      "name": "opptak_url",
      "type": "string",
      "description": "møtet hos KommuneTV. Spilleren tar ikke tidskode i adressen"
     },
     {
      "name": "opptak_tilgjengelig",
      "type": "boolean",
      "trueValues": [
       "ja"
      ],
      "falseValues": [
       "nei"
      ],
      "description": "nei = KommuneTV har tatt ned opptaket; avstemningen sto like fullt"
     },
     {
      "name": "AP_for",
      "type": "integer",
      "description": "Arbeiderpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "AP_mot",
      "type": "integer",
      "description": "Arbeiderpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "FRP_for",
      "type": "integer",
      "description": "Fremskrittspartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "FRP_mot",
      "type": "integer",
      "description": "Fremskrittspartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "H_for",
      "type": "integer",
      "description": "Høyre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "H_mot",
      "type": "integer",
      "description": "Høyre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "KRF_for",
      "type": "integer",
      "description": "Kristelig Folkeparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "KRF_mot",
      "type": "integer",
      "description": "Kristelig Folkeparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "MDG_for",
      "type": "integer",
      "description": "Miljøpartiet De Grønne: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "MDG_mot",
      "type": "integer",
      "description": "Miljøpartiet De Grønne: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PS_for",
      "type": "integer",
      "description": "Partiet Sentrum: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PS_mot",
      "type": "integer",
      "description": "Partiet Sentrum: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PP_for",
      "type": "integer",
      "description": "Pensjonistpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PP_mot",
      "type": "integer",
      "description": "Pensjonistpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "R_for",
      "type": "integer",
      "description": "Rødt: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "R_mot",
      "type": "integer",
      "description": "Rødt: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SP_for",
      "type": "integer",
      "description": "Senterpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SP_mot",
      "type": "integer",
      "description": "Senterpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SV_for",
      "type": "integer",
      "description": "Sosialistisk Venstreparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SV_mot",
      "type": "integer",
      "description": "Sosialistisk Venstreparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "V_for",
      "type": "integer",
      "description": "Venstre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "V_mot",
      "type": "integer",
      "description": "Venstre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     }
    ],
    "primaryKey": "votering_id"
   }
  },
  {
   "name": "voteringer-kommunestyret",
   "path": "https://nordrefollo.sakskart.no/data/nordre-follo/voteringer-kommunestyret.csv",
   "title": "Avstemninger, kommunestyret",
   "format": "csv",
   "mediatype": "text/csv",
   "encoding": "utf-8-sig",
   "dialect": {
    "delimiter": ",",
    "lineTerminator": "\r\n",
    "header": true
   },
   "schema": {
    "fields": [
     {
      "name": "votering_id",
      "type": "string",
      "description": "dato-organ-saksnummer-løpenummer i møtet. Stabil så lenge KommuneTVs data for møtet ikke endres"
     },
     {
      "name": "dato",
      "type": "date",
      "description": "møtedato (ÅÅÅÅ-MM-DD)"
     },
     {
      "name": "organ",
      "type": "string",
      "description": "organet avstemningen skjedde i (kommunestyret eller formannskapet)"
     },
     {
      "name": "saksnummer",
      "type": "string",
      "description": "saksnummer i møtet slik KommuneTV fører det. ⚠ Talerlogg og protokoll har ulike nummerserier: koble på sak_url, ikke på (dato, saksnummer)"
     },
     {
      "name": "sakstittel",
      "type": "string",
      "description": "sakens tittel fra KommuneTV"
     },
     {
      "name": "forslag",
      "type": "string",
      "description": "forslagsteksten som ble stemt over, i full lengde slik kilden har den. Tom når kilden ikke har tekst — da står forslaget i protokollen"
     },
     {
      "name": "avstemning_om_hele_saken",
      "type": "boolean",
      "trueValues": [
       "ja"
      ],
      "falseValues": [
       "nei"
      ],
      "description": "ja = avstemningen om selve innstillingen; nei = endrings- eller tilleggsforslag"
     },
     {
      "name": "resultattekst",
      "type": "string",
      "description": "KommuneTVs egen resultattekst, ordrett"
     },
     {
      "name": "utfall",
      "type": "string",
      "description": "vedtatt / falt / likt / ingen_stemmer_registrert (for + mot = 0; resultatteksten står i resultattekst) — for FORSLAGET. «mot» betyr mot forslaget, ikke nødvendigvis mot saken"
     },
     {
      "name": "utfall_kilde",
      "type": "string",
      "description": "kommunetv_resultattekst eller regnet_av_stemmetall (når resultatteksten mangler)"
     },
     {
      "name": "for",
      "type": "integer",
      "description": "stemmer for, inkludert stemmer uten navn"
     },
     {
      "name": "mot",
      "type": "integer",
      "description": "stemmer mot, inkludert stemmer uten navn"
     },
     {
      "name": "stemmer_uten_navn",
      "type": "integer",
      "description": "stemmer KommuneTV ikke har knyttet til et navn"
     },
     {
      "name": "plasser_i_organet",
      "type": "integer",
      "description": "antall plasser i organet (47 i kommunestyret, 13 i formannskapet)"
     },
     {
      "name": "ikke_registrert",
      "type": "integer",
      "description": "plasser − for − mot: ingen registrert stemme. Er IKKE «mot» — kan være fravær eller manglende registrering"
     },
     {
      "name": "personstemmer",
      "type": "boolean",
      "trueValues": [
       "ja"
      ],
      "falseValues": [
       "nei"
      ],
      "description": "ja = navnene finnes (se stemmer.csv, med navn_sikkerhet per stemme)"
     },
     {
      "name": "sak_url",
      "type": "string",
      "description": "sakssiden hos Sakskartet; tom når koblingen ikke er sikker"
     },
     {
      "name": "opptak_url",
      "type": "string",
      "description": "møtet hos KommuneTV. Spilleren tar ikke tidskode i adressen"
     },
     {
      "name": "opptak_tilgjengelig",
      "type": "boolean",
      "trueValues": [
       "ja"
      ],
      "falseValues": [
       "nei"
      ],
      "description": "nei = KommuneTV har tatt ned opptaket; avstemningen sto like fullt"
     },
     {
      "name": "AP_for",
      "type": "integer",
      "description": "Arbeiderpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "AP_mot",
      "type": "integer",
      "description": "Arbeiderpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "FRP_for",
      "type": "integer",
      "description": "Fremskrittspartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "FRP_mot",
      "type": "integer",
      "description": "Fremskrittspartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "H_for",
      "type": "integer",
      "description": "Høyre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "H_mot",
      "type": "integer",
      "description": "Høyre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "KRF_for",
      "type": "integer",
      "description": "Kristelig Folkeparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "KRF_mot",
      "type": "integer",
      "description": "Kristelig Folkeparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "MDG_for",
      "type": "integer",
      "description": "Miljøpartiet De Grønne: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "MDG_mot",
      "type": "integer",
      "description": "Miljøpartiet De Grønne: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PS_for",
      "type": "integer",
      "description": "Partiet Sentrum: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PS_mot",
      "type": "integer",
      "description": "Partiet Sentrum: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PP_for",
      "type": "integer",
      "description": "Pensjonistpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "PP_mot",
      "type": "integer",
      "description": "Pensjonistpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "R_for",
      "type": "integer",
      "description": "Rødt: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "R_mot",
      "type": "integer",
      "description": "Rødt: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SP_for",
      "type": "integer",
      "description": "Senterpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SP_mot",
      "type": "integer",
      "description": "Senterpartiet: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SV_for",
      "type": "integer",
      "description": "Sosialistisk Venstreparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "SV_mot",
      "type": "integer",
      "description": "Sosialistisk Venstreparti: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "V_for",
      "type": "integer",
      "description": "Venstre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     },
     {
      "name": "V_mot",
      "type": "integer",
      "description": "Venstre: frammøtte fra partiet som stemte for/mot (ikke mandater). Partiet er det representanten hadde på avstemningsdagen"
     }
    ],
    "primaryKey": "votering_id"
   }
  },
  {
   "name": "stemmer",
   "path": "https://nordrefollo.sakskart.no/data/nordre-follo/stemmer.csv",
   "title": "Hvem stemte hva (én rad per navngitt stemme)",
   "format": "csv",
   "mediatype": "text/csv",
   "encoding": "utf-8-sig",
   "schema": {
    "fields": [
     {
      "name": "votering_id",
      "type": "string",
      "description": "dato-organ-saksnummer-løpenummer i møtet. Stabil så lenge KommuneTVs data for møtet ikke endres"
     },
     {
      "name": "dato",
      "type": "date",
      "description": "møtedato (ÅÅÅÅ-MM-DD)"
     },
     {
      "name": "organ",
      "type": "string",
      "description": "organet avstemningen skjedde i (kommunestyret eller formannskapet)"
     },
     {
      "name": "saksnummer",
      "type": "string",
      "description": "saksnummer i møtet slik KommuneTV fører det. ⚠ Talerlogg og protokoll har ulike nummerserier: koble på sak_url, ikke på (dato, saksnummer)"
     },
     {
      "name": "sakstittel",
      "type": "string",
      "description": "sakens tittel fra KommuneTV"
     },
     {
      "name": "navn",
      "type": "string"
     },
     {
      "name": "parti",
      "type": "string",
      "description": "partiet på avstemningsdagen"
     },
     {
      "name": "stemme",
      "type": "string",
      "description": "for eller mot forslaget"
     },
     {
      "name": "navn_sikkerhet",
      "type": "string",
      "description": "hvordan navnet bak stemmen er belagt: talerlogg (navnet står i KommuneTVs talerlogg), protokoll (protokollens navngitte stemmetall), utledet (KI-assistert tolkning av fremmøte og stemmemønster — kan være feil, sjekk protokollen), ukjent (ikke dokumentert)"
     },
     {
      "name": "representant_url",
      "type": "string"
     }
    ],
    "foreignKeys": [
     {
      "fields": "votering_id",
      "reference": {
       "resource": "voteringer",
       "fields": "votering_id"
      }
     }
    ]
   }
  }
 ]
}