Les anbudet med AI: fra 80 sider til en kravmatrise

Et konkurransegrunnlag kan ha krav, frister og vilkår spredt over 80 sider. Slik får du en kravmatrise med sidetall og ordrette sitater, en kolonne for det AI-en ikke fant, og en stikkprøve som sier om du kan stole på den.

Magnus Gribbestad 8. oktober 2026 8 min
Figur · fra dokument til matrise
Fra konkurransegrunnlag til kravmatrise Til venstre ruller et dokument med sidetall i hjørnet. Linjer som er krav, blir grønne. Kravene løftes ut ett etter ett og blir rader i en tabell til høyre, hver med sidetall. Under legges fristene for spørsmål, tilbud og oppstart på en tidslinje. Én rad blir gul: ansvarsbegrensning, fant ikke. Til slutt får tre rader en hake etter at de er sjekket mot dokumentet. Eksempelet er konstruert. DOKUMENTET s. 1 s. 2 s. 3 s. 4 s. 5 s. 6 s. 1 s. 2 s. 3 KRAVMATRISEKRAVSIDE Levert elektronisks. 1 Åpent 20 t i ukas. 2 Månedlig rapports. 4 Dagbot per dags. 6 SPØRSMÅL3. nov. TILBUD17. nov. OPPSTART1. mars 5. nov.? Ansvarsbegrensningfant ikke
  1. Du har et konkurransegrunnlag. Det kan være 80 sider, og ingen leser alle like nøye.
  2. AI-en går gjennom dokumentet og merker skal-krav, frister og vilkår. Ikke nødvendigvis alle.
  3. Hvert krav blir en rad i en kravmatrise, med sidetall og et ordrett sitat du kan slå opp.
  4. Fristene legges på en tidslinje. Spørsmålsfristen står ulikt på side 1 og side 5, og det skal merkes.
  5. Én rad blir gul: fant ikke i dokumentet. Det den ikke fant, er like viktig som det den fant.
  6. Til slutt stikkprøven: du slår opp rader i dokumentet og sjekker sitatet. Du sjekker, ikke den.

Før du limer inn: konkurransegrunnlag og tilbud er ofte konfidensielle

Mange konkurransegrunnlag er konfidensielle, og forespørsler fra private kunder kommer ofte med en taushetserklæring. Ditt eget tilbud, prisene og kalkylene er det alltid. Bruk bare et AI-verktøy bedriften har godkjent for slikt, under bedriftens avtale. Er du i tvil om et dokument kan deles, behandle det som konfidensielt og spør først.

Bruk aldri ekte forespørsler fra kunder som eksempel i kurs, presentasjoner eller på nett. Øv på det oppdiktede eksempelet lenger ned i stedet. Det kan du lime inn hvor som helst.

Dette er ikke juridisk rådgivning. En kravmatrise sier hva som står i dokumentet. Hva det betyr for dere, særlig vilkår om ansvar, dagbot og avvik, må noen som kan kontrakter vurdere.

Kort sagt

En kravmatrise er en tabell med ett krav per rad: hva som kreves, hvor det står, og et ordrett sitat. AI-en lager utkastet på minutter. Sidetallene og sitatene gjør at du kan sjekke det, og en egen «fant ikke»-kolonne viser hva som mangler.

  • Hva det løser: du får krav, frister og vilkår samlet i én tabell før du bestemmer deg for å levere, ikke tre dager før fristen.
  • Hva det krever: dokumentet med sidetall, et godkjent verktøy som kan lese så mye tekst, og tid til stikkprøven.
  • Hva det koster: lite i verktøy. Tida går til å sjekke, og det er der verdien ligger.
  • Hva som kan gå galt: et krav som høres riktig ut, men ikke står der. Et krav som mangler, særlig midt i et langt dokument. Eller et vilkår i et vedlegg AI-en aldri fikk.
  • Hvem er ansvarlig: den som leverer tilbudet. En matrise fra AI er et utkast.
  • Første steg i morgen: kjør prompten på det oppdiktede eksempelet, og sammenlign med fasiten under det.

Du har fått et konkurransegrunnlag. Krav på side 4, frister på side 1 og 5, dagbot på side 6, og ansvar i et vedlegg. Det tar tid å lese alt like nøye, og det er der feilen skjer: et skal-krav som blir oversett, eller en frist som står ulikt to steder.

Denne siden viser hvordan du lager en kravmatrise med AI, og hvordan du sjekker den. Den hører til serien «For styret og ledelsen». Er tilbudet stort nok til at det skal opp i styret, passer den sammen med Forbered deg til styremøtet.

Sidetall og sitat, ellers kan du ikke sjekke det

To feil er lette å gjøre og vanskelige å se. Den ene er et krav som høres riktig ut, men som ikke står i dokumentet, eller som står på en annen side. Den andre er et krav som er utelatt. Den første kan du fange: en omskrivning kan ikke sjekkes, men et ordrett sitat med sidetall kan det. Derfor krever prompten begge deler, og derfor sier den at et krav uten ordrett sitat ikke skal med. Den andre fanges bare av at noen leser, og av at prompten har en liste over ting som skal sjekkes og merkes «fant ikke».

Sidetallene må være med i det du gir den. Last opp PDF-en hvis verktøyet ditt leser den med sidetall. Sjekk det ved å spørre hva som står øverst på side 3. Ellers kan du sette inn «--- side 4 ---» mellom sidene når du limer inn. Eksempelet lenger ned har en knapp som gjør det for deg.

Prompt · Lag kravmatrisen
Konkurransegrunnlaget, med sidetall:
[lim inn dokumentet, eller last opp PDF-en]

Lag en kravmatrise fra konkurransegrunnlaget over. Ikke tolk og ikke gi råd. Gjengi bare det som står.
Én rad per krav, med kolonnene: nr; krav (kort, med dine ord); type (skal, bør, frist, kvalifikasjon, tildeling, kontraktsvilkår); side; sitat (ordrett fra dokumentet, høyst 30 ord); status.
Regler:
1. Sitatet skal være ordrett. Finner du ikke et ordrett sitat, skal kravet ikke med.
2. Sjekk disse, og skriv «fant ikke» i status hvis dokumentet ikke sier noe: frist for spørsmål, tilbudsfrist, vedståelsesfrist, oppstart, dagbot, ansvarsbegrensning, forsikring, opsjoner, betaling, prisregulering, tildelingskriterier med vekt. Viser dokumentet til et vedlegg, skriv hvilket.
3. Står samme frist eller krav ulikt to steder, lag én rad for hvert og skriv «motstrid med rad n» i status.
4. Svar bare med tabellen, med semikolon mellom kolonnene og overskriftene på første linje.
Bare i et verktøy bedriften har godkjent. Lagre svaret som en .csv-fil og åpne den i et regneark, eller lim det inn og del det i kolonner med semikolon som skilletegn.

Dokumentet står først og instruksen etter. Det er rådet i Anthropics egen veiledning for lange dokumenter, og det samme rådet sier at modellen bør sitere de relevante delene før den gjør jobben. Det er det sitatkolonnen gjør.

Den leser ikke alle sidene like nøye

Det er fristende å tro at en maskin leser alle sidene like nøye. Det gjør den ikke. Anthropic skriver selv, i rådene for Claude Code, at en språkmodell gjør det dårligere jo fullere kontekstvinduet blir. En kjent studie fra 2023, «Lost in the Middle», fant at modellene svarte dårligere når det de trengte sto midt i en lang tekst, enn når det sto først eller sist. Modellene i den studien er eldre enn dagens, men Anthropic skriver det samme om sine egne modeller nå, lest 9. oktober 2026.

Det er derfor stikkprøven og «fant ikke»-kolonnen finnes. De er ikke pynt. Er dokumentet langt, del det opp, for eksempel kapittel for kapittel, og kjør prompten på hver del. Sett tabellene sammen etterpå, og husk at «fant ikke» i én del bare betyr at det ikke sto i den delen. Sjekk også at nummereringen går helt til siste side, for svaret kan bli avkortet. Hvor mye en modell kan ta inn på én gang, står i Kontekstvinduet.

Slik kan resultatet se ut

Under er et oppdiktet konkurransegrunnlag på seks sider: en kommune som kjøper drift av en utstyrssentral for fritidsutstyr. Kommunen, tjenesten og tallene finnes ikke. Matrisen etter dokumentet er laget for hånd som en fasit, og er ikke en kjørt AI-utskrift. Den viser hva et godt svar bør inneholde. Kjør prompten på eksempelet selv, og sammenlign.

Vises ikke rammen, eller virker ikke kopiknappen? Åpne eksempelet i eget vindu.

Fasiten, ti av 27 rader

Nr.KravSideSitatStatus
1Tilbudet leveres elektronisk1«Tilbudet skal leveres elektronisk.»fant
2Frist for spørsmål 3. november kl. 121«Frist for spørsmål | 3. november 2026 kl. 12.00»motstrid med rad 3
3Frist for spørsmål 5. november5«Spørsmål om konkurransen må være mottatt senest 5. november 2026.»motstrid med rad 2
7Befaring5«Oppdragsgiver kan holde befaring i lokalene. Dato blir kunngjort.»fant ikke dato
8Åpent minst 20 timer i uka, fire dager, én kveld til 192«Leverandøren skal holde sentralen åpen minst 20 timer per uke, fordelt på minst fire dager.»fant
14Månedsrapport innen den 10.4«Leverandøren skal føre statistikk over utlån og levere en rapport til oppdragsgiver innen den 10. i hver måned.»fant
17Utlevering på lørdager4«Leverandøren bør tilby utlevering på lørdager.»fant
24Dagbot 0,1 prosent per dag, tak 10 prosent6«dagbot på 0,1 prosent av årlig kontraktsverdi per kalenderdag»fant
26Ansvarsbegrensningingenfant ikke: side 6 viser til vedlegg 3, som ikke er med
27Prisskjemaingenfant ikke: vedlegg 2 er ikke med

Laget for hånd, ikke kjørt gjennom en AI. Hele matrisen med 27 rader: kravmatrise.csv (semikolon, åpnes i Excel).

Tre ting i matrisen er verdt mer enn resten. Spørsmålsfristen står som 3. november på side 1 og 5. november på side 5. Da spør du oppdragsgiveren hvilken som gjelder, og holder deg til den tidligste til du har svar. Befaringen har ingen dato. Og ansvarsbegrensningen står ikke i dokumentet i det hele tatt, bare en henvisning til et vedlegg som ikke er med.

En AI som ikke fikk vedlegget, kan ikke vite hva som står der. Det er derfor «fant ikke» må være en egen kolonne. Uten den ser en matrise med 25 rader komplett ut.

Stikkprøven: du sjekker, ikke den

En matrise fra AI er et utkast. Før du stoler på den, slår du opp rader i dokumentet og leser sitatet der det står. Hvor mange avhenger av hva som står på spill. Slik ville jeg gjort det: minst tre rader for å se om noe er helt galt, og for et tilbud dere virkelig vil vinne, alle skal-krav og alle kontraktsvilkår.

Velg radene med vilje. Ta de kravene som koster mest å bomme på, og én tilfeldig. For hver rad sjekker du tre ting: at sitatet står der, at det står på den siden, og at kravet i matrisen sier det samme som sitatet. Det siste er det ingen maskin som gjør for deg.

Og husk det motsatte. At AI-en ikke fant noe om ansvar, betyr ikke at det ikke finnes. Det betyr at det ikke sto i det den fikk. En gjennomgang som ikke fant noe, er ikke en godkjenning. Mer om hvordan AI tar feil, og hvorfor den høres like sikker ut uansett, står i Når AI tar feil.

For deg som bygger: la et skript sjekke sitatene

Den første delen av stikkprøven kan en maskin gjøre. Skriptet leser matrisen og dokumentet, og sjekker at hvert sitat står ordrett på siden som er oppgitt. Det bruker bare standardbiblioteket i Python. Last ned sjekk_sitater.py og kravmatrise.csv, og lagre eksempelet som konkurransegrunnlag.html i samme mappe.

python sjekk_sitater.py kravmatrise.csv konkurransegrunnlag.html
Utskrift · kjørt med Python 3.13
Dokumentet har 6 sider. Matrisen har 27 rader.
Sitat funnet ordrett på oppgitt side: 25
Rader uten sitat (fant ikke): 2
  rad 26: Ansvarsbegrensning (fant ikke: side 6 viser til vedlegg 3, som ikke er med)
  rad 27: Prisskjema (fant ikke: vedlegg 2 er ikke med)
Sitat for korte til å sjekke (under 20 tegn): 0
Sitat som IKKE står på oppgitt side: 0

For å se at det virker, er to rader lagt til i en kopi av matrisen: et krav om ISO 9001 som ikke står i dokumentet, og dagboten med feil side. Det er to av feilene en AI kan gjøre, og de to skriptet kan fange. Et krav som mangler i matrisen, finner det ikke. Utskriften:

Utskrift · med to feil lagt inn
Dokumentet har 6 sider. Matrisen har 29 rader.
Sitat funnet ordrett på oppgitt side: 25
Rader uten sitat (fant ikke): 2
  rad 26: Ansvarsbegrensning (fant ikke: side 6 viser til vedlegg 3, som ikke er med)
  rad 27: Prisskjema (fant ikke: vedlegg 2 er ikke med)
Sitat for korte til å sjekke (under 20 tegn): 0
Sitat som IKKE står på oppgitt side: 2
  rad 28: ISO 9001-sertifisering (oppgitt side 3, finnes ikke i dokumentet)
  rad 29: Dagbot (oppgitt side 5, står på side 6)

Sitater under 20 tegn telles for seg, fordi et sitat på ett ord nesten alltid står et sted, og et avkuttet sitat kan skjule en betingelse. Et avkuttet sitat på 20 tegn eller mer slipper likevel gjennom. Skriptet sjekker at sitatet finnes, ikke at kravet er forstått riktig, og det finner ikke krav som mangler i matrisen. Det leser bare HTML der hver side er en egen seksjon, slik eksempelet er bygd. For en PDF må teksten først ut med sidetall, og det gjør ikke dette skriptet.

Før dere bestemmer dere: leverer vi?

Matrisen er ikke svaret på om dere skal levere. Den er grunnlaget for å bestemme det. Tre spørsmål bør den svare på før noen begynner å skrive tilbudet:

Hva står om ansvarsbegrensning, og har vi sett vedlegget den viser til?
Hva koster dagboten på det verste? I eksempelet er taket 10 prosent av årlig kontraktsverdi.
Hva er uklart og må spørres om før spørsmålsfristen?

Hva AI-en gjør, og hva den ikke gjør

La AI gjøre

  • Gå gjennom hele dokumentet med samme sjekkliste, del for del
  • Liste krav, frister og vilkår med side og sitat
  • Finne steder der dokumentet sier to ulike ting
  • Lage første utkast til en sjekkliste for tilbudet

Eier du selv

  • Om dere skal levere i det hele tatt
  • Hva vilkår om ansvar, dagbot og avvik betyr for dere
  • Stikkprøven, og hvilke rader som sjekkes
  • Vedleggene AI-en ikke fikk

Hva du kan lime inn hvor, står i Hva kan du lime inn, og en regel for hele bedriften finnes i AI-reglene dine på én side. Skal bedriften kjøpe et verktøy til dette, ta med ti spørsmål til den som selger.

Oppdatert oktober 2026. Konkurransegrunnlaget, kommunen og kravmatrisen er oppdiktet. Matrisen er laget for hånd og er ikke en kjørt AI-utskrift. Utskriftene fra sjekk_sitater.py er faktiske, kjørt med Python 3.13 9. oktober 2026. At ytelsen faller når kontekstvinduet fylles: Anthropic, Best practices for Claude Code. Dokumentet først og sitater før jobben: Anthropic, Prompting best practices, avsnittet om lange dokumenter. Begge lest 9. oktober 2026. Studien er Liu m.fl., «Lost in the Middle: How Language Models Use Long Contexts» (arXiv 2023, publisert i TACL), der bare sammendraget er lest. Siden omtaler ikke regelverket for offentlige anskaffelser, og et ekte konkurransegrunnlag viser til det. Dette er ikke juridisk rådgivning.