Läser in
Läser in
Sprint-avgiften på 79 000 kr exklusive moms täcker 60 dagars onboarding mot 10 mätbara kriterier. Plattformen utvärderar varje natt. På dag 60 är ni antingen audit-ready med signerat bevis, eller så återbetalar Stripe automatiskt hela summan plus moms. Ingen rabatt-trappa, ingen konsultarvodes-tvist, ingen förhandling.
Sprint-klockan börjar tickar i samma sekund som första fakturan går iväg. Hela perioden är observerbar i plattformen: ni ser vilka kriterier som är gröna, gula eller röda, och vad som krävs för att vrida om dem. Inga ändringar görs skarpt utan ert godkännande.
Sprint-avtalet signeras digitalt. Stripe skickar fakturan på 79 000 kr exklusive moms med 30 dagars betalningsvillkor. Sprint-klockan startar samma dag, oavsett när fakturan landar i bokföringen. Plattformsåtkomst öppnas direkt och ni utser kontaktperson med beslutsmandat.
Den nattliga agenten kör utvärderingsfrågan mot alla 10 kriterier varje natt klockan 02:00 svensk tid. Onboarding-team håller fyra schemalagda workshops om policy, risk, leverantörer och AI-systemregister. Allt loggas append-only i audit_log.
Plattformen tar en immutabel snapshot av kriterierna. Alla gröna: ni får audit-ready-bevis som signerad PDF och Always-On-prenumerationen startar (36 000 kr per år). Något fattas: full refund triggas automatiskt via Stripe.
Varje kriterium är formulerat som en SQL-fråga mot plattformsdatabasen. Det finns ingen subjektiv bedömning. Antingen är raden grön eller så är den inte det. Definitionerna ligger i src/lib/billing/audit-criteria.ts och förändras inte under pågående Sprint.
Cybersäkerhetspolicy formellt antagen av styrelsen med dokumenterat beslutsdatum.
En policy med policy_type = "cybersecurity" har status = "adopted" och board_resolution_date är satt.
Policy-PDF, board_resolution_date och digital signatur sparas i policies-tabellen och hashas in i audit-loggen.
Alla risker med likelihood × impact ≥ 12 har dokumenterad mitigation.
Inga risks-rader med risk_score ≥ 12 saknar mitigation_plan.
Riskposter med score, mitigation_plan och ägare lagras i risks-tabellen. Score över 12 är spärrade tills mitigation finns.
Minst 95 procent av aktiva leverantörer är klassificerade (inte status "unqualified").
Andel aktiva suppliers med assessment_status ≠ "unqualified" är ≥ 95 procent.
Leverantörsregister med assessment_status per leverantör; export som CSV och PDF för tillsyn.
Minst en testrapport till CERT-SE med diary-id finns dokumenterad.
incident_reports har minst en rad med is_test = TRUE och cert_se_diary_id satt.
Testrapport med cert_se_diary_id och tidsstämpel sparas i incident_reports. Inget mcf_diary_id används; incidenter går till CERT-SE.
Senaste styrelserapporten är undertecknad inom innevarande kvartal.
board_reports har minst en rad med signed_at inom de senaste 90 dagarna.
Styrelseprotokoll med signed_at-tidsstämpel inom senaste 90 dagarna. Versionerat i board_reports-tabellen.
AI Literacy Statement (artikel 4) har genererats inom 90 dagar.
audit_log har minst en rad med action = "ai_literacy.statement_exported" inom 90 dagar.
Audit-loggen får entry ai_literacy.statement_exported med PDF-hash. Statementet undertecknas av styrelsen.
Minst ett AI-system inventerat och ≥ 80 procent av systemen är klassificerade.
ai_systems-tabellen har ≥ 1 rad och andelen rader med status ≠ "pending_classification" är ≥ 80 procent.
AI-systemregistret i ai_systems-tabellen. Klassificeringshistorik sparas; omklassificering bevarar tidigare beslut.
Minst 80 procent av aktiva leverantörer har vendor_assessment.status = "complete".
Andel suppliers med vendor_assessments.status = "complete" är ≥ 80 procent.
vendor_assessments-tabellen med status complete per leverantör. Bedömningsmall och svar sparas som JSON.
Affärskontinuitetsplan (BCP) är godkänd och har innehåll.
bcp_plans-tabellen har minst en rad med status = "approved" och content är inte tom.
BCP i bcp_plans-tabellen med status approved. Innehåll, krisroller, RTO och RPO lagras strukturerat.
Inga olösta kritiska incidenter äldre än 30 dagar; inga audit-luckor större än 24 timmar.
Ingen rad i incidents med severity = "critical" och status ≠ "resolved" är äldre än 30 dagar. audit_log har ingen lucka > 24h.
audit_log är append-only på databasnivå (trigger blockerar UPDATE och DELETE). Lucka över 24 timmar markeras som kritisk.
Lägg märke till kriterium 4: incidentrapporten går till CERT-SE och spårar via cert_se_diary_id. MCF (Myndigheten för cybersäkerhet och försvar, hette MSB fram till 1 januari 2026) är tillsynsmyndighet, men incidenter går till CERT-SE. Plattformen använder aldrig msb_diary_id.
Den nattliga agenten utvärderar kriterierna under hela Sprint så att ni har en realtidsbild i plattformen. Det avgörande utfallet sker på dag 60. Då skrivs en immutabel snapshot till tabellen assessment_runs. Snapshot-raden kan inte ändras, bara läsas och refereras.
Out-snapshoten signeras digitalt med tidsstämpel och hash av alla kriteriers status. Ni får antingen ett audit-ready-bevis som signerad PDF, eller en refund-bekräftelse med exakt vilka kriterier som inte var gröna och varför.
Det finns ingen mejlväxling, ingen säljreaktion, ingen reduktion på resultatet. Refund triggas av samma agent som har utvärderat kriterierna under Sprint, i samma kodväg som körs nattligt. Logik ligger i src/lib/billing/refund.ts.
Funktionen countPassed() läser snapshot-raden från assessment_runs. Om resultatet inte är 10 kallas triggerSprintRefund() med assessment-id som argument.
Idempotency-nyckeln är sprint_refund:{org_id}:{assessment_id} vilket gör att retries inte resulterar i dubbla refunds. Refunden kopplas till payment_intent eller charge på fakturan via stripe.invoicePayments.list.
Beloppet på Sprint-fakturan i sin helhet återbetalas till samma betalningsmetod. Stripe-tidsfönstret är 5 till 10 bankdagar beroende på utfärdande bank. Ni får bekräftelsemejl direkt med Stripe-referens och en lista över vilka kriterier som inte var gröna.
Entry skrivs i audit_log med refund_id, belopp i öre och anledning. Tabellen är append-only på databasnivå (migration 021_audit_log_append_only): trigger blockerar både UPDATE och DELETE.
Två mekanismer skyddar både kund och leverantör från att automatiken springer ifrån verkligheten. Båda är dokumenterade i koden och loggas i audit_log.
Kolumnen organizations.refund_circuit_breaker_paused kan sättas till TRUE av admin via /agent-forslag. När den är aktiv blockeras automatisk refund och assessment går till status manual_review. Allt loggas som audit_ready.refund_blocked_breaker.
Sprint-avgiften 79 000 kr ligger under tröskeln, så vanlig Sprint refundas automatiskt. Större paket eller flera Sprintar samtidigt kan passera 100 000 kr; då markeras ärendet som manual_review och en admin måste godkänna manuellt. Loggas som audit_ready.refund_requires_approval med belopp i öre.
Varje pausning eller manuell granskning skrivs som rad i audit_log med organisations-id, användar-id, anledning och tidsstämpel. Inga rader kan tas bort eller ändras i efterhand. PTS, MCF och CERT-SE kan begära ut loggen som signerad CSV.
Tre situationer kan motivera att Sprint-klockan pausas. Varje paus kräver dokumenterad anledning och admin-godkännande, och återupptas automatiskt när orsaken är åtgärdad. Alla pauser loggas i audit_log.
Om CERT-SE inte tar emot diary-anmälningar under en period kan kriterium 4 inte uppfyllas oavsett insats. Pausen pågår tills CERT-SE bekräftar att kanalen är öppen igen.
Längre IT-incident hos kunden som blockerar import av leverantörsdata, AI-systemkartläggning eller signering av styrelseprotokoll. Kräver incidentrapport från kunden som underlag för pausen.
Tillsynsmyndighet (PTS, MCF, IMY eller sektorspecifik) ger ut bindande klargörande som direkt påverkar något av kriterierna. Pausen pågår tills tolkningen är inarbetad i plattformen.
Garantin är ömsesidig. CyberKlar levererar plattform, workshops och nattlig utvärdering. Kunden står för beslutsmandat och tillgång till underlag. Vid uteblivet kund-input räknas det som customer-side blocking och pausar klockan.
Inga refunds har triggats i pilot ännu. Mekaniken är dock testad i staging-miljö med syntetiska kunder och fungerar som beskrivet. Vi publicerar varje verkligt utfall här när det inträffar, anonymiserat per anledning.
Vill ni ha svaren skriftligt innan signing räcker det med ett mejl till support@cyberklar.se. Vi svarar på alla sex frågorna inom 24 timmar och bifogar svaret i Sprint-avtalet som bilaga.
Sprint startar dagen avtalet är signerat. Demo är 30 minuter live mot er sektor. Inget av valen kostar mer än Sprint- avgiften 79 000 kr exklusive moms; demo är kostnadsfritt. Hela prislistan ligger öppet, och villkoren refererar denna garantitext direkt.
Avsiktligt utebliven respons inom 5 arbetsdagar på riskbedömnings- och leverantörsbedömnings-input, helt utebliven närvaro vid de 4 schemalagda workshops, eller vägran att utse en kontaktperson med beslutsmandat. Workshops kan flyttas i samråd. Att flytta är inte blocking; att inte dyka upp utan ombokning är. Customer-side blocking pausar 60-dagars-klockan; den återupptas när hindret är åtgärdat.
Inga refunds har triggats i pilot ännu. Sprint är nytt som outcome-produkt och pilotfönstret är fortfarande aktivt. Vi publicerar utfallet löpande på sidan när data finns. Att inga refunds triggat hittills är inte ett löfte om att inga kommer triggas; mekaniken är konstruerad för att utfalla mot kund vid utebliven leverans.
Nej. Sprint-avgiften 79 000 kr återbetalas i sin helhet. Always-On-prenumerationen startar inte automatiskt vid refund. Plattformsåtkomst stängs ned 14 dagar efter att refund-bekräftelsen är skickad, och all kunddata exporteras som strukturerad JSON plus PDF-protokoll innan dess. Ni kan när som helst köra en ny Sprint senare om förutsättningarna ändras.
CyberKlar AB:s svenska Stripe-konto. Refund går tillbaka till samma betalningsmetod som Sprint-fakturan betalades med, oftast bankkort eller företagskonto via Stripe Invoice. Refund-id loggas i audit_log med entry audit_ready.refund_triggered, och ni får bekräftelsemejl med Stripe-referens samt vilka av de 10 kriterierna som inte var gröna på dag 60.
Ja. Garantin ingår i Sprint-avtalet som signeras innan första fakturan, och refund-villkoren refereras direkt i avtalstexten. Svensk konsument- och avtalslag tillämpas; tvist avgörs av allmän domstol med Stockholms tingsrätt som första instans. CyberKlar AB är registrerat i Sverige och momsregistrerat. Hela avtalstexten finns i bilagan vid signering.
Ja. En ny Sprint kräver nytt avtal och ny faktura, men det finns ingen karenstid. Det vi rekommenderar är ett kort scoping-samtal innan ni signar igen, så att de hinder som triggade förra refunden är åtgärdade. Vanligast är intern kapacitet, brist på beslutsmandat eller en ofärdig leverantörsstruktur som inte gick att rekonstruera på 60 dagar.
Mer kontext finns på startsidan, prislistan, NIS2-översikten, AI Act-översikten, DPA:n och säkerhetssidan.