Velja

Rättelser

Siffror och påståenden som varit fel på publicerade sidor — vad som var fel, hur stort, hur det hittades, vad som ändrades och vad som nu hindrar samma fel. 16 poster sedan 31 juli 2026: 12 hittade vid egen kontroll, 4 vid extern granskning. 11 av dem har lett till en automatisk kontroll som stoppar publicering om felet återkommer.

Vad som hamnar här

En felaktig siffra, etikett eller uppgift som stått på en publicerad sida. Inte omformuleringar, designändringar eller ordinarie datauppdateringar. Loggen börjar när sajten började föra en — äldre rättelser finns i versionshistoriken men rekonstrueras inte här. Hittar du ett fel: mejla info@velja.se, så rättar vi och skriver in det.

  1. 14 augusti 2026 · Upptäckt vid egen kontroll

    Integritetspolicyn namngav en annonspartner som Velja inte har

    Var
    /integritet, /elavtal/jamfor
    Vad som var fel
    Integritetspolicyn angav Adtraction Marketing AB som mottagare av personuppgifter, en rättslig grund för affiliate-klick och en varning om deras tredjepartskakor — trots att Velja aldrig har haft något partneravtal och ingen affiliate-länk är aktiv. Jämförelsesidan för elavtal svarade dessutom ”Ja” på frågan om Velja får betalt, i strukturerad data som sökmotorer kan visa.
    Vad som ändrades
    Avsnittet, punkten, klausulen och kakvarningen togs bort. Elavtalsjämförelsen är noindexerad och borttagen ur sitemapen tills det finns avtal att jämföra; dess FAQ och källruta säger nu rakt ut att inga partneravtal finns.
    Vad som hindrar det nu
    Ingen strukturell — policytexten granskas när ett första avtal faktiskt tecknas. · ändring 07061ef
  2. 7 augusti 2026 · Upptäckt vid egen kontroll

    Startsidans gymnasiekort namngav en skola som listan bakom länken inte kunde innehålla

    Var
    Startsidan → /basta-gymnasium
    Vad som var fel
    Kortet visade den högst placerade gymnasieskolan i en blandad nationell lista över alla program (Ridsportsgymnasiet, 18,9 betygspoäng, enda program NB) ovanför en länk som öppnade en lista per program — med Ekonomiprogrammet förvalt — som strukturellt inte kunde innehålla den.
    Vad som ändrades
    Kortet roterar nu genom de nationella programmen ett i taget och länkar med programkoden, så läsaren landar på den flik vars etta hen just läste. Rankningssidan har medvetet ingen blandad lista.
    Vad som hindrar det nu
    Programparametern är bärande: tas den bort måste kortet ändras i samma commit (dokumenterat i arkitekturguiden). · ändring 72e8c4d
  3. 7 augusti 2026 · Upptäckt vid egen kontroll

    45 skolenheter som inte undervisar någon visades som aktiva skolor

    Var
    /skola/[slug], /gymnasium/[slug], /kommuner/[slug]/skolor, rankningar, sitemapen
    Vad som var fel
    30 grundskolor och 15 gymnasieenheter med status ”Planerad” eller ”Vilande” i Skolverkets skolenhetsregister fick fulla sidor, räknades i sina kommuners totaler och publicerades som EducationalOrganization för sökmotorer. Stockholm angavs ha 248 grundskolor där registret känner 246. Osynligt av konstruktion: en planerad skola har inga elever och inget meritvärde, vilket på sidan ser ut som en liten skola vars statistik är sekretessbelagd.
    Vad som ändrades
    Skolregistrets status kopplas nu till varje enhet, och bara ”Aktiv” publiceras. Kumlas två vilande Skogstorpsskolan-enheter försvann och den sammanslagna F–9-enheten kom in.
    Vad som hindrar det nu
    Byggkontrollen lint:status stoppar publicering om en icke-aktiv enhet återkommer. · ändring 41edb8e
  4. 6 augusti 2026 · Upptäckt vid extern granskning

    Stockholms meritvärde låg över både sina delar — tre siffror, två viktningar

    Var
    /kommuner/[slug]/skolor (huvudmannakortet), kommunernas AI-framtagna skoltexter
    Vad som var fel
    Kommunsnittet var elevviktat (252,4) medan kommunala (245,2) och fristående (242,2) beräknades som enkla medelvärden över skolor — en total kan inte ligga över båda sina delar. Under en och samma viktning är riktningen den motsatta i Stockholm: fristående 259,8 mot kommunala 248,5, och 8 av 70 kommuner med båda huvudmannatyperna byter riktning. Den genererade texten hade berättat omöjligheten som ett fynd.
    Vad som ändrades
    Alla tre siffrorna räknas nu genom en och samma elevviktade funktion, så totalen ligger alltid mellan sina delar. Berörda kommuntexter genererades om.
    Vad som hindrar det nu
    Byggkontrollen lint:weighting kräver att varje kommuns total reproduceras exakt ur skoldatan och ligger mellan sina egna delsnitt. · ändring 846b42d
  5. 6 augusti 2026 · Upptäckt vid extern granskning

    Ett handskrivet datum stod som ”senast uppdaterad” bredvid nyare data

    Var
    /skola/[slug] och sju andra skolsidor
    Vad som var fel
    Sidorna angav ”Senast uppdaterad: 2026-02-26” som en fast text, bredvid Skolenkäten 2026 och lärarstatistik för ett annat läsår än betygen. Ett datum kan inte täcka blandade årgångar, och det här uppdaterades aldrig.
    Vad som ändrades
    Källraden anger nu två saker: vilket läsår siffrorna beskriver (härlett ur datan själv, per mått) och när Velja senast läste in dem (stämplat av datapipelinen). Lärarkortet anger sitt läsår per rad när måtten skiljer sig.
    Vad som hindrar det nu
    Inga datumliterals på datasidor; datumen genereras. Fångas av kodgranskning, inte av en byggkontroll. · ändring 0d29b7f
  6. 6 augusti 2026 · Upptäckt vid extern granskning

    Lärarstatistiken låg ett läsår efter i ett halvår

    Var
    Alla grundskolesidor (lärarbehörighet, elever per lärare)
    Vad som var fel
    Personalstatistiken visade läsåret 2024/25 från februari till augusti 2026 medan Skolverkets API sedan länge serverade 2025/26. Hämtningen var cache-först och cachen upphörde aldrig att gälla, så varje ”uppdatering” skrev om den gamla ögonblicksbilden och rapporterade framgång. Betygen var inte berörda — nya slutbetyg kommer först i september.
    Vad som ändrades
    Cachen raderas nu innan en uppdatering, hela personalskiktet lästes in på nytt, och den automatiska färskhetskontrollen provtar även ett personalfält (den provtog bara meritvärdet och sa ”färsk” medan personaldelen släpade).
    Vad som hindrar det nu
    Veckokontrollen jämför båda fälten mot API:et; dokumenterad regel att en uppdatering börjar med att cachen raderas. · ändring ef790fa
  7. 6 augusti 2026 · Upptäckt vid egen kontroll

    Metabeskrivningar längre än sökmotorerna visar

    Var
    Sökresultat för ~30 kalkylator- och navsidor och alla vårdcentralsidor
    Vad som var fel
    Beskrivningarna för 30 av 70 statiska sidor och för vårdcentralerna (325–360 tecken) klipptes mitt i ordet av Google, så placeringen och källan som medvetet lagts sist syntes aldrig.
    Vad som ändrades
    Beskrivningar byggs nu klausul för klausul inom en budget på 150 tecken, med det viktigaste först.
    Vad som hindrar det nu
    Byggkontrollen lint:meta renderar varje sidas beskrivning och stoppar publicering utanför 60–150 tecken. · ändring 0ceb574
  8. 5 augusti 2026 · Upptäckt vid egen kontroll

    Hundratals länkar till skolors webbplatser var döda

    Var
    /skola/[slug], /gymnasium/[slug], /forskola/[slug]
    Vad som var fel
    Kommuner bygger om sina webbplatser och länkar ruttnar: en länkkontroll fann att ~6 % av skolornas registrerade webbadresser gav bekräftade 404-svar, samtidigt som länken sitter högst upp på skolsidan.
    Vad som ändrades
    92 länkar hittades på nya adresser och 480 döda länkar tystades; 350 av dem återfanns senare vid nya adresser och återställdes. En skola vars länk inte kan verifieras visar ingen länk alls, hellre än en felaktig.
    Vad som hindrar det nu
    En automatisk länkkontroll körs första måndagen varje månad och listar bekräftade 404:or för kuratering. · ändring 7851968
  9. 3 augusti 2026 · Upptäckt vid egen kontroll

    39 skolor låg på huvudmannens huvudkontor — hundratals kilometer bort

    Var
    /skola/[slug], /gymnasium/[slug] (karta, närliggande skolor)
    Vad som var fel
    Skolverkets register anger för vissa kedjor huvudkontorets koordinat i stället för skolans: Tunaskolan F–3 låg 797 km från Luleå, Yrkesgymnasiet Borås 785 km från Borås. Felet var osynligt eftersom närhetslistorna mäter från andra skolor — en felaktig koordinat dök aldrig upp någonstans, i stället för att dyka upp på fel plats.
    Vad som ändrades
    Koordinater som inte kan vara skolans egen (gränsen härleds per kommun ur kommunens storlek, aldrig ett fast antal km) nollställs; skolan visas utan karta och utan närhetslista i stället för på fel plats.
    Vad som hindrar det nu
    Byggkontrollen lint:coords stoppar publicering om en orimlig koordinat återkommer. · ändring c6d52da
  10. 3 augusti 2026 · Upptäckt vid egen kontroll

    20 skolor visade huvudkontorets adress som sin egen

    Var
    /skola/[slug], /gymnasium/[slug], kommunernas skoltabeller, strukturerad adressdata
    Vad som var fel
    Samma registerfel, annan yta: Tornparksskolan i Sundbyberg visade ”Stora Nygatan 52, Malmö” under Om skolenheten, kommuntabellen skrev ”Malmö · Fristående” och adressen publicerades som PostalAddress för sökmotorer.
    Vad som ändrades
    Adresser som delas av flera skolor i olika kommuner och pekar på ett och samma hus i en annan kommun blankas; en handverifierad adress kan läggas in i en kurateringsfil och vinner då.
    Vad som hindrar det nu
    Byggkontrollen lint:addresses; kurateringsfilen är samtidigt att-göra-listan för de blankade. · ändring 4e4f541
  11. 2 augusti 2026 · Upptäckt vid egen kontroll

    778 kommunsidor angav en nationell placering som motsade sajtens egna rankningar

    Var
    /kommuner/[slug]/lon, /bostader, /trygghet och deras FAQ-data
    Vad som var fel
    Placeringen var arrayens position, inte en rangordning: Älvkarleby och Haparanda rapporterar båda 33 000 kr i medianlön och skrevs som ”#157” respektive ”#222” av alla 290 kommuner, 65 platser isär på samma siffra. Mätt mot rankningssidorna, som hanterar delade placeringar, motsade 778 av 870 sidor sajtens egen lista. Dessutom finns bara 20 olika medianlöner, 50 huspriser och 22 brottsnivåer bland 290 kommuner, varav ~68 % regionala uppskattningar — inte ens en korrekt placering vore meningsfull.
    Vad som ändrades
    Ett mått får en delad placering bara när datan bär en (skattesats, folkmängd) och en nivå annars (lön, huspris, brott); nivåernas gränser går bara mellan olika värden, så två kommuner med samma siffra alltid hamnar på samma sida.
    Vad som hindrar det nu
    Byggkontrollen lint:metric förbjuder placeringar räknade ur listposition, handskrivna nämnare i löptext och placeringsfält på uppskattade mått. · ändring 2bd245d
  12. 2 augusti 2026 · Upptäckt vid egen kontroll

    32 kommuner påstods slå rikssnittet i skolresultat när de inte gjorde det

    Var
    /kommuner/[slug] och /kommuner/[slug]/skolor (meningar och FAQ)
    Vad som var fel
    Kommunens elevviktade meritvärde jämfördes med ett oviktat nationellt snitt över skolor, 4,8 poäng för lågt. 32 av de 74 kommuner som sades ligga över rikssnittet gjorde det inte med rätt jämförelsetal.
    Vad som ändrades
    En enda funktion svarar nu på ”hur bra är skolorna i kommun X” — värde, jämförelsetal, avvikelse, nivå och delad placering hör ihop, och ingen sida väljer jämförelsetal själv.
    Vad som hindrar det nu
    lint:metric förbjuder att kommunsnittet paras med det oviktade rikssnittet någonstans i koden. · ändring d588658
  13. 2 augusti 2026 · Upptäckt vid egen kontroll

    Flyttkalkylatorn räknade om en hyra med huspriser

    Var
    /flytta-kalkyl (hyresrätt)
    Vad som var fel
    Hyran i den nya kommunen skalades med förhållandet mellan kommunernas småhuspriser — fel i sak, inte i grad: huspriserna spänner 0,7–13,1 Mkr medan hyror sätts genom bruksvärdessystemet och skiljer sig långt mindre. En hyra på 9 000 kr blev 1 500 kr i den billigaste kommunen och 28 071 kr i den dyraste.
    Vad som ändrades
    Velja har ingen hyresstatistik per kommun, så hyran i den nya kommunen är nu läsarens egen uppgift — förvald till dagens hyra, med skälet skrivet bredvid — i stället för en fabricerad siffra.
    Vad som hindrar det nu
    Ingen strukturell; regeln ”en siffra som saknas hos källan saknas hos oss” står på metodsidan. · ändring ef7086b
  14. 2 augusti 2026 · Upptäckt vid extern granskning

    Fel enheter på startsidan och sidor som räknade tabellen i stället för datan

    Var
    Startsidan, /basta-forskolor/[lan], sökrutan
    Vad som var fel
    Startsidan skrev ett medelpris för ett helt småhus som ”700 tkr/m²”, och en brottsnivå per 1 000 invånare som ”per 100k”. Länssidorna för förskolor sa ”50 av 1 973 förskolor har personaldata” — täljaren var den renderade listan, hårt kapad vid 50, så alla 21 sidor underskattade täckningen med upp till 97 procentenheter. Sökrutan visade förskolors barn per årsarbetare under etiketten ”merit”.
    Vad som ändrades
    Enheterna rättade, antalen räknas ur datan i stället för ur tabellen, och förskolans mått fick sin egen etikett.
    Vad som hindrar det nu
    Ingen strukturell för enheter; antalen härleds nu där de används. · ändring 2b54719
  15. 1 augusti 2026 · Upptäckt vid egen kontroll

    60 av 71 handskrivna skattesatser i kommuntexterna var fel

    Var
    /kommuner/[slug] (den redaktionella texten)
    Vad som var fel
    De handskrivna kommuntexterna angav kommunalskatten i löpande text, och 60 av 71 sådana angivelser hade hunnit bli fel med upp till 1,39 procentenheter — samma siffra stod korrekt i statistikkortet på samma sida, hämtad ur datan.
    Vad som ändrades
    Alla siffror som lever i en datafil (skatt, lön, huspris, meritvärde, brott, folkmängd) togs bort ur den handskrivna texten; de renderas redan ur datan. Vägavstånd och ortnamn får stå kvar.
    Vad som hindrar det nu
    Byggkontrollen lint:prose stoppar publicering om en sådan siffra återkommer i texten. · ändring 93384b3
  16. 31 juli 2026 · Upptäckt vid egen kontroll

    Vårdcentraler fick ”närliggande” mottagningar i ett annat län

    Var
    /vardcentral/[slug] (närhetslistan och jämförelseknappen)
    Vad som var fel
    Patientenkäten publicerar inga koordinater, så läget togs fram genom namnmatchning mot OpenStreetMap — en regel lös nog att para ”Husläkarna Falkenberg” med en ”Husläkarna” 87 mil norrut. 737 av 1 123 sidor visade en topp 3-granne i ett annat län, med en säker kilometersiffra.
    Vad som ändrades
    Koordinater mer än 30 km från mottagningens egen kommun kastas (642 av 1 123). De som är kvar är ”rätt trakt”, inte verifierat rätt hus — därför visar sidorna en kommunkarta, inte en gatukarta, och avstånden anges som ungefärliga. I Region Stockholm och Västra Götaland, som publicerar adresser som öppna data, är läget sedan dess verifierat.
    Vad som hindrar det nu
    Avståndskontrollen körs vid varje datauppdatering; metodsidan beskriver undantaget. · ändring 0f775a4

Hur vi arbetar med data och vilka kontroller som körs före varje publicering står på metodsidan; varje källa och dess årgång på datakällor.