CHESS 43.19.2 Auto Feed Pre-22 Alpha Trigger
Schack Matt22.32
Skuruborg Quantum
Totalt272 497 SEK
Värdepapper255 418 SEK
Kassa17 079 SEK
I år-11 727 SEK-4,13%mot Avanza-basvärde 284 224 SEK
Uppdaterad
Ljudlarm av Scan: –
ABCDEFGH
87654321
87654321
ABCDEFGH
Livevärde: periodisk kursuppdatering (ej tick-för-tick).
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.
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 11 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.
0 Agera idag 0 Köptriggers 0 Risklarm 0 Bevaka 0 Datakvalitet Senaste scan: –

Agera idag

Köptriggers

Risklarm

Bevaka

Datakvalitet

Ignorera / Arkivera

Inget brus ännu.
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.19.2 Auto Feed Pre-22 Alpha Trigger.

Portfölj

Avanza-baslinje (skärmdump 2026-06-25 03:15): Totalt 272 497 SEK · Värdepapper 255 418 SEK · Kassa 17 079 SEK · I år -11 727 SEK · Sedan köp -24 503 SEK (-8,75%) · Innehav 11
BolagKontoAntalSnittköpAnskaffningVärdeDagDatakvalitet

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 11 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.
Auto-feed-koppling (Avanza-universum)manuell import
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:

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.
BolagRuta/fasConv.Rek. viktFaktiskAvvikelse

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.
0 Skarpa 0 Verifiera 0 Bevakning 0 Datakvalitet 0 Historik
Olästa: 0 / totalt 0
Hämtar serverlarm …
Push-beredskap Kontrollerar …
Ä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 notiserTillå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 & HTTPS Kontrollerar …
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.

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 03:15.
BolagAntalSnittköpAnskaffningKä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 03:15): totalt 272 497 SEK, värdepapper 255 418 SEK, kassa 17 079 SEK, basvärde 284 224 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

TickerHändelseDatumKurs v. signalDatakvalitetStatus1d1w1m3m
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ärdTriggerDatumKurs v. signalDatakvalitetStatus1d5d20d60d
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åTickerKlass / orsakNyckelordLjudprofilÅtgärdRuttBekräftelseTid
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

TickerTypKvalitetAPIURLSenast kolladHälsaSenaste 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

TickerRubrikKällaKlassImpactKonfidensFöreslagen ruttBeslutsstödTid
Laddar …

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 11 bolag du faktiskt äger (AXON, QBTS, GAPW-B, KTOS, NBIS, PLTR, PL, 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.19.2 Auto Feed Pre-22 Alpha Trigger – ett import-/feed-redo universumlager ovanpå 43.19 (samma design/data/funktioner, ingen backend-server.js-ändring, ingen automatisk handel, ingen webbläsarlagring). Nytt i 43.19.2 (Auto-Feed Connector + Extraordinär Pre-22 Alpha Trigger): (A) Auto-feed-koppling för Avanza-universumet med lägen Manuell import / URL-feed / Fil-drop-in / API (skelett) – endpoints GET /api/discovery/universe/feed/status, POST .../feed/config, POST/GET .../feed/run, GET .../feed/history med server-side avanza_feed_config.json + avanza_feed_history.json. URL-läge hämtar ENBART en publik CSV/JSON-URL med timeout (12s) + storleksgräns (3 MB), följer inga omdirigeringar, ingen inloggning eller scraping; fil-läge läser en server-lokal export. Allt normaliseras via SAMMA universum-importer. Är ingen källa satt står läget inaktivt (configured:false) och copyn säger ärligt: "Avanza-universum: full automatisk scanning kräver säker export/feed. Ingen inloggning eller scraping används." (B) Extraordinär Pre-22 Alpha Trigger (manuell-only, hårt grindad): en ny flagga PRE22_ALPHA som vid sällsynta tillfällen tillåter en mycket liten startpost FÖRE ruta 22 – endast om sju samtidiga grindar uppfylls (ej ägd · ruta 12–21 · poäng ≥78 eller ≥3 katalysatorer · ≥2 samtidiga starka kriterier · datakvalitet/konfidens ej låg · likviditetsrisk ej allvarlig · inget STOPPA/EJ KÖP/ruta32). Etikett "Pre-22 alpha – verifiera manuellt", allokering max 3 % (Balanserad) / 5 % (Aggressiv) av nytt kapital, Försiktig = 0 kr; varning "Hög osäkerhet – köp endast efter manuell verifiering i Avanza och egen kontroll av källa." Pre-22-kandidater visas i en EGEN sektion, ej blandat med KÖPZON, och loggas som special signaltyp (kind:'pre22-alpha') i lärande-loopen via POST /api/discovery/pre22/log. Aldrig en normal köpsignal, aldrig automatisk order. Ny cache-token chess43-19-2-auto-feed-pre22-alpha-trigger. Allt i 43.19.1 och tidigare bevarat. Bakgrund 43.19.1 (Avanza Tradable Universe Import): Kandidatupptäckten riktas nu mot "Alla noterade bolag som är handlingsbara via Avanza" via ett robust importlager. (1) Server-side universumlager avanza_universe.json, separat från discovery_candidates.json men integrerat i samma CHESS-scoring. (2) Endpoints: GET /api/discovery/universe/status, GET /api/discovery/universe/list (filter limit/theme/market/status/q), POST /api/discovery/universe/import (JSON-array ELLER CSV-text), POST /api/discovery/universe/rescore, POST /api/discovery/universe/promote (promota ticker till discovery-kandidat); befintliga /api/discovery/* bevaras. (3) Universumrad: ticker, namn, instrumentId, market, country, currency, sector, theme(s), avanzaTradable, liquidityClass, source, lastImported, ev. metrics/signals, score, confidence, status, suggestedRuta, reasons. (4) Normalisering/dedup: versalt ticker, slå ihop dubletter per ticker+market/instrumentId, bevara redan promotad kandidat, märk isHeld/isOnBoard. (5) Scoring återanvänder 43.19 DISC_WEIGHTS och stöder partiell data – rader med endast basdata får låg/okänd poäng tills kriterier finns (övervärderas ej) + en databehov-lista per rad. (6) Ny UI-panel Avanza-universum i Discovery: status (ej kopplat / import saknas / importerat), import-textarea för CSV/JSON, filter Sverige/Norden/USA/Europa/Övrigt + teman AI/försvar/autonomi/medicin/rymd/sensorer/robotik/dual-use, topplista + knappar Promota/Rescore/Avvisa. (7) Ärlighet: "Full automatisk scanning kräver en Avanza-universumfeed/export. Denna version kan importera och screena universumet med CHESS-kriterierna." – live:false tills en riktig feed kopplas. (8) Promotering bryggar universum→discovery via discAdd och loggar valfritt ett discovery-event i learning-loopen; brädet ändras ALDRIG automatiskt, ingen handel/order. Ny cache-token chess43-19-2-auto-feed-pre22-alpha-trigger. Allt i 43.19 och tidigare bevarat. Bakgrund 43.19 (External Candidate Discovery Engine): En ny undersektion Kandidatupptäckt / Discovery i Signalranking/Screener gör brädet till en levande kandidatpipeline för att aktivt hitta och utvärdera nya noterade bolag utanför nuvarande schackbräde. (1) Kandidatdatamodell server-side i discovery_candidates.json (ticker, bolagsnamn, börs/land, sektor/tema, gissad bräd-ruta, status SCOUT/BEVAKA/VERIFIERA/KÖPZON/AVVISA, score, confidence, reasons, lastChecked, source, isOnBoard, isHeld). (2) CHESS-poängmodell: operationell hävstång/bruttomarginal, regulatoriskt mandat, inflektionskontrakt/design wins/SOP, dual-use försvar/autonomi/AI/medtech/sensorer/rymd/robotik, IP/patent-vallgrav, insiderköp/ägarkvalitet, felprissättning vs fundamenta/katalysator, datakvalitet/källkonfidens minus likviditets-/riskstraff. (3) Robust ingest-redo pipeline: en kurerad seed-lista ur CHESS-teman (märkt "seed / kräver verifiering"), manuell kandidat-add (ticker, namn, tema, orsak), server-endpoints list/add/update/rescore och en scanner-hook-stub redo för externa screener-flöden UTAN UI-ändring. (4) Kandidat-actions: Markera scout / Verifiera / Avvisa samt "Redo att läggas på brädet" – en ren status-flagga med manuell granskning; kärnbrädet ändras ALDRIG automatiskt. (5) Toppkandidat-tabell med score, föreslagen ruta, varför och nästa steg; kandidater som kan bli starter-positioner i 43.18-allokeringen markeras. (6) Ej ägda KÖPZON/VERIFIERA-kandidater med tillräcklig confidence kan flaggas som sleeve-förslag (tvingas ej vid låg datakonfidens). (7) "Logga discovery" loggar ett scoring-event i signaljournalen (status:event, ingen utfallsmätning, ingen handel). (8) Ärlighet: extern automatisk screening kräver konfigurerade datakällor/API:er; modulen stödjer i dag seed + manuell/API-ingest + scoring och är redo för externa flöden. Endpoints i sidecar: GET /api/discovery/status, GET /api/discovery/list, POST /api/discovery/add, POST /api/discovery/update, POST /api/discovery/rescore, POST /api/discovery/scan (stub), POST /api/discovery/log. Ingen påhittad kurs, ingen webbläsarlagring, ingen automatisk handel. Ny cache-token chess43-19-2-auto-feed-pre22-alpha-trigger. Allt i 43.18.1 och tidigare bevarat. Bakgrund 43.18.1 (New Candidate Allocation Tune): Tidigare 43.18 föreslog nästan bara att öka befintliga innehav – ej ägda brädkandidater hamnade alltid i 0 kr. 43.18.1 låter de starkaste ej ägda bolagen få små startposter under Balanserad/Aggressiv, med bevarade skyddsregler. Varje scenario reserverar nu en kandidat-sleeve av nytt kapital för ej ägda kandidater: Försiktig håller sig till ägda ÖKA + äkta KÖPZON (inga nya starters), Balanserad ~18% (10–20%, top 1–2 starters), Aggressiv ~30% (20–35%, top 2–3 starters). Köpplanens utfall delas nu i A) Öka befintliga innehav, B) Nya starter-positioner på brädet och C) Avvakta / 0 kr. En kvalificerad ej ägd BEVAKA/Scout med stark signal + giltig köpbar ruta + säker data kan få en liten pilot (5–8%/namn) märkt "STARTPOSITION – verifiera manuellt", med motivering "starkast ej ägd kandidat på brädet · ruta X · signalpoäng · kräver manuell kontroll i Avanza". Grindar (oförändrad säkerhet): STOPPA/MINSKA/EJ KÖP/Ruta 32 (faslarm)/svag-saknad signal/osäker datakälla får aldrig startallokering. KÖPZON får högre kandidatallokering; VERIFIERA KÖP får mindre preliminär post (cap 15%/sleeve). Finns inga kvalade kandidater visas "Inga nya starter-positioner kvalar in idag" – aldrig tvångsallokering. Kassareserv (5–15%) och tak bevaras. Ny cache-token chess43-19-2-auto-feed-pre22-alpha-trigger. Bakgrund 43.18 (Capital Allocation Engine): En ny Kapitalallokering-sektion i Köpplanen där du anger ett nytt belopp i SEK (standard 40 000) och får en transparent köpplan: motorn rankar (A) befintliga innehav som kan ökas och (B) brädkandidater (ej ägda) som kvalar som köp/verifiera, via en synlig vikt-score (modellåtgärd + signalpoäng + undervikt + brädzon − osäker-data-straff). Guardrails: STOPPA/MINSKA/EJ KÖP/Ruta 32 (faslarm)/osäker datakälla får aldrig nytt kapital (endast "Verifiera manuellt, 0 kr preliminärt"); ÖKA + hög score + undervikt prioriteras; KÖPZON kan få en startpost; VERIFIERA KÖP får en mindre preliminär post märkt "endast efter manuell verifiering"; en kassareserv (5–15%) bevaras och visas; max per namn 25% (verifiera 15%); minsta radförslag ≈2 000 SEK rullas annars till reserven. Tre scenario-presets (Försiktig / Balanserad / Aggressiv, standard Balanserad) justerar reserv/tak/verifieringsposter. Varje rad visar ticker, innehav/ny, åtgärd, föreslaget SEK, % av nytt kapital, prioritet, varför, risknotering och manuellt nästa steg + total och reserv; rader är klickbara och öppnar evidensmodalen. När en plan beräknas loggas ett allokeringsplan-event (ingen handel/order) i 43.17-signalkvalitetsjournalen via POST /api/signalq/log-plan. Allt är beslutsstöd – kontrollera kurs i Avanza innan order; ingen extern live-marknadsdata utöver appens tillstånd, inga påhittade kurser, ingen webbläsarlagring. Ny cache-token chess43-19-2-auto-feed-pre22-alpha-trigger. Allt i 43.17.1 och tidigare bevarat. Bakgrund 43.17.1 (API Route Restore Fix): Efter 43.17 visade systemets scanner-panel 'Server ej nådd' / Offline och curl /api/scan/status svarade {ok:false,error:'not found'}. Orsak: /api/* proxas till en sidecar-tjänst (chess43-live) vars ExecStart pekade på en äldre .js-fil utan de nya rutterna – inte den installer-ägda sidecaren. Fix: (1) installern hittar den externa tjänstens ExecStart-.js och skriver över den med den nya sidecaren (backup + node --check + automatisk återställning vid fel), men rör ALDRIG backend server.js; (2) /api/scan/status returnerar nu alltid ok:true med ett klientvänligt status-fält (on/paused/error) + alias-fält (nextScan, lastScan, scans, lastResult, marketSession) – aldrig 'not found' även när scannern är offline; (3) /api/scan/run tillagt som alias för /api/scan/run-now (stödjer både GET och POST); (4) kompatibilitets-alias läggs till, befintliga rutter tas aldrig bort. Ingen Caddy-ändring krävs. Verifiera: curl -s https://chess.skuruborg.se/api/scan/status, curl -s https://chess.skuruborg.se/api/signalq/status, curl -s https://chess.skuruborg.se/api/push/status. Ny cache-token chess43-19-2-auto-feed-pre22-alpha-trigger. Allt i 43.17 och tidigare bevarat. Bakgrund 43.17 (Signal Quality & Learning Loop): En ny Signalkvalitet / Lärloop-undersektion i 'Lärande / Precision' som loggar varje genererad signal/beslut server-side i signal_quality_journal.json (INGEN webbläsarlagring) och följer FAKTISKT utfall efter 1, 5, 20 och 60 handelsdagar för att höja precisionen över tid. Varje post fångar tidsstämpel, ticker, innehav/ej, schackruta, action/verdict, signalpoäng, triggerkategori, datakvalitet, källa, kurs/portföljvärde (om tillgängligt) och orsakstext. Saknas framtida kurs visas "väntar på utfall"; saknas historik visas "för lite historik" – inga påhittade kurser. Metrikpanel: loggade signaler, pågående utfall, träffkvot per åtgärdstyp, snittavkastning per horisont, falska positiva/negativa, bästa/svagaste trigger. Viktförslag är ICKE-BINDANDE (t.ex. 'öka vikt för regulatorisk trigger' / 'sänk vikt för datakvalitet-fallback') och kräver minst 8 utvärderade prov per trigger – ingen automatisk självmutering, inga automatiska regeländringar. Manuella kontroller: 'Logga dagens signaler', 'Beräkna utfall', 'Exportera signallogg JSON/CSV' (skickar ALDRIG order). Varje loggad signal är klickbar och visar varför den utlöstes och vad som mäts. Scanmotor-hook loggar nya skarp/verifiera/köp-kandidater utan dubbletter (ticker|action|datum|trigger). API i sidecar: GET /api/signalq/status, GET /api/signalq/signals, POST /api/signalq/log-today, POST /api/signalq/evaluate, GET /api/signalq/export. Ny cache-token chess43-19-2-auto-feed-pre22-alpha-trigger. Allt i 43.16.1 och tidigare bevarat. Bakgrund 43.15.2 (Catalyst Alert Logic): Klassade katalysatorer mappas DETERMINISTISKT till (a) en larmnivå (Info/Låg/Medel/Hög/Kritisk) härledd ur impact + sentiment + konfidens – svag evidens/saknad källa drar alltid ned nivån, inga påhittade nyheter; (b) en ljudprofil-etikett (info_ping/watch_ping/buy_trigger/phase_shift/risk_alarm/critical_alarm – endast etiketter, ingen bakgrundsaudio krävs); (c) en åtgärdsklass kopplad till schackrutan (Pre-22 scout → verifiera köpfönster före R22; R22 → entry/köpsignal; R28-31 → intensiv bevakning/bekräfta trigger; R32 → köpstopp/fasskifte; R33-36 → kärnposition, skala enligt plan; R60-64 → extrem fas, säkra risk/trimma; risk/exit → risköversyn). classifyCatalyst() berikas med alertLevel, soundProfile, actionClass/actionText, matchedKeywords, alertReason (klass + nyckelord + ticker) och corroboration (enkel/flera källor). Larm-hooken larmar nu medel/hög/kritisk (tidigare endast hög) och bär ljudprofil/nivå/åtgärd vidare till Larmcentralen. Nytt API GET /api/catalysts/alert-feed och ny UI-panel 'Katalysatorlarm' i Nyheter/Katalysatorer med snabblänkar till Larm och Handlingsplan samt påminnelsen 'Handel sker manuellt i Avanza.' Beslutsstöd – ingen automatisk handel, inga påhittade signaler. Bakgrund 43.15.1 (Auto Source Intel): Källscanner-flödet är PRIMÄRT verktygsdrivet och förladdat, inte manuellt. (a) Förladdat källregister för alla 11 aktiva innehav sammanfogas idempotent (nyckel ticker+url/id) vid sidecar-start – egna källor wipas aldrig, inga dubbletter. (b) SEC EDGAR (publikt, ingen inloggning) förladdat påslaget för US-innehav: 8-K (6-K för NBIS) + Form 4 (insynshandel) via känd CIK. (c) GAPW-B.ST: officiell IR-distribution via MFN RSS påslagen (verifierad). (d) SMTE.ST = Smart Eye AB (driver monitoring/automotive-AI/medtech) – avstängda platshållare tills verifierade; ingen SEC. VIKTIGT: SMTE = Smart Eye AB (svenskt börsbolag), inte något likljudande amerikanskt bolag – ingen SEC/CIK och inga felaktiga US-källor seedas för SMTE. (e) Sociala/insyn-/regulatoriska/kontrakts-kanaler är förstklassiga i modellen men ligger avstängda tills verifierade flöden/API-connectorer finns; requiresApi-flagga markerar X/LinkedIn/StockTwits/SAM.gov; appen skrapar aldrig skyddat innehåll och anropar aldrig inloggnings-API:er. (f) Schema-fält per källa: sourceQuality (verifierad/behöver verifieras/stub), requiresApi, modelCategory, monitoringPurpose, personName/personRole, theme – visas i registret. (g) UI-copy: "Aktiverade källor scannas automatiskt var 5:e minut. Källkatalogen underhålls via verktygets versionspaket. Manuell källa är endast admin/nödfall." – det manuella formuläret är sekundärt och märkt Admin/nödkälla. Beslutsstöd – inga externa betal-API:er/nycklar, ingen automatisk handel. Bakgrund 43.15 (News Source Scanner): En ÄRLIG, server-side Källscanner som automatiskt och schemalagt hämtar nyheter/PM/källor för alla bolag på brädet (aktiva innehav + externa kandidater) och matar in dem i den befintliga katalysatormotorn/catalyst_journal via samma klassning – den hämtar BARA från konfigurerade källor/adaptrar och hittar ALDRIG på nyheter. INGEN automatisk handel. (1) Källregister news_sources.json (server-side, INGEN webbläsarlagring) per ticker/bolag: ticker, bolagsnamn, aktivt/externt, källtyp (ir/rss/pressrelease/sec/news/manual/social_stub/insider_stub), URL, aktiverad, senast kontrollerad, senaste lyckade, senaste fel, noteringar. Säkert startregister: SEC EDGAR Atom-flöde (publikt, utan nyckel) är aktiverat per amerikansk ticker (AXON, QBTS, KTOS, NBIS, PLTR, PL, RKLB, SOUN, VOYG); svenska IR/RSS samt social_/insider-stubbar ligger som avstängda EXEMPEL tills du fyller i riktiga URL:er. INGA betal-API:er, inga nycklar. (2) Schemalagd scanner: server-side loop, standard 5 min (env CHESS_NEWS_SCAN_INTERVAL_MS, golv 60000 ms), körs även när webbläsaren är stängd. Hämtar aktiverade URL:er med timeout (8 s) och storleksgräns (~1,5 MB), följer max 2 redirects, kör ALDRIG hämtad HTML/skript. Minimal RSS/Atom-parsning (regex, ingen kodexekvering); okända format markeras utan parser. Dedup per ticker+URL/rubrik. Nya poster matas in i catalyst_journal genom befintlig klassning (inte rå spam); otillgänglig källa loggar hälsa utan att krascha. Journal/historik/seen capade (200/2000). (3) API i sidecar: GET /api/news-scan/status, GET /api/news-scan/sources, POST /api/news-scan/run-now, POST /api/news-scan/source (lägg till/uppdatera; validerar att URL börjar med http/https), POST /api/news-scan/source/toggle, GET /api/news-scan/history. (4) UI-sektion 'Källscanner' i Nyheter/Katalysatorer: status (På/Pausad/Fel, senaste/nästa scan, intervall, källor på/totalt, senast funna/inmatade, antal scans, senaste fel), knappen 'Kör nyhetsscan nu', källtabell (ticker, aktivt/externt, typ, URL, aktiverad, senast kontrollerad, hälsa, senaste resultat), formulär för att lägga till/redigera källa (ticker, typ, URL, aktiverad, not) samt filter (aktivt/externt + källhälsa). Tydlig not: "Scannern söker bara i angivna källor; sociala medier/insyn kräver separata källor/API senare; ingen automatisk handel." (5) Integration: nya hög-impact-katalysatorer skapar Larmcentral-larm via samma katalysator-väg; learning-motorn är bevarad. Ny cache-token chess43-19-2-auto-feed-pre22-alpha-trigger. Bakgrund 43.14 (News Catalyst Engine): En ÄRLIG, regelbaserad katalysatormotor som samlar och KLASSAR nyheter, pressmeddelanden, artiklar, analyser, insider-/personuttalanden och sociala signaler för alla bolag på brädet – kopplat till brädrörelse, INTE ett generiskt nyhetsflöde. INGEN fejk-AI, INGA påhittade nyheter, INGEN automatisk handel. (1) Server-side katalysatorjournal catalyst_journal.json (INGEN webbläsarlagring, capad till senaste 1000): varje post har id, tidsstämpel, ticker, bolagsnamn, aktivt/externt, källnamn, käll-URL, källtyp (PM/pressrelease/report/article/analysis/social/insider/regulatory/contract/earnings/other), rubrik, sammanfattning, råtext, katalysatorklass, sentiment/impact, konfidens, datakvalitet, relaterad board-ruta, fas, föreslagen rutt-påverkan, beslutsstöd, status (oläst/läst/arkiverad). (2) Klassning: deterministisk nyckelordsmotor (ej AI) mappar varje post till en schackeffekt; sociala/person-uttalanden ges lägre evidensvikt om de inte bekräftas av oberoende källa (30-dygnskorroborering), saknad källa/osäkerhet → låg konfidens. (3) API i sidecar: GET /api/catalysts/status, GET /api/catalysts/items, POST /api/catalysts/ingest (validerar body, säker), POST /api/catalysts/mark-read (+ /ack), POST /api/catalysts/evaluate-now. INGA externa betal-API:er eller nycklar. (4) UI-flik 'Nyheter / Katalysatorer': summeringskort, filter (aktivt/externt, ticker, impact, oläst), tabell, manuellt inmatningsformulär (klassar vid sparande), 'Utvärdera katalysatorer'-knapp. Tydlig not: "Katalysatorer påverkar signaler först när datakvalitet och bekräftelse är tillräcklig; ingen automatisk handel." (5) Integration: vid varje scan uppdateras katalysatorstatus och nya hög-impact-katalysatorer skapar ett Server Alert i Larmcentralen – inga påhittade nyheter; hela steget är inkapslat i try/catch och kraschar ALDRIG scanmotorn. (6) Seed: tom journal + manuell inmatning; exempel märks endast som exempel, ingen aktuell nyhet uppfinns som live. Ny cache-token chess43-19-2-auto-feed-pre22-alpha-trigger. Bakgrund 43.13 (Learning Outcome Engine): En ÄRLIG, evidensbaserad inlärningsmotor (INGEN fejk-AI, INGEN automatisk handel). (1) Server-side utfallsjournal outcome_journal.json (INGEN webbläsarlagring): varje signal/larm från scanmotorn loggas med id, tidsstämpel, ticker, händelsetyp/eventBase, board-zon, severity, källa, modelVersion, datakvalitet, decisionSafe, kurs vid signal (priceSekAtSignal), qty, värde, status (open/closed) och checkpoints 1d/1w/1m/3m. Det realiserade utfallet följs över tid: checkpoints jämför kursen vid signalen mot senare FAKTISK priceSek från samma build() – inga påhittade historiska kurser; saknas data markeras checkpoint pending eller insufficient. Klassning hit/miss/neutral med ±2% neutralband (R22/R28-31 upp=hit, R32/SELL ned=hit, DATA neutral). Journal capad till senaste 1000. (2) Lärandemetrics: träffsäkerhet per signaltyp och board-zon, snittavkastning, antal falska positiva + inaktuell-data-signaler, täckningsetiketter (för lite data / tidig evidens / meningsfullt urval) – inga starka slutsatser av små urval. (3) Icke-bindande 'Lärande rekommendationer' – ENDAST förslag, ändrar ALDRIG köp/säljregler automatiskt utan ditt godkännande. (4) API i sidecar: GET /api/learning/status, GET /api/learning/outcomes, POST /api/learning/evaluate-now, POST /api/learning/reset (avstängt som standard – kräver env CHESS_LEARNING_ALLOW_RESET=1 + {confirm:true}, ingen UI-knapp). (5) UI-flik 'Lärande / Precision' med totalt loggade/öppna/utvärderade, pending checkpoints, bästa/sämsta signaltyp, falska positiva, datatäckning, träffsäkerhet per typ, rekommendationer och tabell över senaste signaler + 'Utvärdera nu'-knapp. Tydlig not: "Motorn lär sig av utfall men ändrar inte köp/säljregler automatiskt utan ditt godkännande." (6) Vid varje scan registreras nya larm (dedup) och förfallna checkpoints utvärderas – kraschar ALDRIG scanmotorn. Ny cache-token chess43-19-2-auto-feed-pre22-alpha-trigger. Bakgrund 43.12.1 (Render Isolation Fix): Defensiv rendering-isolering för iPad/Safari som förhindrar att främmande sid-/flik-innehåll (bilder/text från andra sidor, WebKit-kompositlager-buggar) lyser igenom CHESS-ytan: (1) solid ogenomskinlig bakgrund tvingas på html/body/app-skal (.wrap) och alla innehållspaneler (.view); (2) egna stacking contexts via isolation:isolate + position:relative på body/app/paneler/modal; (3) contain:paint paint-containment på panelerna; (4) iOS-defensiv transform:translateZ(0), -webkit-backface-visibility:hidden, background-attachment:scroll, overscroll-behavior:none, overflow-x:hidden; inga element med negativ z-index, ingen oavsiktlig backdrop/filter/mix-blend. Diagnostik "Render isolation: aktiv" visas i System. Ingen layout-/logikändring – alla 43.12-funktioner bevaras oförändrat; ny cache-token chess43-12-1-render-isolation-fix tvingar färsk hämtning. Bakgrund 43.12 (Scheduled Scan Engine): server-side schemalagd scanning + larmutvärdering ovanpå 43.11 PWA HTTPS Foundation (samma board-first design/data). Nytt i 43.12 (Scheduled Scan Engine): (1) En Scanmotor i den installer-skrivna sidecar:n (:8091) som scannar portföljen på ett konfigurerbart intervall (env CHESS_SCAN_INTERVAL_MS, standard 300000 ms = 5 min, golv 30000 ms) – körs även när webbläsaren är stängd och även utanför handelstid (marknadssession etiketteras). Återanvänder samma /api/live-portfolio-logik och härleder larm ur faktisk data – inga påhittade marknadshändelser/kurser. Tillstånd sparas i scan_state.json och historik i scan_history.json (senaste 200), ingen webbläsarlagring. (2) Regelutvärdering per scan: R22 köpsignal, R28-31 extra bevakning, R32 inflection/köpstopp/exp. fas, sälj/risk vid kraftig nedgång samt datahälsa (fallback/inaktuell/timeout/FX-golv/securities-guard) – skrivs till samma alert_journal.json med befintlig dedup/anti-spam. (3) API: GET /api/scan/status, POST /api/scan/run-now, POST /api/scan/pause, POST /api/scan/resume, GET /api/scan/history. (4) UI 'Server-scanning (Scanmotor)' i Larm + System (status På/Pausad/Fel, senaste/nästa scan, intervall, antal scans, varaktighet, resultat, nya larm, marknadssession), knappen Kör scan nu (uppdaterar Larmcentralen), Pausa/Återuppta samt header-badge Scan: aktiv/pausad/fel. (5) Robusthet: motorn startar med sidecar-omstart, kraschar inte vid datafel (skriver timeout/fallback-status + larm), dubbelintervall-skydd. Motorn scannar och larmar, men all handel sker manuellt i Avanza – ingen automatisk handel. Alla 43.11-funktioner bevaras oförändrat. Nytt i 43.11 (PWA & HTTPS Foundation): (1) manifest.json (Schack Matt 22.32, standalone, theme/background #0b0d0f, start_url-token chess43-11-pwa-https-foundation, ikon icon.svg); (2) service-worker.js med säker install/activate/fetch – nätverk-först för navigeringar, cachar ALDRIG live-API (/api/, manual-overrides, :8091), endast statiskt skal cache-först; (3) SW registreras endast i secure context/localhost – över HTTP-IP visas att PWA/SW kräver HTTPS; (4) PWA & HTTPS-sektion (HTTPS-, SW-, notis- och installerad-status + guide + begränsning över http://165.22.16.114); (5) ärlig Notification-test-knapp (ingen falsk push); (6) egengenererad icon.svg (inga externa assets); (7) Caddy HTTPS-mall för chess.skuruborg.se → 127.0.0.1:8090 + DNS-checklista; (8) README/NOTES med domän/HTTPS-steg. Alla 43.10.2-funktioner bevaras oförändrat. Nytt i 43.10.2 (Server Alerts / Push Ready): En server-driven Larmcentral där 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 den installer-skrivna sidecar:n, ingen webbläsarlagring) så larm kan ses i efterhand. Sidecar-API: GET /api/alerts, POST /api/alerts (ingest), POST /api/alerts/ack (kvittera), GET /api/alerts/status. Larm-vyn får oläst-räknare, allvarlighetsgrad (Hög/Bevakning/Info), filter och Kvittera/Kvittera alla; header-badge "Larm: N olästa". Anti-spam: samma ticker+händelse dubbleras inte (klient-dedup per session + server-side dedup med 6h cooldown). Push-beredskap (ärlig): äkta webbläsar-push/Notification kräver secure context (HTTPS/domän) + i praktiken installerad PWA; över plain HTTP visas "Push redo: kräver HTTPS/domän/PWA" och appen faller tillbaka på ljud + visuella larm + Larmcentral – aldrig en falsk "Push aktiv". Notification API testas endast i secure context och bryter aldrig appen om det saknas. Ljudlarm + alla 43.10.1-funktioner bevaras. Nytt i 43.10.1 (Audio Alerts): Ljudlarm i Larm/larm-systemet med Web Audio API-genererade toner (INGA externa mp3-/ljudfiler). Fem händelseklasser med olika ljud: (1) Köpsignal / R22-trigger – ljus dubbel-pling, (2) Extra bevakning / R28–31 – mjukare tvåtons-ping, (3) R32 inflection / köpstopp / exp. fas – skarpare varningston, (4) Säljtrigger / risk – lägre varningston, (5) Datahälsa / fallback / timeout – kort dämpad pip. Synlig "Aktivera ljudlarm"-toggle + "Testa ljud" per händelsetyp i Larm-vyn; ljud startar ENDAST efter användargest (mobil Safari/Chrome-policy), ingen autoplay. Debounce/cooldown: samma ticker+händelse spelas en gång per session + global cooldown mellan ljud. Visuella larm visas alltid, även med ljud av. Statusindikator "Ljudlarm av/på" i header och Larm-vyn. Allt i 43.10 bevaras. Nytt i 43.10: (1) Köpplan 2.0 – varje aktivt innehav delas i Akut åtgärd / Risknotering / Nästa steg; vanlig övervikt är en risknotering (inte omedelbar säljinstruktion), "Trimma nu" endast vid materiell övervikt/säljtrigger; sammanfattningsräknare för Akut köp/Fyll på, Risknoteringar, Trimma nu, Köpstopp och Vänta/Behåll. (2) Beslutskort per bolag – klick på bricka/rad visar overlay med ticker/namn, aktiv vs extern, ägt antal (om aktivt), aktuellt värde, kurs, datakvalitet, senaste synk, ruta, fas, trigger, nästa checkpoint, köp-/sälj-/manuell handelsregel, rekommenderat viktintervall, faktisk vikt (endast aktiva) och tydlig "manuell handel i Avanza"-not. (3) Datahälso-gating – Live/Fallback/Senast känd styr beslutssäkerhet; tydlig kvalitetsetikett Beslutssäker / Bevakning endast / Vänta på färsk kurs på beslutskort och i Köpplan/Larm; timeout/fallback genererar ALDRIG ny köpsignal utom vid färsk manuell override. (4) Screener-separation – externa kandidater märks tydligt "Ej ägd kandidat", "Extern bevakning", "Ingen faktisk vikt/allokering" och får aldrig faktisk vikt/gap som om de ägdes. (5) Portföljvärde-logg – lättviktig daglig värdehistorik (serverfil value_history.json via sidecar, i-minnet runtime-spegel, ingen webbläsarlagring) som visar Dagens värde / Dag / Vecka / Månad / År, eller "Historik byggs upp" tills tillräckligt med mätpunkter finns. Nytt i 43.9.1 – Force Securities Baseline (smal hotfix): Tvingar korrekt Avanza-baslinje för värdepapper och total. 43.9 visade rätt kassa (17 079) men kunde visa fel total (~191k) och värdepapper (~173k) när en underräknad live-payload (trasig FX / delvisa quotes) tilläts skriva headline-KPI:erna. Fix: (1) sanity-guard höjd till 85% – om summerade live-värdepapper hamnar under 85% av Avanza-referensen (255 418) trots att alla 11 innehav räknats, faller headline-KPI:erna tillbaka till referensen (värdepapper 255 418, total 272 497) och markeras ärligt som senast känd/fallback (ej live), med en datakvalitets-varning i Live Integrity; (2) sidecar-FX-golv (orimligt låg USD/SEK <5 → 10,5-fallback) + securitiesRefSek/securitiesGuard-flagga så en underräknad payload självmarkeras; (3) uttrycklig användar-override (securitiesOverride) passerar guarden. Baslinjer: total 272 497 (272 497,82), värdepapper 255 418 (255 418,43), kassa 17 079 (17 079,39), basvärde/YTD-bas 284 224, YTD ≈ −4,13% / −11 727 SEK. Inga påhittade kurser. Allt i 43.9 bevaras – Watchlist & Screener Layer: ett bevaknings-/screeningslager utökar appen bortom de aktiva innehaven och spårar/rankar EXTERNA kandidater till schackbrädet i tre grupper – pre-22 scout-kandidater (prickade, på väg mot R22), gula 22–31-kandidater (ackumulation/intensiv bevakning) och 32–35 inflection-kandidater (kvalar endast om identifierade före/vid R36 och fortfarande underprissatta). Varje kandidat bär ticker, namn, marknad/valuta, föreslagen ruta, tema (AI/defense/dual-use/autonomy/space/quantum/cyber/medtech), datakvalitet (samma fem statuslägen som Data Integrity Layer), signalScore/inflectionScore/dualUseScore (0–100), kort svensk motivering, nästa trigger och en härledd åtgärd (Bevaka/Köp vid R22/Fyll på stegvis/Avvakta/Datakontroll/Köpstopp). En deterministisk screener räknar candidateRank (0–100 = 0,30·signal + 0,25·inflection + 0,20·dual-use + 0,15·rutpoäng + 0,10·tema + underprissatt-/tidig-inflection-bonus − datakvalitets-straff) och rutregler styr fasen (<R22 scout, R22 grön köptrigger, R23–31 gul, R32 röd fasövergång/köpstopp, R33–35 inflection endast om underprissatt + tidigt identifierad, >R36 ej ny tidig kandidat). Vyn Signalranking / Screener visar summerings-KPI:er (scout, köpzon, gula, inflection, datakvalitets-varningar) + tabellerna Toppkandidater, Mot ruta 22, Gula rutor 22–31 och Inflection 32–35. På brädet visas topp-N kandidater som mindre prickade ghost-chips (visuellt åtskilda från aktiva innehav – watchlist, ej portfölj), separata watchlist-larm (R22-korsning, R28–31, R32, tappad datakvalitet) ligger åtskilda från portföljlarmen, och System-sidan har en Watchlist & Screener-sammanfattning. Kandidatuniversumet är ett kurerat scaffold – ingen finansiell rådgivning, ingen automatisk handel, inga påhittade kurser. Källa/dokumentation: src/watchlist-screener/ (candidate-universe.json, screener-engine.js, README.md). De 11 aktiva innehaven ingår INTE i kandidatuniversumet. Allt från 43.8 bevaras – Data Integrity Layer: en deterministisk status-monitor spårar datakällans hälsa per bolag i fem svenska statuslägen – Live (färsk giltig leverantörskurs ≤2 min, grön), Fördröjd (giltig men äldre ≤15 min, gul), Senast känd (live saknas men cachead senast-känd-kurs finns, blå), Fallback (endast Avanza-referens/manuell, amber) och Timeout (ingen användbar kurs/kursfel, röd). Varje health-objekt bär status, källetikett, tidsstämplar för senaste kurs-/Avanza-sync, ålder (sek/min), severity (ok/warn/stale/error), beslutssäkerhet och en kort svensk förklaring. Varje bolagsbricka på schackbrädet får en liten datakvalitets-prick i statusfärgen och info-modalen visar status + senaste synk-timestamp, så det alltid syns om beslutsunderlaget är färskt. Portföljens datastatus-kolumn, ett nytt Datahälso-larm (Timeout/fördröjd-stale/fallback-only utan att bryta pris-/rutlarmen), Köpplanens beslutssäkerhets-varning ("kräver datakontroll", raden tas aldrig bort) och en Data Integrity-sammanfattning på System-sidan (live/användbara, fallback, timeout, senaste Avanza-/kurssync + statustabell för alla 11 innehav) drivs alla av samma health-objekt. SMTE och andra svaga datakällor tappas ALDRIG – de degraderas till Senast känd → Fallback men släpps aldrig ur portföljen. Inga påhittade kurser. Bevarat från 43.7.2: hela appen synkad mot Avanza-skärmdump efter köp (2026-06-23). KTOS uppdaterad till 53 st (snittköp 56,70 USD) och PL till 66 st (snittköp 29,93 USD); övriga innehav uppdaterade med nya kurser/värden. Kassan är pinnad till Avanza-baslinjen 17 079 SEK i frontend och kan aldrig skrivas över av en inaktuell live-/sidecar-payload (t.ex. en gammal felaktig kassasiffra). Portföljtotalen rekonstrueras som live-värdepapper + pinnad kassa (17 079), så kassa/total/"I år"/konto-uppdelning startar alltid från korrekt baslinje (total 272 497 / vp 255 418 / kassa 17 079 / basvärde 284 224). Sidecar (CASH_SEK=17 079, START_TOTAL=272 497) skrivs om och startas om, ev. föräldralös :8091-process dödas, och serverade *.json/*.txt-datafiler med en gammal kassasiffra saneras till rätt baslinje. All 43.7/43.7.1-funktion/design bevaras. Köpplan: Köpplan – Risk & Execution Layer (Startplan ombyggd till Köpplan). Räknar DYNAMISKT ur de aktiva innehaven (ACTIVE_TICKERS ur HOLD) – ingen separat hårdkodad lista. Per innehav: aktuell vikt (värde/total), målvikt ur modell/ruta/signal med viktstak (kärna/sen-validerade max ~10–12%, spets/deep-tech mål/max ~3–7%), allokeringsgap i SEK, riskklass och rekommendation (Köp nu / Fyll på stegvis / Bevaka / Avvakta / Köpstopp / Trimma / Tidigt alpha-case). Synliga rutregler: R22 köptrigger; R28–31 intensifierad bevakning (stegvis köp endast vid hög signal + undervikt); R32 rött larm/fasövergång – inget nytt aggressivt köp, "sen entré/köpstopp" om ej ägt; R33–36 ny investering endast om identifierad före/vid R36 och underprissatt, annars försiktighet (ägt kan hållas/trimmas); R61–64 endgame/compounder utan autoköp – utvärdera värdering/övervikt; Pre-22 extraordinär trigger → liten startposition. Praktisk kassautplacering av kassan (17 079 SEK): bevarad buffert (30%), föreslagen nästa köpordning med SEK-belopp, maxorder per position, stegvis köp – ingen autoorder. Toppsummering: portföljvärde live/fallback, kassa, föreslås placeras idag, buffert, antal köp/bevaka/trimma/stopp. SMTE och andra svaga datakällor tappas aldrig – Köpplanen återanvänder Larmens fallback-kedja (live → senast känt → Avanza-referens). Handlingsplan och Larm är intakta och fortsatt dynamiska. Bevarat från 43.6.0/43.6.1: portföljen synkad mot Avanza-skärmdump (2026-06-23), ett konto: Skuruborg Quantum med 11 innehav (AXON, QBTS, GAPW-B, KTOS, NBIS, PLTR, PL, RKLB, SMTE, SOUN, VOYG) + kassa 17 079 SEK. PLTR (Palantir, 20 st) syns på bräde (R27), info-modal och handlingsplan. KPI:erna visar Quantum-total 272 497 SEK (värdepapper 255 418 SEK, kassa 17 079 SEK). Avanza-basvärdet är omräknat till ~284 224 SEK (272 497 / (1−0,0413)) och "I år" räknas dynamiskt mot detta (referens ≈ −4,13% = −11 727 SEK). Terranet förblir helt borttaget – inget TERRNT-innehav, inget Terranet-konto, ingen Terranet-bräd-markör, ingen Terranet i aktiv sidecar-data. Statiska skärmdumpsvärden används som referens/fallback (visas direkt), live-rörelse uppdaterar när marknadsdata finns. Layout/design är oförändrad (Board First / Full Board): legend under brädet, kompakta KPI-rutor, hela brädet synligt, "Schack Matt 22.32" och "Skuruborg Quantum" på titelraden. Bevarade funktioner: Handlingsplan (köpzon/extra bevakning/köpstopp/övervikt/säljbevaka/scout, härlett ur ROUTE_RULES, conviction, recoWeight, deviation – inga påhittade fundamenta), Dynamic YTD KPI ("I år" = aktuell total − Avanza-basvärde 284 224 SEK, i SEK och procent), Live Refresh & Data Freshness (Senast hämtad/ändrad, auto-refresh, knapptillstånd, per-innehav färskhets-/källbadge), Signaljournal + regelverk per ruta (R1-21 Watch/Scout, R22 Köpzon, R23-27 Ackumulation, R28-31 Extra bevakning, R32 Köpstopp/Faslarm, R33-36 Launch/Owner, R37-60 Äg/Skala, R61-64 Compounder/Endgame), Allokeringsmotor + Avvikelse-mot-plan, daglig cockpit-summering och säljtriggers, manuell Avanza-override (manual_overrides.json via GET/POST /manual-overrides, markeras "Manuell Avanza-kurs", aldrig live), Nordic Quote Adapter (svenska tickers som SMTE.ST/GAPW-B.ST provas mot alias-stege .ST/.STO/B-varianter hos Yahoo Finance + Stooq med korrekt .st-mappning, aldrig felaktigt .us), larm/rutlarm, det sömlösa valnötsbrädet utan färgade kantlinjer. ÄRLIGHET: "Full live" visas ENDAST när alla 11 innehav har en riktig leverantörskurs; annars "Delvis live: X/11 kurser" med vilka tickers som blockerar och varför. Inga påhittade kurser – saknas en leverantörskurs används uttrycklig senast känd fallback och markeras som sådan. Beslutsstöd – ingen automatisk handel, inga personliga råd. Manuell handel i Avanza. Hard clean replace, ingen additiv patch, ingen gammal CHESS-kod.
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.
Inga manuella overrides aktiva.
Kontoöversikt: beräknas vid render.
Avanza-baslinje (Skuruborg Quantum): Total 272 497 SEK (värdepapper 255 418 · kassa 17 079) · Avanza-basvärde 284 224 SEK · I år -11 727 SEK · Aktiva innehav 11. Skärmdump Skuruborg Quantum 2026-06-25 03:15, YTD -4,13%.