Senast hämtad: –Senast ändrad: –Nästa auto-refresh: ca 45sPublika kurser är periodiska/cacheade, ej tick-för-tick.
Dataintegritet: väntar på första hämtning…
Idag kräver åtgärd tryck för att öppna
Beslutsstöd – deterministisk sammanställning ur rutmodellen + senast kända värde. Ingen automatisk handel; manuell handel i Avanza.
Dagens vinnare / förlorare tryck för att öppna
Vinnare
Förlorare
8x8-bräde: ruta R64 uppe till vänster ned till R1. Faszonsfärger enligt CHESS-modellen. Kurser kan vara fördröjda beroende på datakälla. Handel sker manuellt i Avanza. Ingen automatisk handel.
Daglig Beslutsvy
Motorn ger ett deterministiskt modellbeslut per ticker och ett samlat dagsbeslut – byggt ur befintliga katalysatorer, larm och datakvalitet. Regelbaserat, inga påhittade händelser, ingen AI-spekulation, ingen finansiell rådgivning. Motorn ger beslutsförslag. Handel sker manuellt i Avanza.
Beslutsvyn sammanfattar endast skarpa och verifierade signaler. Råa larm finns i Larmcentralen.
Tips: de blå VERIFIERA-chipsen/raderna är tryckbara – tryck (eller Enter) för att se underlag (beslut, signalpoäng, triggerorsak, datakvalitet, nästa manuella steg) och snabblänkar till Larmcentral/Katalysator. Saknas underlag visas en uppmaning att kontrollera Nyheter/Katalysator och Avanza manuellt.
Utfall: –
Dagens beslut från motorn
INGEN ÅTGÄRD
Hämtar modellens beslut…
Motorn ger beslutsförslag (modellutlåtande, ej finansiell rådgivning). Ingen automatisk handel – all handel sker MANUELLT i Avanza.
A) Aktiva innehav
Endast nuvarande innehav (de 15 i portföljen). Modellåtgärder: ÖKA, BEHÅLL, VERIFIERA, MINSKA, STOPPA. Härlett deterministiskt ur ruta, signalpoäng, portföljvikt och dagsutveckling. Beslutsstöd – handel sker MANUELLT i Avanza.
B) Köpkandidater på brädet (ej i portföljen)
Bolag som finns på schackbrädet men inte i portföljen. Modellåtgärder: KÖPZON, VERIFIERA KÖP, BEVAKA, EJ KÖP. Rutregler: ruta 22 = köpzon, ruta 28–31 = verifiera köp (före faslarm), ruta 32 = köpstopp/EJ KÖP, ruta 33–35 = bevaka (verifiera köp endast vid nyligen passerad), <22 = bevaka/scout. Inga påhittade kurser – endast befintlig bräd-/signaldata. Manuell handel i Avanza.
Prioritering: kritisk/hög risk > hög positiv kontrakt/regulatorisk > R22/R28-31 entry-triggers > datakvalitetsfel > medel-katalysator > info/brus. Rader dedupliceras per ticker. Beslutsstöd, ej rådgivning. Handel sker manuellt i Avanza. Version: CHESS 43.22.1 Trigger Reason Specificity Fix.
Portfölj
Avanza-baslinje (skärmdump 2026-06-25 20:13): Totalt 314 842 SEK · Värdepapper 295 623 SEK · Kassa 19 182 SEK · I år -28 385 SEK (-8,27%) · 1 dag aktier -2,58% · Innehav 15
Bolag
Konto
Antal
Snittköp
Anskaffning
Värde
Dag
Datakvalitet
Portföljvärde över tid
Daglig värdehistorik byggs upp i appens datatillstånd. Persistens: serverfil via sidecar (value_history.json) om tillgänglig, annars körningssäker i minnet. Ingen webbläsarlagring. Inga påhittade kurser.
Dagens vinnare / förlorare tryck för att öppna
Vinnare
Förlorare
Värden uppdateras periodiskt från publik kurskälla. Handel sker manuellt i Avanza.
Signalranking / Screener
Watchlist & Screener (43.9): Bevaknings-/screeningslager för EXTERNA kandidater till schackbrädet – pre-22 scout-kandidater, gula 22–31-kandidater och 32–35 underprissatta inflection-kandidater. Watchlist – ej portfölj. Kandidaterna är en kurerad bevakningslista (scaffold), inte aktiva innehav och inte finansiell rådgivning. De 15 aktiva innehaven ingår INTE i kandidatuniversumet. candidateRank = 0,30·signal + 0,25·inflection + 0,20·dual-use + 0,15·rutpoäng + 0,10·tema + bonus(underprissatt/tidig inflection) − datakvalitetsavdrag. Rutregler: <R22 scout (bevaka), R22 köpzon (köp vid R22), R23–31 gul ackumulation/bevakning, R32 röd köpstopp, R33–35 inflection endast om underprissatt + identifierad tidigt. Inga påhittade kurser, ingen automatisk handel.
Kandidatupptäckt / Discovery (43.19)
Extern kandidatupptäckt: en levande pipeline för att aktivt hitta och poängsätta nya noterade bolag utanför det nuvarande schackbrädet. Poängsättning enligt CHESS-modellen: operationell hävstång/bruttomarginal, regulatoriskt mandat, inflektion (kontrakt/design win/SOP), dual-use (försvar/autonomi/AI/medtek/sensorer/rymd/robotik), IP-/patentvallgrav, insiderköp/ägarkvalitet, felprissättning, datakvalitet samt ett likviditets-/riskavdrag. Beslutsstöd – ingen automatisk handel, inga påhittade kurser.Ärlighet: bred automatisk marknadsscanning kräver konfigurerade externa data-källor/API:er som ännu inte är aktiva. Modulen kör nu på ett kurerat seed-universum (märkt seed / kräver verifiering) + manuell inmatning + poängsättning, och har en ingest-stub redo för externa screen-flöden. Server-fil-JSON, ingen webbläsarlagring.
Lägg till kandidat manuellt
Manuell post poängsätts på neutrala antaganden tills du fyller i signaler – markeras kräver verifiering. Ingen kurs hämtas.
Avanza-universum (43.19.2)ej kopplat
Mål-universum:Alla noterade bolag som är handlingsbara via Avanza. Importera universumets rader (CSV eller JSON) → de normaliseras, deduppas och poängsätts med samma CHESS-kriterier som Discovery, och toppkandidaterna lyfts fram. Ärlighet:full automatisk scanning kräver en Avanza-universumfeed/export. Denna version kan importera och screena universumet med CHESS-kriterierna. Den hävdar inte live Avanza-scanning utan en riktig kopplad feed. Rader utan kriteriedata rankas lågt och får en databehov-lista. Server-fil-JSON (avanza_universe.json), ingen webbläsarlagring, inga påhittade kurser, ingen automatisk handel.
Avanza-universum: full automatisk scanning kräver säker export/feed. Ingen inloggning eller scraping används. Välj läge: Manuell (klistra in nedan), URL-feed (endast en publik CSV/JSON-URL, hämtas med timeout och storleksgräns), Fil/drop-in (server-lokal exportfil) eller API (skelett tills en riktig feed kopplas). URL/fil-läge är inaktivt tills en giltig källa angetts.
Läge:
Feed-status laddas …
Importera universum (klistra in CSV eller JSON)
Endast ticker är obligatorisk. Signalkolumner som stöds: opLeverage, regMandate, inflection, dualUse, ipMoat, insider, mispricing, dataQuality, liquidityRisk (0–1). themes avgränsas med ; eller |. Inga kurser hämtas; importen rör inte brädet.
Region:
Tema:
Pre-22 alpha – extraordinära undantaginga
EXTRAORDINÄR PRE-22: vid sällsynta tillfällen kan flera starka signaler sammanfalla så att en mycket liten startpost före ruta 22 kan övervägas. Detta är inte en normal köpsignal och utförs aldrig automatiskt. Grindar (alla 7 krävs): ej ägd · ruta 12–21 (före 22) · hög poäng (≥78) eller ≥3 katalysatorer · ≥2 samtidiga starka kriterier · datakvalitet/konfidens ej låg · likviditetsrisk ej allvarlig · inget STOPPA/EJ KÖP/ruta32. Hög osäkerhet – köp endast efter manuell verifiering i Avanza och egen kontroll av källa. Allokering: max 3 % (Balanserad) / 5 % (Aggressiv) av nytt kapital; Försiktig = 0 kr (endast bevakning). Loggas som special signaltyp i lärande-loopen.
Profil:
Schemalagd scanning-kadensläser …
Automatisk kadens (server-styrd): Bräde/portfölj var 5:e min, nyheter/katalysatorer ~10 min, nya bolag (Avanza-universum) varje timme under marknadstid + full scanning dagligen efter stängning, lärloop dagligen. Nya bolag scannas automatiskt först när Avanza-universum/import/feed finns. Tills dess är discovery-motorn redo men väntar på universum. Beslutsstöd – ingen automatisk handel, inga påhittade kurser.
Signalranking (aktiva bolag)
Signalintegritet:Fallbacksignal (statisk) – ej komplett live-signal. Källa: inbyggd fallback tills /api/signals/topbottom svarar.
Signalpoäng 0–100 per bolag. Statisk fallback visas om /api/signals/topbottom inte svarar. Rankingen blir märkt Live först när signal-API:t svarar; annars Fallbacksignal.
Allokeringsmotor – Avvikelse mot plan
Rekommenderad vikt per ruta/fas och conviction (signalpoäng) jämförs mot faktisk vikt (livevärde / portföljtotal). Klassning: Undervikt / I intervall / Övervikt / Köpstopp / Bevakning. Deterministiskt beslutsstöd – inga påhittade fundamenta, ingen automatisk handel. Manuell handel i Avanza.
Bolag
Ruta/fas
Conv.
Rek. vikt
Faktisk
Avvikelse
Signaljournal
Per bolag: aktuell ruta/fas, modellåtgärd, varför bolaget ligger där, aktuella triggers och nästa checkpoint/regel. Beslutsstöd ur rutmodellen + senast kända värde – inga påhittade fundamenta.
Säljtriggers (beslutsstöd)
Disciplinerade säljskäl. Appen signalerar/markerar bara – du säljer själv manuellt i Avanza. Ingen automatisk orderläggning.
Signalformel (planerad signalmotor – ej fullt aktiverad än): Signalpoäng vägs av: (1) marknadsmomentum, (2) volymutbrott, (3) triggerrutestatus (SCOUT/KÖP/BEVAK/FASLARM/ENDGAME), (4) fundamental/operativ hävstång, (5) nyhets-/kontrakts-/regulatorisk katalysator, (6) datakvalitetsavdrag om kurs saknas. Tills motorn är live visas en ärlig statisk fallback – inga dynamiska poäng fabriceras.
Handlingsplan
Beslutsstöd. All handel sker manuellt i Avanza. Inga personliga råd, inga automatiska order. Alla bolag som möter modellens parametrar samlas här i åtgärdskategorier, härledda ur rutmodellen, conviction och avvikelse mot plan – inga påhittade fundamenta. Ordersteg är konservativa modellförslag, inte rekommendationer.
Larm
Larmmodul aktiv. In-app-larm, rutlarm, ljudlarm samt en server-driven Larmcentral (43.10.2). Larmen bevakar de aktiva innehaven dynamiskt ur huvudportföljen (HOLD) – ingen separat hårdkodad lista. Innehav med svag/ofullständig datakälla (t.ex. SMTE) tappas aldrig: vid timeout/utebliven kurs används senast kända värde (live-cache → Avanza-referens) och status markeras som fallback. Webbläsar-push (bakgrundsnotiser) kräver HTTPS/domän + installerad PWA och är inte aktiv över HTTP – se push-status nedan. Ingen automatisk handel; all handel sker manuellt i Avanza.
Larmcentral (Server Alerts) Larm: 0 skarpa
Server-driven larmjournal: larm härleds ur samma befintliga regler (watchlist R22/R28–31/R32, datahälsa, rutrörelser) – inga påhittade marknadshändelser – och sparas i en serverfil (alert_journal.json via sidecar, ingen webbläsarlagring) så de kan ses i efterhand. Oläst-räknare, allvarlighetsgrad och kvittering. Anti-spam: samma ticker+händelse dubbleras inte (klient- + server-dedup med cooldown). Beslutsstöd – manuell åtgärd i Avanza.
Larmhygien (43.15.5.1): larmen klassas i Skarpa/verifiera (åtgärdbara – skarp beslutssäker signal resp. bekräfta innan åtgärd), Bevakning (watch-larm, lägre prioritet), Datakvalitet (datahälsa/fallback/timeout) och Historik (info + redan kvitterade). Header-badgen räknar endast åtgärdbara larm (skarpa + verifiera); vid noll visas en lugn etikett (Larm: 0 skarpa). Bevakning, datakvalitet och historik räknas separat här nedan. Beslutsstöd – manuell åtgärd i Avanza.
Äkta webbläsarnotiser (Notification API / Service Worker) kräver en säker kontext – HTTPS eller egen domän – och på iPhone/iPad i praktiken att appen är installerad som PWA (Lägg till på hemskärmen). Den här installationen servas över HTTP (http://165.22.16.114:8090), så bakgrunds-push är inte tillgänglig ännu – appen säger det ärligt och faller tillbaka på ljudlarm + visuella larm + Larmcentral. När appen senare servas över HTTPS/domän och installeras som PWA blir knappen nedan aktiv.
Aktivera notiser (bakgrunds-push)Kontrollerar …
43.16.1: Bakgrunds-push via Service Worker + VAPID. Så här aktiverar du på iPhone/iPad: (1) Öppna https://chess.skuruborg.se i Safari och välj Dela → Lägg till på hemskärmen. (2) Öppna appen från hemskärmsikonen och tryck Aktivera notiser → Tillåt notiser. (3) Tryck Skicka testnotis för att verifiera. Servern måste ha VAPID-nycklar (genereras av installern, se NOTES). Saknas något säger appen det ärligt och faller tillbaka på ljud-/visuella larm. Obs: notisljud styrs av operativsystemet – appen kan inte spela egna ljud när den är stängd. Notistext är beslutsstöd – aldrig "köp nu", alltid "kontrollera manuellt i Avanza".
Push-tillstånd–
Prenumeration–
Server (web-push/VAPID)–
Senaste push-test–
Scanner-hook–
PWA & HTTPSKontrollerar …
HTTPS / säker kontext–
Service Worker–
Notis-API–
Installerad som app–
Installera som app: öppna i Safari på iPhone/iPad → Dela → Lägg till på hemskärmen. Äkta bakgrundsnotiser kräver att sidan servas över HTTPS/egen domän (t.ex. https://chess.skuruborg.se) och att appen är installerad som PWA. Över http://165.22.16.114:8090 är detta inte aktivt – se README/NOTES för domän- och Caddy-steg.
Server-scanning (Scanmotor)Kontrollerar …
Scanmotorn körs på servern och scannar portföljen med jämna mellanrum – även när webbläsaren är stängd. Den härleder larm ur faktisk kursdata (dagsförändring per innehav) och datahälsa (fallback/inaktuell/timeout) – inga påhittade marknadshändelser. Larmen hamnar i Larmcentralen ovan. Motorn scannar och larmar, men all handel sker manuellt i Avanza – ingen automatisk handel.
Status–
Senaste scan–
Nästa scan–
Intervall–
Antal scans–
Senaste varaktighet–
Senaste resultat–
Nya larm senast–
Marknadssession–
Ljudlarm (Audio Alerts)
Ljudlarm av
Ljudlarm spelar korta toner via telefonens/datorns högtalare med Web Audio (genererade toner – inga ljudfiler). På iPad/iPhone måste du först trycka på Aktivera ljudlarm eller en Testa ljud-knapp – webbläsaren tillåter ljud först efter en knapptryckning. Ingen autouppspelning vid sidladdning. Visuella larm visas alltid, även med ljudet avstängt. Samma ticker + händelse spelas bara en gång per session (med kort paus mellan ljud) så inget spammar.
Den här webbläsaren saknar Web Audio-stöd – ljudlarm är inaktiverat, men visuella larm fungerar som vanligt.
Aktiva innehav – larmstatus
Bevakade aktiva innehav (dynamiskt ur portföljen). Källa per rad: live, senast känt eller Avanza-referens.
Väntar på portföljdata …
Datahälso-larm (Data Integrity Layer)
Larmar när datakällan för ett innehav är Timeout (ingen användbar kurs), endast Fallback (Avanza-referens/manuell) eller fördröjd bortom tröskel för ett beslutskritiskt innehav. Kompletterar pris-/rutlarmen – bryter dem aldrig. SMTE m.fl. tappas aldrig.
Väntar på portföljdata …
Watchlist-larm (Watchlist & Screener Layer)
Separata larm för EXTERNA bevakningskandidater (ej aktiva innehav): kandidater som når köpzon R22, går in i intensiv bevakning R28–31, når röd fasövergång R32 eller har tappad datakvalitet (Fallback/Timeout). Åtskilda från de aktiva portfölj-larmen ovan. Watchlist – ingen finansiell rådgivning, ingen automatisk handel.
Beräknas vid render.
Regler
R22 Bevakningszon – tidiga signaler
R28-31 Momentum/utbrott
R32 Riskkontroll / paus
R33-36 Kärninnehav – position
R60-64 Toppruta – vinsthemtagning
Senaste rutrörelser
Inga rutrörelser registrerade i denna webbläsare ännu.
Triggerlogg (aktiva regelstatus)
Genererad ögonblicksbild av aktuella triggerstatus denna session (ingen persistens ännu). Manuell handel – appen markerar/signalerar bara; du köper själv i Avanza.
Orderjournal
Manuell journal. Inga order skickas automatiskt – all handel sker manuellt i Avanza. Anskaffningsvärde och kassa enligt Avanza skärmdump 2026-06-25 20:13. Kontouppdatering 2026-06-25 20:13: portföljens marknadsvärden, anskaffningsvärden och kassa är synkade mot den färska Avanza-skärmdumpen. Enskilda orderkurser utöver snittköp är inte kända – posterna visas som "Avanza-kontouppdatering", inte påhittade ordrar.
Bolag
Antal
Snittköp
Anskaffning
Källa
Köpplan – Risk & Execution Layer
Beslutsstöd. All handel sker manuellt i Avanza. Köpplanen räknar dynamiskt ur huvudportföljen (HOLD → de aktiva innehaven) – ingen separat hårdkodad lista. Per innehav: aktuell vikt, målvikt (modell/ruta/signal med tak), allokeringsgap i SEK, riskklass och rekommendation. Kassan får en praktisk, stegvis utplaceringsplan med bevarad buffert. SMTE och andra innehav med svag datakälla tappas aldrig – senast kända värde används. Inga påhittade fundamenta, inga personliga råd, ingen automatisk orderläggning. Startvärde (Avanza skärmdump 2026-06-25 20:13): totalt 314 842 SEK, värdepapper 295 623 SEK, kassa 19 182 SEK, basvärde 343 227 SEK.
Föreslagen nästa köpordning (kassa)
Kassa fördelas på de mest underviktade köpbara innehaven, stegvis och med bevarad buffert. Maxorder per position begränsas. Manuell handel i Avanza.
Riskvikter per innehav
Kapitalallokering – nytt kapital (43.18.1)
Beslutsstöd – kontrollera kurs i Avanza innan order. Ange ett nytt belopp i SEK så föreslår motorn hur det kan fördelas, uppdelat i A) Öka befintliga innehav, B) Nya starter-positioner på brädet (ej ägda) och C) Avvakta / 0 kr. Vikten räknas transparent ur befintlig app-data: modellåtgärd (ÖKA/KÖPZON/VERIFIERA…), signalpoäng, brädruta/zon, datakvalitet och portföljvikt mot mål. Nytt i 43.18.1: varje scenario reserverar en kandidat-sleeve för de starkaste ej ägda bolagen – Försiktig håller sig till ägda ÖKA + äkta KÖPZON, Balanserad ~10–20% (top 1–2 starters), Aggressiv ~20–35% (top 2–3). STOPPA / MINSKA / EJ KÖP / Ruta 32 (faslarm) / svag-saknad signal / osäker datakälla får aldrig nytt kapital – endast "Verifiera manuellt, 0 kr preliminärt". Starters märks "STARTPOSITION – verifiera manuellt" och är små pilotköp (5–8%/namn). En kassareserv (5–15%) bevaras och visas. Minsta radförslag ≈2 000 SEK – mindre rullas till reserven. Ingen automatisk handel, ingen order, inga påhittade kurser.
Modellregler (rutmodell – synliga parametrar)
R22 Normal köptrigger (entry). Köp när conviction passerar tröskeln och positionen är underviktad.
R28–31 Intensifierad bevakning. Endast stegvis påfyllning om signalpoäng är hög OCH innehavet är underviktat.
R32 Rött larm / fasövergång. Inget nytt aggressivt köp. Ägs det ej redan → "sen entré / köpstopp".
R33–36 Kvalar för ny investering endast om identifierat före/vid R36 och fortfarande underprissatt – annars försiktighet. Redan ägt kan hållas/trimmas beroende på vikt och signal.
R61–64 Endgame/compounder. Inget automatiskt köp – utvärdera värdering/övervikt.
Pre-22 undantag Extraordinär trigger/hög signal kan ge "Tidigt alpha-case" – men endast en liten startposition rekommenderas.
Viktstak Kärna/sen-validerade max ~10–12%. Spets/deep-tech lägre mål/max ~3–7% efter risk. Kassareserv bevaras – allokera aldrig hela kassan på en gång.
Lärande / Precision
Lärande utfallsmotor (43.13): Varje signal/larm från scanmotorn loggas server-side i outcome_journal.json (ingen webbläsarlagring). Motorn följer det faktiska utfallet över tid via checkpoints (1d/1w/1m/3m) som jämför kursen vid signalen mot senare verklig kurs, och visar träffsäkerhet per signaltyp. Detta är ärlig, evidensbaserad inlärning – ingen fejk-AI. Inga påhittade historiska kurser: saknas data markeras checkpoint som pending eller otillräcklig. Motorn lär sig av utfall men ändrar inte köp/säljregler automatiskt utan ditt godkännande. Beslutsstöd – ingen automatisk handel.
–
Loggade signaler–
Öppna signaler–
Utvärderade signaler–
Pending checkpoints–
Bästa signaltyp–
Sämsta signaltyp–
Falska positiva–
Inaktuell-data-signaler–
Träffsäkerhet per signaltyp
Träffkvot räknas endast på beslutade utfall (hit/miss); neutrala (±2%) och pending räknas ej. Täckningsetikett visar om urvalet är för litet, tidig evidens eller meningsfullt.
Lärande rekommendationer (icke-bindande)
Förslag baserade på faktiskt utfall. Inga regeländringar sker automatiskt – detta är endast underlag för ditt beslut.
Senaste signaler
Ticker
Händelse
Datum
Kurs v. signal
Datakvalitet
Status
1d
1w
1m
3m
Laddar …
Signalkvalitet & Lärloop (43.17)
Signalkvalitet / Lärloop (43.17): En mät- och lärlager som loggar varje genererad signal/beslut server-side i signal_quality_journal.json (ingen webbläsarlagring) och följer upp faktiskt utfall efter 1, 5, 20 och 60 handelsdagar. Syftet är att höja precisionen över tid. Ingen automatisk handel och inga automatiska regeländringar – viktförslag är endast underlag som kräver ditt godkännande. Saknas framtida kurs visas väntar på utfall; saknas historik visas för lite historik. Inga påhittade kurser.
–
Loggade signaler–
Pågående utfall–
Utvärderade–
Stängda signaler–
Falska positiva–
Falska negativa–
Bästa trigger–
Svagaste trigger–
Träffsäkerhet per åtgärdstyp
Träffkvot räknas endast på beslutade utfall (hit/miss); neutrala (±2%) och pågående räknas ej. För lite historik visas tills tillräckligt urval finns.
Snittavkastning per horisont
Viktförslag (icke-bindande)
Förslag baserade på faktiskt utfall, t.ex. öka vikt för regulatorisk trigger eller sänk vikt för datakvalitet-fallback. Inga regeländringar sker automatiskt – kräver minst 8 beslutade utfall per trigger. Endast underlag för ditt beslut.
Senaste signaler (klickbara)
Klicka en rad för att se varför signalen utlöstes och vad som mäts (1/5/20/60 handelsdagar).
Ticker
Åtgärd
Trigger
Datum
Kurs v. signal
Datakvalitet
Status
1d
5d
20d
60d
Laddar …
Nyheter / Katalysatorer
Katalysatormotor (43.14): Samlar och klassar nyheter, pressmeddelanden, artiklar, analyser, insynshandel/uttalanden och sociala signaler för bolagen på brädet och kopplar dem till brädrörelse – inte ett generiskt nyhetsflöde. Journalen är server-side (catalyst_journal.json, ingen webbläsarlagring). Ingen fejk-AI, inga påhittade nyheter: klassningen är regelbaserad (nyckelord + källtyp); social/person-uttalanden ges lägre evidensvikt tills de bekräftas av en annan källa, och saknad källa/osäkerhet ger låg konfidens. Katalysatorer påverkar signaler först när datakvalitet och bekräftelse är tillräcklig; ingen automatisk handel. All handel sker manuellt i Avanza.
–
Totalt katalysatorer–
Olästa–
Hög impact–
Aktiva innehav berörda–
Externa kandidater berörda–
Senast uppdaterad–
Katalysatorlarm (43.15.2 Catalyst Alert Logic)
Katalysator → Larm → Handlingsplan. Klassade katalysatorer mappas deterministiskt till en larmnivå (Info/Låg/Medel/Hög/Kritisk), en ljudprofil-etikett (info_ping/watch_ping/buy_trigger/phase_shift/risk_alarm/critical_alarm) och en åtgärdsklass kopplad till schackrutan (verifiera/bevaka/entry/håll/trimma/köpstopp/risköversyn). Nivån härleds ur impact, sentiment och konfidens – svag evidens drar alltid ned nivån. Endast medel/hög/kritisk visas här. Ljudprofilerna är etiketter; ingen bakgrundsaudio krävs och inget spelas om sidan är inaktiv. Beslutsstöd – ingen automatisk handel. Handel sker manuellt i Avanza.
–
Nivå
Ticker
Klass / orsak
Nyckelord
Ljudprofil
Åtgärd
Rutt
Bekräftelse
Tid
Laddar …
Källscanner (43.15.2 Catalyst Alert Logic)
Aktiverade källor scannas automatiskt var 5:e minut. Källkatalogen underhålls via verktygets versionspaket. Manuell källa är endast admin/nödfall. Scannern hämtar schemalagt (server-side, även när webbläsaren är stängd) ENDAST från aktiverade källor i registret nedan, parsar RSS/Atom, dedupar och matar in NYA poster i katalysatorjournalen via samma klassning. SEC EDGAR (8-K/Form 4 för US-innehav) är publikt och förladdat påslaget; GAPW-B IR-distribution (MFN) är påslagen. Sociala/insyn-/regulatoriska/kontrakts-kanaler ingår i modellen men ligger INAKTIVA tills verifierade flöden eller API-connectorer finns – appen skrapar aldrig skyddat innehåll och anropar aldrig API:er som kräver inloggning. Kvalitet visas per källa (verifierad/behöver verifieras/stub) och kräver-API-flagga markeras. Inga påhittade nyheter, ingen automatisk handel.
–
Status–
Senaste scan–
Nästa scan–
Intervall–
Källor på/totalt–
Senast hittade–
Senast nya–
Antal scans–
Senaste fel–
Admin/nödkälla – lägg till / uppdatera manuellt
Sekundär admin-/nödfunktion. Källkatalogen underhålls normalt via verktygets versionspaket (förladdas/sammanfogas automatiskt). Använd detta formulär endast som admin eller i nödfall. URL måste börja med http:// eller https://. Lämna avstängd tills du verifierat att flödet är ett riktigt RSS/Atom-flöde. Sociala/insyn-/regulatoriska/kontrakts-kanaler kräver separata verifierade flöden eller API-connectorer – inget skrapas och inga inloggnings-API:er anropas.
–
Källregister
Ticker
Typ
Kvalitet
API
URL
På
Senast kollad
Hälsa
Senaste resultat
Laddar …
Registrera katalysator manuellt
Ärlig manuell ingest. Fyll i ticker + rubrik (obligatoriskt). Klassning sker vid sparande. Hitta aldrig på nyheter – saknad källa ger låg konfidens. Inga externa betal-API:er.
–
Katalysatorer
Ticker
Rubrik
Källa
Klass
Impact
Konfidens
Föreslagen rutt
Beslutsstöd
Tid
Laddar …
Daglig Körjournal & Signal Audit
Beslutsstöd-audit – inte automatisk handel. Detta lager spelar in vad motorn såg och rekommenderade så att signalkvaliteten kan utvärderas i efterhand. Inga rekommendationer eller beräkningar ändras – de loggas bara. All handel sker MANUELLT i Avanza. Inga påhittade utfall: live-signaler är pending tills utfallet är känt.
Daglig körjournal
En ögonblicksbild per dag: total, värdepapper, kassa, YTD, live-vs-Avanza-avvikelse, antal skarpa larm, verifieringar, nyhets-/katalysatorantal, topp-/bottenrörelser och dagligt utlåtande. Varje post lagrar Avanza-snapshot-referens och datafärskhet; vid hård avvikelse nedgraderas beslutskonfidensen.
Datum/tid
Total
Värdepapper
Kassa
YTD
Avvikelse
Skarpa larm
Verifiera
Nyheter
Topp/Botten
Dagligt utlåtande
Konfidens
Laddar …
Signal Audit
Per ticker: bräderuta, signaltyp (köp/verifiera/bevaka/trimma/sälj/stopp), konfidens/status, datakvalitet, triggerorsak, tidsstämpel, källa (larm/nyhet/scanner/beslutsmotor) och utfall. Utfall är pending för aktuella signaler – inga påhittade resultat.
Ticker
Ruta
Signaltyp
Konfidens/Status
Datakvalitet
Triggerorsak
Tidsstämpel
Källa
Utfall
Laddar …
Körjournalen och signalauditen är ett mät-/utvärderingslager. Siffrorna kommer från manuell Avanza-snapshot (2026-06-25 20:13 CEST) och live-estimat – inga påhittade kurser. Ingen webbläsarlagring för dessa funktioner; persistens sker server-sida i JSON när sidecar-endpoint finns, annars visas dagens beräknade post i minnet. Appen utför aldrig order.
Utfallslogg & Outcome Tracker
Beslutsstöd – ingen automatisk handel. Markera och granska utfallet av varje signal över tid så att motorn kan bygga ett verkligt facit. Inga rekommendationsberäkningar ändras – endast utfall registreras. Inga påhittade utfall eller avkastningar: aktuella signaler är pending tills du markerar dem. All handel sker MANUELLT i Avanza.
Laddar statistik …
Ticker
Datum/tid
Ruta
Signaltyp
Källa
Triggerorsak
Konfidens/Datakvalitet
Utfall
Granska
Laddar …
Utfallslogg = manuellt facit-lager. Utfallen sparas server-sida i signal_audit.json via /api/audit/outcome (ingen webbläsarlagring). Priser/avkastningar visas bara om de uttryckligen anges – inga påhittade tal. Träffsäkerhet beräknas först när minst 5 stängda utfall (vinst/förlust) finns; annars visas ”för få stängda utfall”. Appen utför aldrig order – all handel sker manuellt i Avanza.
System
Render isolation:aktiv (43.12.1) – defensiv iPad/Safari-isolering: solid ogenomskinlig bakgrund på html/body/app-skal, egna stacking contexts (isolation:isolate) + paint-containment på innehållspaneler och modal, så inget främmande sid-/flik-innehåll kan lysa igenom CHESS-ytan. Ingen layout-/logikändring; alla 43.12-funktioner bevarade.
Beslutsseparation (43.9.2): Appen skiljer tydligt på aktiva innehav och externa bevakningskandidater. Aktiva innehav är de 15 bolag du faktiskt äger (AXON, AVAV, AVGO, GAPW-B, KTOS, MRCY, NBIS, NVDA, PLTR, PL, QBTS, RKLB, SMTE, SOUN, VOYG) – endast dessa har faktisk vikt, allokeringsgap och över-/undervikt mot portföljvärdet, och endast dessa driver Köpplanens risk- och köplogik. Externa bevakningskandidater (Watchlist & Screener Layer) rankas och visas separat i Signalranking/Screener och som prickade ghost-chips på brädet; i allokeringsöversikten ligger de i en egen grupp märkt "Extern bevakning" och får ALDRIG faktisk vikt eller allokering som om de vore ägda. Köpplanens rekommendationer delas dessutom i tre begrepp: Akut åtgärd (Köp nu / Fyll på / Trimma nu / Köpstopp), Risknotering (Övervikt / Datakontroll / Fallbackkälla – en flagga att bevaka, inte en omedelbar säljsignal) och Nästa steg (Bevaka rapport / Invänta trigger / Verifiera kurs i Avanza). En övervikt blir "Trimma nu" endast vid materiell övervikt (>50% över conviction-viktad målvikt); annars "Risknotering: Övervikt". En färsk manuell Avanza-kurs (samma handelsdag / inom 30h) räknas som beslutssäker "Manuell Avanza-kurs"; en gammal manuell override degraderas ärligt till icke-beslutssäker Fallback. Beslutsstöd – all handel sker manuellt i Avanza.
Version:CHESS 43.22.1 Trigger Reason Specificity Fix – buggfix ovanpå 43.22 Outcome Tracker: ticker-specifik triggerorsak så att en generisk SEC Form 4-rubrik ("4 - Statement of changes in beneficial ownership of securities") aldrig längre visas som triggerorsak för alla tickers; Daglig Beslutsvy, Signal Audit, Utfallslogg, innehavs-modal och körjournal använder samma resolver (primär/sekundär trigger, riskNote, datakvalitet, källkategori) med transparent fallback "Ingen unik verifierad katalysator hittad – kontrollera manuellt". Inga ändrade rekommendationer/beräkningar, ingen backend-server.js-ändring, ingen automatisk handel. Bakgrund: ett utfallsspårningslager ovanpå 43.21 Daily Journal & Signal Audit (samma portföljdata/innehav/strategi/modell-logik/beslutslogik/avvikelsekontroll/design/mobilpolering/körjournal/signalaudit, ingen backend-server.js-ändring, inga ändrade rekommendationsberäkningar – endast utfallsspårning, ingen automatisk handel, ingen webbläsarlagring för nya funktioner, inga påhittade utfall/avkastningar, ingen inloggning/scraping). Nytt i 43.22 (Outcome Tracker): (1) Utfallslogg – ny flik som listar signal-audit-rader (ticker, datum/tid, ruta, signaltyp, källa, triggerorsak, konfidens/datakvalitet, nuvarande utfall) med filterchips Alla/Pending/Verifierade/Falska/Vinst/Förlust/Override. (2) Per-signal-utfall – utökad datamodell (outcomeStatus, outcomeNote, verifiedAt, reviewedAt, reviewPrice, laterPrice, returnPct, returnSEK, manualAction, reviewer); priser/avkastningar sätts bara om de explicit anges, annars null – befintliga signaler är pending. (3) Granskningsflöde – knappar per rad: Verifiera, Falskt larm, Vinst, Förlust, Manuell override, Ignorera, som sparas server-side via /api/audit/outcome (lättviktig bekräftelse, ingen oåterkallelig extern åtgärd). (4) Integration – länkar från Daglig Körjournal och Signal Audit till Utfallslogg, senaste utfall + chip i innehavs-modalen, samt sammanfattningssiffror (pending/verifierad/falsklarm/vinst/förlust) i Daglig Beslutsvy. (5) Lärande-beredskap – aggregatsektion (totalt, pending, verifierade, falska, vinst/förlust, träffsäkerhet först vid ≥5 stängda utfall, annars ”för få stängda utfall”) via /api/audit/stats; tydlig etikett beslutsstöd – ingen automatisk handel. Portföljdata oförändrad (total 314 842 / vp 295 623 / kassa 19 182 / YTD-basvärde 343 227, 15 innehav). Ny cache-token chess43-22-1-trigger-reason-specificity-fix. Bakgrund 43.21 (Daily Journal & Signal Audit): Daglig Körjournal + Signal Audit-lager (server-fil-persistens, pending-utfall). Bakgrund 43.20.1 (Mobile Status Polish): kompakt mobil system-/snapshot-yta, board-first bevarad, nav scroll-snap. Bakgrund 43.20 (System Integrity Patch): versionslås + system-statuslinje, Avanza-snapshot-status och avvikelsekontroll (mjukt ≥0,5 % / hårt ≥1,0 %). Allt i 43.21 och tidigare bevarat. SMTE = Smart Eye AB. Inget Terranet. All handel sker MANUELLT i Avanza – appen är beslutsstöd och utför aldrig order.
Triggerlogik – Pre-22 Alpha Scout (SCOUT): En förtrigger, INTE en KÖP-signal. Syfte: fånga extraordinära händelser i ett bolag innan standard R22-entry, så en mycket liten pilotposition kan övervägas. Behörigt intervall: endast R12-R21 (R1-R11 är för tidigt; R22 är fortfarande vanlig KÖP). Villkor: minst 1 extraordinär trigger + minst 2 bekräftelser. Extraordinära triggers: Tier-1/OEM-avtal, regulatoriskt mandat, nyckelpatent/IP-genombrott, kliniskt/regulatoriskt milstolpe, försvars-/dual-use-validering, strategisk investerare, explosiv orderbok/SOP. Bekräftelser: insiderköp/starkt ledningsägande, 12+ mån finansieringsrunway, bruttomarginalpotential >60-70%, TAM-expansion, volymutbrott före överdriven prisrörelse, undervärdering relativt triggern, teknisk risk reducerad via prototyp/pilot/kundtest/tredjepartsvalidering. Positionsstorlek (riktlinje): R12-R17 max 0,5-1,0 % pilot · R18-R21 max 1,0-2,0 % · R22 kan skalas till 2-4 % · R33-R36 kan skalas större först efter inflektionskvalificering. Manuell handel – appen markerar/signalerar bara; du köper själv i Avanza.
Live API: samma-origin /api/live-portfolio, annars :8091/api/live-portfolio. Kurser är periodiska/publika (ej tick-för-tick). Leverantörer som försöks (i ordning): Yahoo Finance, därefter Stooq. Varje innehav kan prova flera symbolalias innan det räknas som saknat. Handel sker manuellt i Avanza. Inga API-nycklar, ingen automatisk handel.
PWA & HTTPS (43.11)
PWA-grund (43.11): Appen levereras nu med manifest.json, en defensiv service-worker.js (cachar endast statiskt skal, aldrig live-API-svar) och en självständig SVG-ikon (inga externa assets). Service Worker registreras endast i säker kontext (HTTPS/egen domän) eller på localhost – över http://165.22.16.114:8090 registreras den inte och statusen säger det ärligt. Äkta webbläsar-push/bakgrundsnotiser på iPhone/iPad kräver HTTPS/domän och att appen installeras som PWA (Lägg till på hemskärmen). Domän-/Caddy-steg finns i README/NOTES. Beslutsstöd – ingen automatisk handel; all handel sker manuellt i Avanza.
Läge–
HTTPS / säker kontext–
Service Worker–
SW registrerad–
Notis-API–
Notis-tillstånd–
Installerad som app–
Manifest–
Föreslagen domänchess.skuruborg.se
Push & Server Alerts-diagnostik (43.16)
Push & Server Alerts (43.16.1 Web Push VAPID Activation): Bakgrunds-push via Service Worker + VAPID. Servern (sidecar :8091) exponerar /api/push/status, /api/push/vapid-public-key, /api/push/subscribe, /api/push/unsubscribe, /api/push/test. iPhone-flöde: öppna i Safari → Lägg till på hemskärmen → öppna från hemskärmsikonen → Aktivera notiser (Tillåt) → Skicka testnotis. 43.16.1 installerar npm-paketet web-push och genererar VAPID-nycklar i /etc/chess42/push.env (läses som CHESS_VAPID_*/VAPID_*); när modul + nycklar finns visas vapidConfigured:true / webPushReady:true här. Saknas något rapporteras det ärligt – appen fakar aldrig "Push aktiv". Notisljud styrs av OS/webbläsaren, inte appen; appen spelar inga egna ljud när den är stängd. Notistext är beslutsstöd: "kontrollera manuellt i Avanza", aldrig "köp nu". Ingen automatisk handel.
HTTPS / säker kontext–
Service Worker–
Notis-tillstånd–
Push-prenumeration–
Server web-push–
VAPID-nyckel–
Prenumeranter (server)–
Senaste push-test–
Scanner-hook–
Installera på iPhone/iPad: öppna i Safari → Dela → Lägg till på hemskärmen. När appen servas över HTTPS/egen domän och är installerad blir bakgrundsnotiser möjliga. Tills dess gäller ljud + visuella larm + Larmcentral. chess.skuruborg.se är ett utbytbart exempel – byt mot din egen domän i Caddyfile och DNS.
Server-scanning (Scanmotor, 43.12)
Scanmotorn (43.12) körs server-side i sidecar:n (:8091) och scannar portföljen på ett konfigurerbart intervall (env CHESS_SCAN_INTERVAL_MS, standard 300000 ms = 5 min) – även när ingen webbläsare är öppen. Vid varje scan hämtas publika kurser (samma /api/live-portfolio-logik) och larm härleds ur faktisk data: R22/R28-31/R32 av faktisk dagsförändring per innehav, sälj/risk vid kraftig nedgång, samt datahälsa (fallback/inaktuell/timeout/FX-golv). Inga påhittade marknadshändelser, inga påhittade kurser. Larmen skrivs till samma alert_journal.json (samma dedup/anti-spam). Tillstånd sparas i scan_state.json och historik i scan_history.json (senaste 200). API: GET /api/scan/status, POST /api/scan/run-now, POST /api/scan/pause, POST /api/scan/resume, GET /api/scan/history. Motorn scannar och larmar, men all handel sker manuellt i Avanza – ingen automatisk handel.
Status–
Senaste scan–
Nästa scan–
Intervall–
Antal scans–
Senaste varaktighet–
Senaste resultat–
Nya larm senast–
Kurser senast–
Marknadssession–
Motor–
Dataintegritet / Live Integrity
Nordic Quote Adapter är aktiv: nordiska/svenska innehav (SMTE.ST, GAPW-B.ST) provas mot en alias-stege (.ST/.STO/B-aktievarianter) hos Yahoo Finance + Stooq, med korrekt .st-mappning (aldrig felaktigt .us). Status hämtas vid varje uppdatering av livevärdet. Full live visas ENDAST när alla innehav har en riktig leverantörskurs. Annars visas "Delvis live: X/Y kurser" tillsammans med exakt vilka tickers som blockerar full live och varför (ingen leverantörskurs / senast känd fallback / inaktuell fallback). Om sidecar inte nås visas fallback-läge och appen förblir användbar. Inga påhittade kurser – saknas en leverantörskurs används uttrycklig senast känd fallback och markeras som sådan.
Live-status–
Nordic adapter–
Källa–
FX USD/SEK–
Live-kurser–
Fallback/statiska rader–
Senast uppdaterad–
Saknar live-kurs (skäl)–
Blockerar full live–
Manuell Avanza-kurs–
Data Freshness: "Senast hämtad" är tidpunkten för den senaste lyckade hämtningen; "Senast ändrad" är när ett värde faktiskt rörde sig. Om kursen inte rört sig räknas "Oförändrade hämtningar i rad" upp – publika kurser är periodiska/cacheade och kan returnera identiska värden mellan hämtningar. Detta är inte tick-för-tick.
Senast hämtad (fetchedAt)–
Senast ändrad (changedAt)–
Oförändrade hämtningar i rad–
Ändrade tickers (senaste)–
Data Integrity Layer (datakällans hälsa)
Status-monitor spårar datakällans hälsa per innehav: Live (färsk leverantörskurs), Fördröjd (giltig men ej färsk), Senast känd (cachead senast-känd-kurs), Fallback (endast Avanza-referens/manuell) och Timeout (ingen användbar kurs/kursfel). Varje bolagsbricka på brädet visar en datakvalitets-prick och tidsstämpel för senaste synk mot Avanza-API:et. Deterministiskt, inga påhittade kurser. SMTE m.fl. degraderas till Senast känd/Fallback men tappas aldrig. Källkod: src/data-integrity/status-monitor.js (speglad inline).
Beslutssäkra / totalt–
Live–
Fördröjd–
Senast känd–
Fallback–
Timeout–
Senaste kurssync–
Senaste Avanza-sync–
Beslutsunderlag färskt?–
Statustabell beräknas vid render.
Watchlist & Screener Layer (43.9)
Watchlist/Screener-sammanfattning. Bevaknings-/screeningslager för EXTERNA kandidater till schackbrädet (pre-22 scout, gula 22–31, inflection 32–35) – ej aktiva innehav, ingen finansiell rådgivning, inga påhittade kurser. Källkod/dokumentation: src/watchlist-screener/screener-engine.js + candidate-universe.json (speglad inline). Kandidatfält: ticker, namn, marknad/valuta, ruta, tema, datakvalitet (Live/Fördröjd/Senast känd/Fallback/Timeout), signalScore/inflectionScore/dualUseScore, underpriced, reason, nextTrigger; screenern härleder status, routeScore, candidateRank (0–100) och åtgärd.
Kandidater totalt–
Mot ruta 22 (scout)–
Köpzon (R22)–
Gula rutor (R22–31)–
Inflection (R32–35)–
Datakvalitets-varningar–
Version/token–
Manuell kurs / Avanza override
Manuell Avanza-kurs (Override – ej live): Ange en kurs i SEK för ett innehav som de publika leverantörerna inte kan kursnotera (t.ex. SMTE.ST). Kursen kompletterar värderingen men markeras tydligt som "Manuell Avanza-kurs" och räknas ALDRIG som riktig live-kurs – statusen förblir "Delvis live/Manuell". Sparas server-side i sidecar (manual_overrides.json) med localStorage som reserv.