Specifikation: Statistikverktyg (Vklass Analys)
Variant
Modern (explicit i run-prompten). Vid konflikt med V2-regler vinner V2 (mockup-html.md).
Roller
- Organisationsadministratör/skolchef (
admin.html) — Anders Bergman (T5000-001): organisationsöversikt, jämför skolor, alla rapportfamiljer på organisationsnivå, drill-down till skola och elevnivå. - Rektor/skoladmin (
rektor.html) — Magnus Widén (T5004-007): skolenhetsanalys för Proximaskolan, uppföljningslistor (saknade omdömen, oregistrerade lektioner, early warning), elevnivå inom egen skola. - Lärare/mentor (
teacher.html) — Kerstin Berg (T5004-002): mentorsvy för 7A + egna undervisningsgrupper, elevnivå inom egna relationer. - Elev (
student.html) — Anna Andersson (S5004-701): åtkomstgräns/transparens — ingen analysåtkomst, förklaring av vad som analyseras och vem som ser vad. - Vårdnadshavare (
custodian.html) — Eva Andersson (C5004-701A): samma åtkomstgränsmönster. index.html— rollväljare + demo-film.
Användningsfall (UC)
UC-01: Navigera analysportalen (rollstyrd navigation + aktivering)
- Aktör: Admin, rektor, lärare
- Förutsättning: Inloggad med rätt roll; Analys aktiverat för organisationen
- Flöde:
- Användaren öppnar Analys och landar på rollens Översikt (dashboard).
- Rapportnavigationen visar rapportfamiljerna grupperade per domän: Översikt; Närvaro & frånvaro (Frånvaro, Early warning, Oregistrerade lektioner); Kunskap & resultat (Omdömen, Saknade omdömen, Betyg, Nationella prov, Kartläggning); Tvärdomän & kvalitet (Tvärdomänsanalys, Kvalitetsarbete & benchmark); Engagemang (Inloggningar & adoption, Samtycken); Förskola & fritids; Om datan (Måttkatalog, Datakvalitet & synkstatus).
- Rapporter som kräver källspike/produktbeslut (Uppgifter & resultat, Överlämningar, Planeringar & dokumentation, Stöd & risk) visas som låsta poster med förklaring — ingen data läcker.
- Navigationen är rollfiltrerad: lärare ser inte organisationsrapporter; rektor ser sin skola.
- Byte av rapport uppdaterar innehållsytan utan sidladdning; aktiv post markeras med
aria-current.
- Resultat: Användaren når varje rapportfamilj på max 2 klick; skalar till hela produktens rapportlista.
- Acceptanskriterier: Grupperad navigation med alla rapportfamiljer; låsta poster med förklaring; rollstyrd visibility;
aria-currentpå aktiv post; ingen data/count i låsta lägen.
UC-02: Organisationsöversikt med jämförelser (admin)
- Aktör: Organisationsadministratör
- Flöde:
- Översikten visar 4 headline-KPI:er (närvaro, snittbetyg, omdömestäckning, aktiva användare) med trendpil, delta mot föregående period och sparkline.
- Panelen "Att agera på" listar early warning-signaler och datakvalitetsavvikelser.
- Diagram "Skolor mot organisationssnitt" visar per skola med benchmark-markör för organisationssnitt och Vklass-snitt.
- Domänkort per rapportfamilj visar status, nyckeltal och senaste synktid; klick öppnar rapporten.
- Drill-down: skola → klass → elevnivå fungerar utan att lämna användarens scope.
- Acceptanskriterier: Max 4 headline-KPI:er; benchmark mot organisationssnitt + Vklass-snitt; Vklass-snitt exponerar aldrig annan organisations enheter; alla kort visar period + synktid; skolor med
ExcludeFromAggregatedReportsmarkeras och ingår ej i snitt.
UC-03: Skolenhetsanalys (rektor)
- Aktör: Rektor
- Flöde: Samma dashboardmönster scopat till Proximaskolan; uppföljningslistor (saknade omdömen, oregistrerade lektioner, early warning) nås direkt från översikten; drill-down till elevnivå.
- Acceptanskriterier: Endast egen skola; elevnivå med namn/klass; uppföljningslistor följer accessmatris.
UC-04: Mentor-/ämneslärarvy (lärare)
- Aktör: Mentor/ämneslärare
- Flöde: Kerstin ser 7A + egna undervisningsgrupper: klassens närvaro, omdömesläge, early warning för mentorselever, tvärdomänsvy per elev. Rapporten förklarar att data utanför egna relationer inte visas.
- Acceptanskriterier: Endast egna klasser/grupper; elevnivå; förklaringstext om behörighetsscope; inga organisationsrapporter i navigationen.
UC-05: Domänrapporter (frånvaro, omdömen, betyg, nationella prov, kartläggning)
- Aktör: Admin, rektor, lärare (scopeberoende)
- Flöde per rapport:
- Rapporthuvud visar: analysmognadsetikett (
beskrivande/trend/jämförelse/risksignal), period, aktiva filter, datakälla (ClickHouse-tabell), senaste synktid, faktablad-knapp och export-knapp. - Kontextfilterraden visar endast relevanta filter (period, skolform, skola, årskurs, klass, ämne/kurs, kön där tillåtet).
- Frånvaro: KPI:er, månadstrend (linje), närvarofördelning (donut giltig/ogiltig/närvaro), veckodagsheatmap, tabell per skola/klass/kurs med sparklines + individlista på elevnivå.
- Omdömen: nivåfördelning 1/2/3+ som staplade staplar per ämne/årskurs; "saknar omdöme" som egen neutral signal; drill-down till elevlista med/utan omdöme.
- Betyg: A–F-fördelning (staplade staplar), snittbetyg (aldrig kallat meritvärde), Skolverksnyckeltal: genomsnittligt meritvärde (16-ämnesregeln), andel som uppnår kunskapskraven, behörighet till yrkesprogram — per kön och skola; instabila procenttal märks med kvalitetsetikett; elevnivå.
- Nationella prov: provval, resultatfördelning, deltagande, NP-vs-betyg-jämförelse med
unknown_mapping/partial-lägen tydligt flaggade; elevnivå. - Kartläggning: material × årskurs (F/1/3) progress-heatmap (röd/gul/grön), sammanfattning per skola/år, CSV-export.
- Rapporthuvud visar: analysmognadsetikett (
- Acceptanskriterier: Varje rapport har metadatarad + faktablad + mognadsetikett; tabeller ≥10 rader; varje tabell kompletteras med minst ett diagram; elevnivå utan suppression; pregrade/IUP blandas inte med betyg.
UC-06: Uppföljning & risk (early warning, saknade omdömen, oregistrerade lektioner)
- Aktör: Rektor (skola), admin (organisation), mentor (egna elever)
- Flöde:
- Early warning: risklista med indikatornivå (
Uppmärksamma/Följ upp/Datakvalitet saknas), total/ogiltig/giltig frånvaroandel, sen ankomst separat, trend mot föregående period, befintlig frånvarovarning som kontext; detaljpanel förklarar VARFÖR eleven visas (tröskel, period, tröskelprofil, datakällor, datakvalitet); knappen "Följ upp i särskilt stöd" är inaktiverad med förklaring (kräver separat beslut). - Saknade omdömen: per kurs/lärare: elever totalt/med/utan omdöme, % klart med progressstapel; drill-down till elevlista.
- Oregistrerade lektioner: per pedagog/klass: schemalagda, registreringspliktiga, registrerade, oregistrerade, inställda, andel registrerat, senaste registrering; detaljlista.
- Early warning: risklista med indikatornivå (
- Acceptanskriterier: Indikatornivåer enligt Bilaga B; copy formulerar mönster, inte slutsatser; ingen automatik;
lectures.attendanceRegisteredAtanges som signalkälla; tröskelprofil synlig.
UC-07: Engagemang & förskola (inloggningar, samtycken, förskola/fritids)
- Aktör: Admin, rektor
- Flöde:
- Inloggningar/adoption: trend per rollgrupp (elev/lärare/personal/vårdnadshavare), aktiva användare vs målpopulation per skola, individlista "ej inloggade under perioden" för behöriga, mikrocopy att adoption är datakvalitetsindikator för övriga rapporter (uppföljning, inte övervakning).
- Samtycken: svarsfrekvens per samtycke/skola/klass (eligible/approved/rejected/waiting/responseRate).
- Förskola/fritids: planerad tid vs faktisk närvaro + differens per avdelning, beläggning per timme, lovschema-markering; hålls helt skild från skolans lektionsnärvaro.
- Acceptanskriterier: IP/sidor förekommer inte; rollfördelad trend; beläggningsdiagram per timme; separat skolformsdomän för förskola.
UC-08: Tvärdomänsanalys & kvalitetsarbete
- Aktör: Admin, rektor, mentor (egna elever)
- Flöde:
- Tvärdomänsanalys (prioriterad vy): kombinationsvy med frånvaro, omdömen, betyg och NP i samma tabell per skola/årskurs/klass — och per elev för behöriga; scatterdiagram frånvaro × snittbetyg; markering när en domän saknar underlag för perioden; mikrocopy: "Vyn visar mönster — inte orsaker. Underlaget kräver professionell bedömning."
- Kvalitetsarbete: årsjämförelse per domän-KPI (i år/förra året/delta), benchmark mot organisationssnitt, skolformssegment och Vklass-snitt; läsårscykelstöd (terminstart, månatlig närvaroöversyn, betygs-/omdömescheckpoints, kvalitetssammanfattning).
- Acceptanskriterier: Minst två domäner i samma vy; saknat underlag markeras per domän; inga orsaksformuleringar; årsdelta med riktningspilar; Vklass-snitt aggregerat utan tenant-läckage; inga rankinglistor utan kontext.
UC-09: Export med metadata
- Aktör: Admin, rektor, lärare (rollstyrt)
- Flöde: Exportknapp per rapport öppnar dialog som visar exakt vad som exporteras: period, aktiva filter, datakälla, senaste synktid, skapad-tidpunkt, radantal — och att exporthändelsen loggas. Där rollen saknar exporträtt är knappen inaktiverad med tydlig förklaring.
- Acceptanskriterier: Metadata i dialogen matchar vyns filter; logg-notis; rollstyrd inaktivering med förklaring; ingen notis/mutation.
UC-10: Transparens (måttkatalog, datakvalitet, åtkomstgräns)
- Aktör: Alla roller
- Flöde:
- Måttkatalog: listar alla mått (
dim_analysis_metric) med definition, domän, enhet, källa och tolkningsrisker; faktablad per rapport öppnas som dialog. - Datakvalitet & synkstatus: per domän: vattenmärke, senaste synk, status (
ok/partial/stale), radantal — frånmeta_domain_watermark/meta_etl_run. - Diagnostiska tomma lägen: minst tre olika demonstrerade (t.ex. modul används inte på skolan; synken har inte omfattat perioden; NP-mappning saknas).
- Elev/vårdnadshavare: sidan förklarar att analysytan är för personal, vilken data som ingår, vem som ser vad och att skolan äger datan; ingen analysdata visas.
- Måttkatalog: listar alla mått (
- Acceptanskriterier: Måttkatalog med ≥10 mått; synkstatus per domän; tomma lägen skiljer orsaker; elev-/vårdnadshavarvyer utan dataläckage.
Datamodell
Feature-datat (mock-data/Statistikverktyg_(Vklass_Analys)_-_intent-spec-data.json) speglar Bilaga A:s ClickHouse-struktur (utan suppressionkolumner). Personreferenser sker via userID mot consolidated-demo-data.json.
- meta:
domainWatermarks[]{ domain, watermarkColumn, lastSyncedAt, status, rowsWritten } (≙meta_domain_watermark/meta_etl_run) - metricCatalog[] { metricKey, domain, displayNameSv, descriptionSv, unit, maturity, källa, tolkningsrisker } (≙
dim_analysis_metric+ rapportfaktablad) - attendance: månadsaggregat per skola/klass/kurs { presenceMinutes, invalidAbsenceMinutes, validAbsenceMinutes, scheduledMinutes, lateArrivalMinutes } + per veckodag + elevrader { userID, klass, andelar } (≙
fact_attendance_student_course_daily+agg_attendance_monthly_*) - earlyWarning[] { userID, classID, absencePercent, invalidAbsencePercent, lateArrivalMinutes, previousPeriodAbsencePercent, trendDelta, hasExistingAbsenceAlert, indicatorLevel, thresholdProfile, qualityFlags } (≙
agg_early_warning_attendance_period) - judgements: nivåfördelning per ämne/årskurs/skola { needSupportCount, acceptableCount, aboveAcceptableCount, missingCount } + elevrader (≙
fact_judgement_student_course_snapshot) - judgementCompletion[] { courseID/namn, teacherRef, studentCount, studentsWithJudgement, studentsWithoutJudgement, completionRate } (≙
fact_judgement_completion_period) - grades: fördelning A–F per ämne/skola/kön, snittbetygsvärde, skolverksnyckeltal { averageMeritValue, reachedGoalsPercent, vocationalEligibilityPercent } + elevrader (≙
fact_grade_student_course_period+agg_grade_*) - nationalExams[] { examName, subject, educationYear, participation, gradeDistribution, npVsFinalGrade { lower, same, higher }, parseStatus, fieldMappingVersion } (≙
fact_national_exam_result) - kartlaggning[] { materialName, educationYear (F/1/3), progressGroups { red, yellow, green, none }, schoolID } (≙
fact_knowledge_matrix_judgement) - logins: dagserie per rollgrupp { date, roleGroup, loginCount, activeUserCount, eligibleUserCount } + individlista ej inloggade (≙
fact_login_activity_daily) - preschool: per avdelning/dag { scheduledMinutes, attendanceMinutes, absenceMinutes } + beläggning per timme { hourBucket, scheduledChildCount, presentChildCount } (≙
fact_preschool_attendance_daily+agg_preschool_occupancy_hourly) - consents[] { consentTitle, schoolID, eligibleCount, approvedCount, rejectedCount, waitingCount, responseRate } (≙
fact_consent_response_snapshot) - crossDomain: rader per klass och per elev { attendancePercent, invalidAbsencePercent, judgementLevelAvg, missingJudgements, averageGradeValue, npResult, domainCoverage } (≙
agg_student_domain_period_summary) - yearComparison[] { domain, metricKey, schoolYear, metricValue, previousYearValue, delta, deltaPercent } (≙
agg_school_year_domain_summary) - benchmarks[] { benchmarkScope: organisation|school_type|vklass, metricKey, metricValue, schoolCount } (≙
agg_benchmark_metric_period) - schoolsMeta[] { schoolID, analysisEnabled, excludeFromAggregatedReports, moduleFlags } (≙
dim_school) - thresholdProfiles[] { profileKey, scope, totalAbsencePercent, invalidAbsenceHours, periodType }
Navigation
- Admin/rektor: admin-shell (dubbel toolbar + app-drawer + submenu-sidopanel). Submenu-sidopanelen är rapportnavigationen, grupperad per domän enligt UC-01; posterna byter rapportvy i innehållsytan (hash-baserat,
aria-current). - Lärare: MainWeb-shell; UPPFÖLJNING-menyn har "Analys" aktiverad; rapportbyte via sidopanelsnavigation i innehållsytan (samma grupperade mönster, färre poster).
- Elev/vårdnadshavare: MainWeb-shell; sidan nås via START; ingen rapportnavigation.
index.html: rollväljare med demo-film.
Tillgänglighetskontrakt (a11y baseline)
- Dialogmodaler:
report-factsheet-dialog(faktablad per rapport),export-dialog(exportmetadata),student-detail-dialog(elevnivå-drill-down),not-implemented-dialog. Alla via sharedwindow.vklassDialogManager.openDialog(id, opener)— ingen lokal DialogManager.role="dialog",aria-modal="true",aria-labelledby, dolda som default, Escape stänger, fokus återgår till öppnaren,inertpå shell hanteras av shared manager.@ai:focus-lifecycle-annotation per dialog. - Rapportnavigation: länklista (
<nav>+<ul><li><a>),aria-current="page"på aktiv post — INTErole="menu", INTE tabs. - Filter: selects med synliga
<label for>; domän-/scope-chips är<button aria-pressed>; resultatuppdateringar annonseras irole="status"-live-region. - Diagram: varje SVG-diagram har
role="img"+ beskrivandearia-label; datavärden finns även i tillhörande/dold tabell (diagram är aldrig enda bäraren av information); färg är aldrig ensam informationsbärare (mönster/etiketter kompletterar). - Toolbar-flyouts: aria-expanded synkas med
--open-klass (_syncFlyoutAria-helpern). - Skip-links:
<a class="skip-link" href="#main-menu">+<a class="skip-link" href="#main-content">+<main id="main-content" tabindex="-1">på alla vyer. - Dark mode: endast
body.dark-mode— ingenprefers-color-schemei feature-CSS; alla interaktiva states testas i båda lägen. - Keyboard test scope: UC-01 (navigering), UC-05/06 (drill-down-dialog), UC-09 (exportdialog), UC-10 (faktablad) måste ingå i Playwright-spec.
Bilder/sketcher
Inga referensbilder — epic-files innehåller endast markdown-research. Implementera utifrån Athena Design System (Modern) + websök-grundade dashboardmönster (se intake.md § Extern grundning). POC-skärmbilder är enligt intent-specen INTE designfacit.
Öppna frågor
- Q-01: "Följ upp i särskilt stöd"-knappen visas inaktiverad med förklaring (kräver separat produktbeslut per Bilaga B). Bekräfta att detta är rätt nivå för v1.
- Q-02: Lärare-mot-lärare-jämförelser byggs inte (öppen fråga i intent-spec 9.3). Saknade omdömen listar lärare per kurs enligt 5.11 — utan ranking.
v2-tillägg (kravspecifikationen forstudie.md [01]–[07], Run f7d646a9)
v2 kompletterar UC-05/06/07/08 med de AC-punkter ur den detaljerade kravspecifikationen (epic-dokument 171) som saknades i v1 — se intake.md § v2-tillägg (R-24–R-31):
- UC-05 Frånvaro: kontextfiltret får Kön (Alla/Flickor/Pojkar) som styr individlistan och könsuppdelade vyer ([04] AC3); individlistan får trendfilter (Alla/Endast med sämre trend) och en "Om trendkolumnen"-disclosure som förklarar beräkningen (första halva vs andra halva av vald period, %-enheter); mikrocopy namnger lektionsunderlaget
lecturesmedlecturePresenceActive([03] AC2). - UC-05 Betyg/NP: könsfiltret styr betygsrapportens könsuppdelade tabeller/diagram och NP-elevlistan.
- UC-05 Nationella prov: NP-detaljen för valt prov visar delprovsresultat (delprov A/B/C medelpoäng + provbetyg) med deltagarantal per delprov (intent-spec 5.8; POC-parity).
- UC-05 Kartläggning: aggregatet tar hänsyn till Published-status ([05] AC3/AC6): ej publicerade bedömningar exkluderas, visas som egen kolumn + badge med förklarande copy.
- UC-05/06/08 Omdömen, saknade omdömen, oregistrerade lektioner, tvärdomän: kontextfiltret får Undervisningsgrupp ([02] AC3, [05] AC1) scopad till användarens behörighet (lärare: egna grupper).
- UC-07 Förskola/fritids: filter på Avdelning ([06] AC2) samt kvalitetsflagga när incheckningar/utcheckningar saknas för vald period ([06] AC6).
A11y-kontraktet oförändrat; nya selects följer samma <label for> + #result-status-livregionsmönster, disclosure följer aria-expanded/aria-controls-kontraktet i mockup-accessible-dynamic-ui.
v3-tillägg (mänskliga extrainstruktioner, Run d80e40d9)
v3 utökar analysportalen med tre nya rapportfamiljer och en mönstersektion — se intake.md § v3-tillägg (R-32–R-38):
UC-11: Extra anpassningar & särskilt stöd (R-32–R-34)
- Aktör: Admin (organisation), rektor (egen skola), mentor/klasslärare (egna elever i klassen)
- Flöde:
- Rapporten visar KPI:er: flaggade elever, elever med extra anpassningar, aktiva åtgärdsprogram, beslut om att inte upprätta åtgärdsprogram, dokumenterade åtgärder/anpassningar.
- Fördelning per skola (staplade staplar) + trend över läsåret (aktiva program/anpassningar per månad).
- Individlista: elev, klass, status (extra anpassningar/åtgärdsprogram/utredning/beslut att inte upprätta), antal åtgärder, programstart, senast uppföljd — scopad per roll (R-34).
- Effektsektion (R-33): före/efter programstart för omdömesnivå, snittbetygsvärde och närvaro, per program och aggregerat per läsårskohort (innevarande + föregående läsår = historik).
- Acceptanskriterier: endast aggregat + status från
specialSupportCase/specialSupportCaseActions/specialSupportCaseFlaggedStudents— fritext synkas aldrig; mentor ser endast 7A; effektvyn formulerar mönster, inte orsakssamband; ingen automatik, inga rankinglistor.
UC-12: Kriteriematriser (R-35)
- Aktör: Admin, rektor, ämneslärare (egna grupper)
- Flöde: rapport under "Kunskap & resultat": markerade krav under vald period per ämne/kurs (uppfyllda/ej uppfyllda/ej publicerade), topplista över krav som flest elever inte uppfyllt, elevnivå för behöriga.
- Acceptanskriterier: endast markeringar inom tidsintervallet räknas; Published-status respekteras;
module_not_used-läge för skolor utan kriteriematriser; "ej uppfyllt" beskrivs som bedömningssignal, inte slutgiltigt omdöme.
UC-13: Undervisningstid & inställda lektioner (R-36)
- Aktör: Admin, rektor
- Flöde: erbjudna undervisningstimmar per ämne mot planerad timplan, uppdelat HT/VT/läsår; antal inställda lektioner per ämne och månad; skolnivå + ämnesnivå.
- Acceptanskriterier: timmar beräknas ur schemalagda lektioner minus inställda (
lectures,lectureCancelled); planerad tid = timplansreferens; inställda lektioner visas separat och räknas bort ur erbjuden tid; delvis underlag flaggas.
UC-14: Mönster & samband (R-37–R-38)
- Aktör: Admin, rektor, mentor (egna elever)
- Flöde: Tvärdomänsanalysen utökas: (1) nya kolumner — stödinsats per elev, erbjuden undervisningstid + inställda lektioner per klass/skola; (2) sektionen "Mönster & samband" med korrelationsheatmap över domänpar, "starkaste samband"-lista och neutrala mönsterkort ("vad fungerar/vad fungerar inte"); (3) elevdetalj-dialogen visar stödinsats- och kriteriematrisstatus.
- Acceptanskriterier: minst sex domänpar med korrelationsvärde + underlag (n); varje samband har neutral mönsterbeskrivning; "korrelation är inte orsakssamband"-copy; inga automatiska slutsatser om enskilda elever eller lärare.
A11y-tillägg v3
- Nya rapporter följer samma kontrakt: rapportnav-länkar med
aria-current, metadatarad, faktablad-dialog (sharedvklassDialogManager), export-dialog,role="img"+aria-label+ tabelldata för alla nya SVG-diagram, livregionsannonsering vid rapportbyte. - Korrelationsheatmapen har kompletterande tabell/lista (färg aldrig ensam bärare); effektvyns före/efter-staplar har text-delta per rad.
v4-tillägg (mänskliga extrainstruktioner, Run 03b60f7f)
v4 gör Vklass Analys till en egen applikation och rollanpassar vyerna — se intake.md § v4-tillägg (R-39–R-45):
Roller v4 (ersätter rollistan ovan)
- Skolchef/organisationsadministratör (
admin.html) — Anders Bergman (T5000-001): aggregerade resultat per skola; elevnivå via drill-down (välj skola). - Rektor/skoladmin (
rektor.html) — Magnus Widén (T5004-007): egen skola med elevnivå direkt (oförändrat mönster). - Klassföreståndare/mentor (
teacher.html) — Kerstin Berg (T5004-002): mentorsklass 7A; stödrapport, early warning och tvärdomän för egna elever. Ej kriteriematriser (ämnesansvar). - Ämneslärare (
amneslarare.html, NY) — Thomas Nilsson (T5004-003): egna undervisningsgrupper (Engelska 8A, Engelska 9A); omdömen, kriteriematriser, frånvaro och tvärdomän för egna grupper. Ej stödrapport (mentoransvar) och ej skolövergripande uppföljningslistor. - Elev (
student.html) / Vårdnadshavare (custodian.html): åtkomstgräns/transparens — oförändrat innehåll i ny app-shell.
UC-15: Fristående applikation med egen meny (R-39)
- Aktör: Alla roller
- Flöde:
- Vklass Analys öppnas som egen applikation (egen shell) — inte som en sida i vanliga Vklass. Adminwebbens och lärarvyns mallar används inte.
- Topbar: Vklass Analys-logotyp, rollens scope, länken "Öppna Vklass" (tillbaka till huvudapplikationen), mörkt läge-växlare och användarmeny. Ingen sök, inget snabbval.
- Egen rapportmeny i sidopanel (grupperad per domän, samma grupper som UC-01), kollapsbar på mobil via menyknapp.
- Acceptanskriterier: inga
#search-toggle/#snabbvalsmeny-toggle/#notifications-togglei topbaren; egen meny medaria-current; skip-links#main-menu+#main-content; dark mode viabody.dark-mode; dialoger via sharedvklassDialogManager(shell-roten behållervk-layout-klassen för inert-kontraktet).
UC-16: Vårdnadshavarengagemang & användningsgrad (R-42–R-45)
- Aktör: Skolchef, rektor
- Flöde:
- Inloggningar/adoption: huvud-KPI för vårdnadshavare = andel elever med minst 1 vårdnadshavare som loggat in under perioden (epic-SQL
ChildrenWithActiveGuardian/TotalChildrenWithGuardianAccount); total VH-adoption och inloggningsvolym visas som sekundära värden; per skola-fördelning. - Kontaktuppgifter: andel VH med mobilnummer, e-postadress respektive båda, samt senaste bekräftelse (<12 mån / >12 mån / aldrig) per skola. Lagringskällan för bekräftelsetidpunkten är ett dokumenterat antagande (Kira MCP otillgänglig i denna runtime).
- Användningsgrad (ny rapport under Engagemang): filer, lagring GB (totalt + per lärare), skickade SMS/meddelanden, publicerade nyheter, provuppgifter, kalenderhändelser, pedagogiska planeringar, kriteriematrisifyllnad — per skola och månad.
- Användningsgradsindex: sammanvägt tal 0–100 per skola med transparent viktning (faktablad); ny kolumn i tvärdomänstabellen, scatter index × närvaro samt nya korrelationsrader och mönsterkort i Mönster & samband.
- Inloggningar/adoption: huvud-KPI för vårdnadshavare = andel elever med minst 1 vårdnadshavare som loggat in under perioden (epic-SQL
- Acceptanskriterier: huvudvärdet är elevbaserat (inte VH-baserat); alla räknare är aggregat utan innehåll/fritext; indexviktningen är synlig; korrelation ≠ orsak-copy; klassrader utan användningsdata visar "–" (skolnivåmått).
UC-17: Aggregerad organisationsnivå med drill-down (R-41)
- Aktör: Skolchef
- Flöde:
- På organisationsnivå (Skola = Alla) visar rapporterna aggregat per skola — inga elevlistor ("need attention" på elevnivå skulle bli för lång för en hel kommun).
- Early warning på org-nivå: tabell per skola med antal elever per indikatornivå (Följ upp/Uppmärksamma/Datakvalitet saknas) + andel av eleverna.
- Drill-down: skolchefen väljer skola (kontextfilter eller knapp i aggregatet) → elevnivålistorna renderas som för rektor. Rätten till elevnivå är oförändrad (intent-spec 4.3) — endast presentationen är aggregerad per default.
- Acceptanskriterier: individlistor i admin-vyn (frånvaro, early warning, omdömen, betyg, NP, stöd, kriteriematriser, tvärdomän elevtabell, ej inloggade VH) är gated bakom skolval; gaten förklarar varför + hur man drillar ner; rektor/klassföreståndare/ämneslärare påverkas inte.
A11y-tillägg v4
- Ny app-shell: topbar-kontroller är riktiga
<button>/<a>medaria-label; mobilmenyknappen togglararia-expanded+.an-app-nav--open; användarmenyn följer flyout-kontraktet (Escape stänger, fokus återgår); sidonav är<nav id="main-menu">med länklista +aria-current(interole="menu"). - Drill-down-gaten är en
role="note"-yta med skolknappar (riktiga<button>) och annonseras via befintlig#result-status-livregion vid filterbyte. - Nya diagram (VH-engagemang, användningsgrad, index-scatter) följer
role="img"+aria-label+ tabelldata-kontraktet.
v5-tillägg (mänskliga extrainstruktioner, Run e52715ca)
v5 rollanpassar översikten, inför organisationsval, gör kundytan pedagogisk och ger applikationen en egen färgidentitet — se intake.md § v5-tillägg (R-46–R-52):
UC-02/03/04-revidering: egen översiktsvy per roll (R-46)
- Aktör: Skolchef, rektor, klassföreståndare, ämneslärare
- Flöde: Översiktens fyra headline-KPI:er beskriver rollens eget ansvarsområde:
- Skolchef: organisationens närvaro, genomsnittligt meritvärde, omdömestäckning, elever med aktiv vårdnadshavare.
- Rektor: skolans närvaro, omdömestäckning på skolan, elever i early warning, skolans lärartäthet mot organisationssnittet.
- Klassföreståndare: närvaro i 7A, mentorselever i early warning, elever med stödinsats, saknade omdömen i 7A.
- Ämneslärare: omdömestäckning i egna grupper, ej uppfyllda krav i perioden, gruppernas närvaro, elever i grupperna.
- Acceptanskriterier: rollerna delar inte samma KPI-uppsättning; "Att agera på" och jämförelsediagrammet är fortsatt rollscopade (v4-beteende bevaras).
UC-18: Organisationsval (R-47)
- Aktör: Organisationsadministratör; Vklass-personal med rollen orgadministratör
- Flöde:
- Organisationsväljaren i topbaren visas endast för användare med koppling till fler än en organisation. Anders Bergman (en organisation) ser ingen väljare.
- Vklass-personal med rollen orgadministratör kan välja alla organisationer (mockup-demoläge via användarmenyn: "Demo: visa som Vklass-personal").
- Vid val av organisation uppdateras scope-etiketten och rapporterna; i mockupen visar organisationer utan demodata en tydlig demo-notis i stället för påhittad data.
- Acceptanskriterier: väljaren är dold vid en organisation; Vklass-personal ser alla organisationer i listan; rektor/lärare har aldrig väljaren; valet annonseras i
#result-status.
UC-19: Pedagogisk kundyta + egen färgidentitet (R-48–R-50, R-52)
- Aktör: Alla roller
- Flöde:
- Faktablad (R-48): beskrivning i klartext, "Så tolkar du måttet", enhet, analysmognad och uppdateringsfrekvens — aldrig tabellnamn, synkstatus eller beräkningsformler. Gäller även måttkatalogen, rapporthuvudenas metadatarad (Period + Aktiva filter + Underlag + statusbadge), exportdialogen och alla tomma lägen.
- "Om datans aktualitet" (f.d. "Datakvalitet & synkstatus"): per datadomän — vad ingår (pedagogisk beskrivning), uppdateras (Varje natt), senast uppdaterad (t.ex. "4 juli") och status. Inga ClickHouse-tabeller, vattenmärkeskolumner eller radantal.
- Borttagna texter (R-50/R-52): "Behörighet kontrolleras server-side före datahämtning" och "Senaste synk: …" visas inte längre någonstans i kundytan.
- Färgidentitet (R-49): topbaren använder applikationens egen brand-gradient (violett → indigo → cyan) med accentlinje; rapportmenyn har accentfärgade ikonplattor per rapportgrupp, rundade aktiva piller och accentprickar i grupprubrikerna. Innehållsytan (grafer, statistik, tabeller) är avsiktligt oförändrad.
- Acceptanskriterier: forbidden-lista (tabellnamn/synk/server-side/tekniska identifierare) är tom i läsbar text inkl. sr-only; topbarens computed background är brand-gradienten i både ljust och mörkt läge; spårbarheten (loggning av exporter) påverkas inte.
UC-20: Lärartäthet (R-51)
- Aktör: Skolchef (alla skolor), rektor (egen skola)
- Flöde:
- Ny rapport under "Personal & organisation": elever per lärare per skola och period.
- En lärare räknas när hen finns på skolans deltagarlista och är kopplad till minst en undervisningsgrupp som lärare under vald period; förskolor ingår inte (inga undervisningsgrupper).
- KPI:er (lärartäthet, lärare i perioden, elever, Vklass-snitt), stapeldiagram per skola med organisationssnitt som markör, månadstrend (personal som börjar/slutar syns) och tabell med lärare/elever/elever per lärare/lärare per 100 elever/trend.
- Rektorns vy visar egen skola jämförd med organisationssnittet; skolans lärartäthet är även en headline-KPI i rektorns översikt (R-46).
- Acceptanskriterier: metodnoten (deltagarlista + undervisningsgruppskoppling, räknas i perioden) är synlig i rapporten och i faktabladet; skolan utanför aggregat markeras; lärarvyerna har inte rapporten; tolkningsrisken (deltid ≠ heltid, säger inget om kvalitet) framgår.
A11y-tillägg v5
- Organisationsväljaren är en riktig
<select>med sr-only<label for>; demo-läget togglararia-pressedpå användarmeny-knappen; org-byte annonseras i#result-status; demo-notisen ärrole="note". - Nya diagram (lärartäthet per skola, månadstrend) följer
role="img"+aria-label+ tabelldata-kontraktet. - Brand-gradientens slutstopp är valt för vit topbar-text (WCAG 1.4.3); accentikonerna i menyn är
aria-hidden— länktexten bär informationen; axe serious/critical = 0 i båda lägen på nya ytor.