Swiss-Cheese-Modell Coronavirus
Stapeln Sie Schutzschichten und sehen Sie, welches Ansteckungsrisiko noch durchkommt: Eine Maske mit 70 %, eine um 50 % bessere Lüftung und eine Impfung mit 80 % lassen 3 % Restrisiko, keine 200 % Schutz. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Das Schweizer-Käse-Modell für das Coronavirus behandelt jede infektionsbezogene Schutzmaßnahme als Scheibe mit Löchern: Maske, Außenluft, Filterung, Abstand, Impfung, Testung und Isolation blockieren einige — niemals alle — der Wege, die ein Atemwegsvirus nutzt, um von einer Person zur nächsten zu gelangen. Wenn diese Scheiben gestapelt sind, muss ein Virion nacheinander durch jedes verbleibende Loch, sodass die restliche Übertragungswahrscheinlichkeit das Produkt der einzelnen Leckanteile ist, nicht die Summe der Wirksamkeitsprozente, die man gewöhnlich zitiert. Dieser Rechner nimmt die Wirksamkeit jeder Schicht als Prozentwert von 0 bis 100, wandelt sie in ein Leck von (100 minus Wirksamkeit) geteilt durch 100 um, multipliziert die Lecks und liefert das kombinierte Infektionsrisiko, das nach dem Stapel noch bleibt. Eine Maske mit 70 Prozent, eine Lüftungsverbesserung mit 50 und eine Impfschicht mit 80 addieren sich nicht zu 200 Prozent Schutz; sie lassen 0.30 × 0.50 × 0.20 = 0.03, also 3 Prozent Rest. Nutzen Sie ihn, um Stapel zu vergleichen, zu zeigen, warum eine zweite unvollkommene Schicht trotzdem zählt, und laut zu scheitern, wenn ein Prozentwert außerhalb von 0–100 liegt, statt eine Risikozahl zu erfinden.
Wie gestapelte Schichten Lecks zum Restrisiko multiplizieren
Die Atemwegsvirus-Abwehr nach dem Schweizer-Käse-Bild, in der Coronavirus-Pandemie als Public-Health-Schaubild bekannt geworden, beginnt mit einer nüchternen Tatsache: keine einzelne Maßnahme ist eine volle Mauer. Eine Maske leckt an den Rändern, ein Filter reinigt nur die Luft, die ihn wirklich durchströmt, eine Impfung senkt Infektiosität und Empfänglichkeit, ohne beides auf null zu setzen, und physischer Abstand scheitert weiter, wenn Menschen lange einen schlecht belüfteten Raum teilen. Jede Schicht ist daher eine Scheibe Schweizer Käse, deren Löcher die Fehlermodi dieser Schicht sind.
Übertragung, die nach N unabhängigen Schichten noch stattfindet, ist das Ereignis, dass ein Virion ein Loch in Schicht eins und ein Loch in Schicht zwei und ein Loch in jeder restlichen Scheibe findet. Eine 50-Prozent-Schicht auf einen bestehenden Stapel zu setzen addiert keine fünfzig Schutzpunkte; sie multipliziert den aktuellen Rest mit einem Halb. Deshalb zählt eine zweite unvollkommene Kontrolle selbst dann, wenn die erste schon stark wirkt, und deshalb ist eine Summe von Wirksamkeitsprozenten wie 70 plus 50 plus 80 gleich 200 keine Wahrscheinlichkeit.
Dieser Endpunkt setzt genau dieses Produkt um und sonst nichts: er passt keine Dosis-Wirkungs-Kurve, schätzt keine Gemeinprävalenz und ersetzt keinen klinischen oder arbeitsmedizinischen Rat. Er macht aus einer Liste von Schichtprozenten das Restrisiko, das bleibt, wenn diese Schichten unabhängig voneinander wirken.
Wo ein Schweizer-Käse-Coronavirus-Rechner seinen Nutzen hat
Arbeitsmedizin- und Facility-Teams nutzen einen Schweizer-Käse-Coronavirus-Rechner, um Kandidatenstapel zu vergleichen, bevor Budget fließt: ein tragbares HEPA-Gerät mit erklärter 50-Prozent-Wirksamkeit zu einer bestehenden Masken-und-Abstands-Regel hinzuzufügen ist eine Multiplikation des aktuellen Rests, kein neuer Schlagzeilenprozentsatz. Schul- und Campusplaner können veröffentlichte Schichtschätzungen nebeneinander legen — Quellenkontrolle, Außenluft, Filterung, Kohorten — und einem Gremium zeigen, warum zwei 60-Prozent-Kontrollen unter Unabhängigkeit eine 80-Prozent-Kontrolle schlagen (Rest 0.16 gegen 0.20).
Persönliche Risikonotizen und journalistische Erklärstücke brauchen ein deterministisches Orakel, das eine Zahl verweigert, wenn jemand 110 Prozent Wirksamkeit tippt, statt still zu kappen und so zu tun, als sei der Stapel stärker, als die Eingaben zulassen. Gescheiterte Prüfung wird nicht berechnet. Halten Sie die Schichtliste kurz, pinnen Sie den gerundeten Rest in Tests, und Sie erhalten eine reproduzierbare Stapelrisiko-Zahl, ohne einen eigenen Epidemiologie-Simulator aufzustellen.
Anwendungsfälle
Stapelvergleich am Arbeitsplatz und in der Schule
Vergleichen Sie Masken-, Lüftungs- und Impfschichten nach Restübertragung statt Wirksamkeitsprozente zu addieren, die keine Wahrscheinlichkeit sind.
Politiktexte und journalistische Widgets
Zeigen Sie, warum eine zweite unvollkommene Kontrolle das Restrisiko weiter multipliziert, mit einem Schweizer-Käse-Coronavirus-Rechner, der Prozentwerte außerhalb 0–100 ablehnt.
Häufige Fragen
Wie wird die Restübertragung aus gestapelten Schichten berechnet?
Das Leck jeder Schicht ist (100 − effectiveness) / 100. Die Restübertragung R ist das Produkt dieser Lecks, wenn die Schichten unabhängig sind. Der kombinierte Schutz ist 1 − R. Beispiel: 70%, 50% und 80% lassen 0.30 × 0.50 × 0.20 = 0.03.
Was geschieht, wenn eine Wirksamkeit außerhalb 0–100 liegt?
Die Wirksamkeit muss ein endlicher Prozentwert im abgeschlossenen Intervall 0–100 sein; Werte wie −5 oder 110 werden abgelehnt und nicht berechnet.
Macht eine 100-Prozent-Schicht das Restrisiko zu null?
Ja: in diesem Modell unabhängiger Schichten hat eine 100-prozentige Wirksamkeit Leck 0, daher ist das Produkt R gleich 0 unabhängig von den übrigen Scheiben. Das ist eine Modellannahme, kein Anspruch, dass eine reale Kontrolle perfekt sei.
Kann ich unbenannte Prozente statt benannter Schichten senden?
Objekte mit optionalem name sind für beschriftete Scheiben zulässig.
Bringt eine zusätzliche schwache Schicht noch etwas?
Ja. Eine Schicht, die 50 % abhält, halbiert das verbleibende Risiko, egal wie stark die anderen schon sind. Deshalb zählt eine zweite unvollkommene Maßnahme auch dann, wenn die erste bereits gut aussieht.
Welche Annahmen stecken in dem Modell?
Es geht davon aus, dass die Schichten unabhängig voneinander wirken. Es schätzt weder die Verbreitung in der Bevölkerung noch eine Dosis-Wirkungs-Kurve und ersetzt keine ärztliche oder arbeitsmedizinische Beratung.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/health/swiss-cheese-coronavirus \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"layers":[{"name":"mask","effectiveness":70},{"name":"ventilation","effectiveness":50},{"name":"vaccine","effectiveness":80}]}'const res = await fetch("https://api.kit.forhosting.com/health/swiss-cheese-coronavirus", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"layers": [
{
"name": "mask",
"effectiveness": 70
},
{
"name": "ventilation",
"effectiveness": 50
},
{
"name": "vaccine",
"effectiveness": 80
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/swiss-cheese-coronavirus",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"layers": [
{
"name": "mask",
"effectiveness": 70
},
{
"name": "ventilation",
"effectiveness": 50
},
{
"name": "vaccine",
"effectiveness": 80
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/swiss-cheese-coronavirus", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"layers":[{"name":"mask","effectiveness":70},{"name":"ventilation","effectiveness":50},{"name":"vaccine","effectiveness":80}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"layers":[{"name":"mask","effectiveness":70},{"name":"ventilation","effectiveness":50},{"name":"vaccine","effectiveness":80}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/swiss-cheese-coronavirus", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"layers": [
{
"name": "mask",
"effectiveness": 70
},
{
"name": "ventilation",
"effectiveness": 50
},
{
"name": "vaccine",
"effectiveness": 80
}
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.swiss_cheese_coronavirus",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_items | 40 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Wie gestapelte Schichten Lecks zum Restrisiko multiplizieren
Wenn Schicht i einen Anteil e_i der Versuche blockiert — die Wirksamkeit, die Sie als Prozent eingeben —, leckt sie den Anteil eins minus e_i, und die restliche Übertragungswahrscheinlichkeit ist das Produkt dieser Lecks: R gleicht dem Produkt von (1 − e_i).
Eingabevertrag, Antwortform und Prüfung
Jedes Element ist entweder eine endliche Zahl (das Wirksamkeitsprozent) oder ein Objekt mit Pflichtfeld effectiveness und optionalem name, etwa mask, ventilation oder vaccine. Jede Wirksamkeit muss eine endliche Zahl im abgeschlossenen Intervall von 0 bis 100 einschließlich sein: null heißt, die Schicht tut nichts (Leck eins), einhundert modelliert eine vollständige Sperre (Leck null und Rest null für den ganzen Stapel). Optionale Namen entfallen, wenn Sie nackte Zahlen senden; sie kommen nie als null zurück. Senden Sie per POST einen JSON-Körper, dessen Pflichtfeld layers ist: ein nicht leeres Array von höchstens vierzig Schutzscheiben. Die Aliase effectiveness, layer_effectiveness und protections werden ebenso gelesen, einschließlich einer JSON-Array-Zeichenkette oder einer durch Kommas getrennten Zahlenliste. Ein Wert unter 0 oder über 100, eine fehlende Liste, eine leere Liste, ein nicht endliches Token oder mehr als vierzig Zeilen scheitert mit invalid_input unter Nennung des Feldes, und diese Fehler werden nicht berechnet. Bei Erfolg enthält der Körper layer_count; eine layers-Spur mit index, optionalem name, effectiveness, leak_fraction und remaining_after nach dieser Scheibe; residual_transmission als Wahrscheinlichkeit in 0–1 (das Hauptergebnis); residual_percent auf der Skala 0–100; combined_protection und combined_protection_percent als eins minus Rest; und eine formula-Zeichenkette, die R = Π (1 − eᵢ/100) wiederholt. Beispiel: mask 70, ventilation 50, vaccine 80 ergibt Lecks 0.3, 0.5 und 0.2, remaining_after 0.3 dann 0.15 dann 0.03, residual_transmission 0.03 und combined_protection 0.97.
Wo ein Schweizer-Käse-Coronavirus-Rechner seinen Nutzen hat
Weil die Umsetzung reines parse der Stufe A ist, kostet jeder erfolgreiche Aufruf den veröffentlichten Grundpreis $0.002, ohne Modell-Tokens und ohne ausgehendes Netz.
Integrationsbeispiele
Persönliche und notizbuchtaugliche Risikoarithmetik
Wandeln Sie eine kurze Liste von Schicht-Wirksamkeitsprozenten in residual_transmission für eine Notizen-App oder ein Skript um, ohne ein volles Epidemiemodell zu importieren.
Technische Fragen
Was kostet der Schweizer-Käse-Coronavirus-Rechner?
Das Browser-Werkzeug ist kostenlos. API-Anfragen nutzen vorausbezahltes KIT-Guthaben zu $0.002 je erfolgreichem Aufruf; ungültige Eingabe wird nicht berechnet.