Unser A/B-Benchmark, offen einsehbar. Messen Sie uns.
Wir veröffentlichen jeden Lauf: vier Testreihen mit öffentlichen Datensätzen, 10 Modelle, und beide Arme gemessen mit dem eigenen Nutzungszähler des Anbieters. Jede Zahl trägt ihr n, ihr Intervall und ihr Datum. Was nicht einspart, steht auch hier.
- Testreihen
- 4
- getestete Modelle
- 10
- Modelle mit einer Messung
- 10
- Live-Berichte
- 15
- letzter Lauf
- 29.09.2026
Was gemessen wird, und wie
- Zwei Arme, dieselbe Anfrage. A geht direkt zum Anbieter, ohne die Schicht; B läuft durch die Schicht mit ihrer Standardkonfiguration. Gleicher Prompt, gleiches Sampling, gleiche Ausgabeobergrenze.
- Die Kosten zählt der Anbieter. Jeder Arm wird anhand des
usage-Werts bepreist, den die API bei jedem Aufruf zurückgibt, zum Listenpreis. Die Ersparnis ist 1 − Kosten(B) / Kosten(A) desselben Laufs, nicht das, was die Schicht über sich selbst sagt. - Intervalle zum 95 %. Jeder Testharness berechnet sie (Resampling ganzer Fragefamilien, Wilson für Ablehnungsraten). Ein Intervall, das die Null überschreitet, bedeutet „nicht von null unterscheidbar“, und das sagen wir dann auch.
- Das Paket, das Sie installieren. Arm B läuft mit der Quelle des Tags 0.4.31; dessen
dist/index.jsist byteidentisch mit dem des npm-Tarballs (sha256b52f99cacf9804ecd3153e56f26ec3adcdc2510d52a8446a369ecf914e0b5731). - Keine Abkürzungen. Jeder Testharness überwacht die Hosts, mit denen er spricht, und trägt ein im Code festgelegtes Ausgabenlimit pro Modell. Ein Modell, das nicht gemessen werden konnte, wird als „nicht gemessen“ ausgewiesen, mit Begründung.
Vier Testreihen, öffentliche Datensätze, festgelegt
| Testreihe | Was geprüft wird | Datensatz | Festgelegte Dateien | Lizenz |
|---|---|---|---|---|
| GSM8K | Textaufgaben in Mathematik mit Wiederholungen und Umformulierungen: wie viel der Cache einspart und ob die Genauigkeit sinkt. | openai/grade-school-mathcommit 3101c7d5072418e28b9008a6636bde82a006892c | gsm8k-test sha256 3730d312f6e3440559ace48831e51066acaca737f6eabec99bccb9e4b3c39d14gsm8k-trainsha256 17f347dc51477c50d4efb83959dbb7c56297aba886e5544ee2aaed3024813465 | MIT |
| BFCL | Tool-Aufrufe: die Schicht darf keinen einzigen ändern, und der gesamte Katalog muss ankommen. | ShishirPatil/gorillacommit f7cf7359b7ac615a0b294831c5ba2bc95ee4a000 | per Commit festgelegt | Apache-2.0 |
| XSTest | Ablehnungen: die Schicht darf nicht ändern, wann das Modell ablehnt, noch eine Ablehnung aus dem Cache ausliefern. | paul-rottger/exaggerated-safetycommit d7bb5bd738c1fcbc36edd83d5e7d1b71a3e2d84d | xstest_prompts.csv sha256 11783fb294ed017473ee53c207d71f2161c7672c8d0b037501e78387f801cb5a | CC-BY-4.0 |
| MT-Bench | Chat mit zwei Runden ohne Wiederholungen: die Schicht darf Kosten, Latenz oder Qualität nicht verschlechtern. | lm-sys/FastChatcommit 587d5cfa1609a43d192cedb8441cac3c17db105d | question.jsonl sha256 119565adbab82227089cefdb44c8d7e2cf04dc0a0ec233634c82e7d4e2a944f7gpt-4.jsonlsha256 f957a5bc977badb66885ec970e6cd08527845780313f0995764260e5777b9b3fjudge_prompts.jsonlsha256 fd283293406d024f44c174b094ef48031d0687a4682fd3a56b29b138f80281b6 | Apache-2.0 |
Gemessene Ersparnis pro Modell
GSM8K, mit einem Anfragestrom, in dem 30 % exakte Wiederholungen sind und 20 % Umformulierungen. Das ist die Testreihe mit wiederholtem Traffic: Ihre Ersparnis hängt davon ab, wie stark sich Ihrer wiederholt. Ohne Wiederholungen siehe „Was nicht einspart“.
| Modell | n | Gemessene Ersparnis [CI] | Aus dem exakten Cache | In den Aufrufen (Präfix) | Genauigkeit A → B | Version · Datum |
|---|---|---|---|---|---|---|
openai/gpt-4o-mini | 200 Anfragen · 100 eindeutig | 31,5 % [25,7 % – 36,7 %] | 0,0124 $ | 0,0006 $ | 95,0 % → 96,1 %Δ +1,1 pp [0,0, +2,8] | 0.4.31 · 28.09.2026 |
openai/gpt-5.4-mini | 176 Anfragen · 88 eindeutig | 31,7 % [25,6 % – 37,6 %] | 0,0734 $ | 0,0003 $ | 95,6 % → 93,7 %Δ -1,9 pp [-5,0, 0,0] | 0.4.31 · 28.09.2026 |
openai/gpt-5.5 | 22 Anfragen · 11 eindeutig | 33,4 % [6,8 % – 53,8 %] | 0,0790 $ | -0,0023 $ | 100,0 % → 100,0 %Δ 0,0 pp [0,0, 0,0] | 0.4.31 · 28.09.2026 |
openai/gpt-5.6-sol | 32 Anfragen · 16 eindeutig | 29,2 % [9,5 % – 46,8 %] | 0,0252 $ | -0,0003 $ | 100,0 % → 100,0 %Δ 0,0 pp [0,0, 0,0] | 0.4.31 · 28.09.2026 |
anthropic/claude-haiku-4-5 | 116 Anfragen · 58 eindeutig | 32,2 % [23,6 % – 40,2 %] | 0,0773 $ | 0,0002 $ | 99,0 % → 99,0 %Δ 0,0 pp [0,0, 0,0] | 0.4.31 · 28.09.2026 |
anthropic/claude-opus-5-5 | 32 Anfragen · 16 eindeutig | 77,2 % [67,1 % – 83,9 %] | 0,0974 $ | 0,1391 $ | 100,0 % → 100,0 %Δ 0,0 pp [0,0, 0,0] | 0.4.31 · 28.09.2026 |
anthropic/claude-sonnet-5 | 62 Anfragen · 31 eindeutig | 75,1 % [69,3 % – 79,6 %] | 0,1054 $ | 0,1313 $ | 100,0 % → 100,0 %Δ 0,0 pp [0,0, 0,0] | 0.4.31 · 28.09.2026 |
anthropic/claude-sonnet-5-5 | 62 Anfragen · 31 eindeutig | 77,5 % [72,0 % – 81,7 %] | 0,0924 $ | 0,1289 $ | 100,0 % → 100,0 %Δ 0,0 pp [0,0, 0,0] | 0.4.31 · 28.09.2026 |
google/gemini-3.1-pro-preview | die Schicht ist fehlgeschlagen: Anfragen liefen nicht über die Schicht | 0.4.31 · 28.09.2026 | ||||
google/gemini-3.8-flash | die Schicht ist fehlgeschlagen: Anfragen liefen nicht über die Schicht | 0.4.31 · 28.09.2026 | ||||
Woher die Ersparnis stammt, Position für Position: „aus dem exakten Cache“ ist das, was A für die Anfragen bezahlt hat, die die Schicht bedient hat, ohne den Anbieter aufzurufen; „in den Aufrufen“ ist die Differenz bei denen, die ihn tatsächlich erreicht haben, meist der Präfix-Cache des Anbieters (plus etwas Variation in der Ausgabe). Beide zusammen ergeben die Gesamtersparnis.
Die Genauigkeit wird anhand der Fragen mit veröffentlichter Antwort gemessen; die Varianten mit einer geänderten Zahl dienen nur dazu zu prüfen, dass die Schicht niemals die Antwort einer anderen Frage zurückgibt.
Garantien, gezählt
Die Schicht hat noch nie einen Tool-Aufruf verändert
0 veränderte Aufrufe bei 1.325 BFCL-Vergleichen, 6 Modelle, seit 0.4.31. Wenn die Schicht versagt (ein Fehler in B, den A nicht hatte), wird das hier nicht gezählt: das steht unter „Fehler, die der Benchmark gefunden hat“.
Keine Antwort einer anderen Frage seit 0.4.31
0 von 198 Varianten (dieselbe Frage mit einer anderen Zahl, also einer anderen Antwort) mit der Antwort einer anderen Frage ausgeliefert, über 8 Live-Modelle und alle gemessenen Cache-Konfigurationen hinweg.
Offline-Replay des gesamten GSM8K-Testsplits: 0 bei 5.813 Anfragen, in jeder der 5 Cache-Konfigurationen.
Dieselbe Ablehnungsrate, mit und ohne die Schicht
XSTest, 10 gemessene Modelle: kein A/B-Unterschied unterhalb von p = 0,05 (McNemar, gepaarte Prompts). Die Schicht hat den Text von 4.668 Antworten unverändert ausgeliefert (0 verändert).
| Modell | Prompts | Ablehnungen, sichere Prompts (A → B) | Ablehnungen, unsichere Prompts (A → B) | Version · Datum |
|---|---|---|---|---|
openai/gpt-4o-mini | 450 | 5,2 % → 5,2 % (n = 250, p = 1,00) | 81,5 % → 81,5 % (n = 200, p = 1,00) | 0.4.31 · 28.09.2026 |
openai/gpt-5.4-mini | 441 | 11,0 % → 9,8 % (n = 245, p = 0,63) | 87,2 % → 86,7 % (n = 196, p = 1,00) | 0.4.31 · 28.09.2026 |
openai/gpt-5.5 | 120 | 6,3 % → 4,7 % (n = 64, p = 1,00) | 80,0 % → 80,0 % (n = 55, p = 1,00) | 0.4.31 · 29.09.2026 |
openai/gpt-5.6-sol | 199 | 2,7 % → 2,7 % (n = 111, p = 1,00) | 75,6 % → 76,7 % (n = 86, p = 1,00) | 0.4.31 · 29.09.2026 |
anthropic/claude-haiku-4-5 | 450 | 1,6 % → 2,0 % (n = 250, p = 1,00) | 42,5 % → 42,5 % (n = 200, p = 1,00) | 0.4.31 · 29.09.2026 |
anthropic/claude-opus-5-5 | 81 | — | 67,1 % → 67,1 % (n = 79, p = 1,00) | 0.4.31 · 29.09.2026 |
anthropic/claude-sonnet-5 | 264 | 2,7 % → 2,0 % (n = 147, p = 1,00) | 68,4 % → 71,8 % (n = 117, p = 0,34) | 0.4.31 · 29.09.2026 |
anthropic/claude-sonnet-5-5 | 311 | 1,5 % → 0,0 % (n = 135, p = 0,50) | 64,3 % → 65,3 % (n = 98, p = 1,00) | 0.4.31 · 29.09.2026 |
google/gemini-3.1-pro-preview | 58 | 0,0 % → 0,0 % (n = 32, p = 1,00) | 80,8 % → 84,6 % (n = 26, p = 1,00) | 0.4.31 · 29.09.2026 |
google/gemini-3.8-flash | 450 | 0,4 % → 0,4 % (n = 249, p = 1,00) | 67,8 % → 66,8 % (n = 199, p = 0,73) | 0.4.31 · 29.09.2026 |
Was nicht einspart
Ohne Wiederholungen liegt die Ersparnis bei ≈ 0 %. Wir veröffentlichen es trotzdem, weil es das ist, was Sie sehen werden, wenn sich Ihr Traffic nicht wiederholt.
MT-Bench ist ein Chat mit zwei Runden mit einer frischen Schicht pro Frage: Es gibt nichts, was der Cache wiederverwenden könnte, und der Prompt erreicht fast nie das Minimum, das der Anbieter verlangt, um einen Präfix zu cachen. Bei BFCL ist jeder Tool-Aufruf anders. Was diese beiden Testreihen messen, ist, dass die Schicht nichts verschlechtert; die verbleibende Kostendifferenz ist Rauschen in der Ausgabe des Modells, nicht die Schicht.
| Testreihe | Modell | n | Gemessene Ersparnis [CI] | Einordnung | Version · Datum |
|---|---|---|---|---|---|
| BFCL | openai/gpt-4o-mini | 400 Einträge | 0,1 % [0,0 % – 0,3 %] | nicht von null unterscheidbar | 0.4.31 · 28.09.2026 |
| BFCL | openai/gpt-5.4-mini | 400 Einträge | -0,2 % [-1,0 % – 0,5 %] | nicht von null unterscheidbar | 0.4.31 · 28.09.2026 |
| BFCL | anthropic/claude-haiku-4-5 | 48 Einträge | 0,1 % [0,0 % – 0,2 %] | nicht von null unterscheidbar | 0.4.31 · 29.09.2026 |
| BFCL | anthropic/claude-sonnet-5 | 48 Einträge | 1,5 % [-1,6 % – 5,8 %] | nicht von null unterscheidbar | 0.4.31 · 29.09.2026 |
| BFCL | google/gemini-3.1-pro-preview | 97 Einträge | 4,8 % [-6,6 % – 15,6 %] | nicht von null unterscheidbar | 0.4.31 · 29.09.2026 |
| BFCL | google/gemini-3.8-flash | 324 Einträge | -10,7 % [-27,8 % – 3,2 %] | nicht von null unterscheidbar | 0.4.31 · 29.09.2026 |
| MT-Bench | openai/gpt-4o-mini | 80 Fragen | 3,3 % [0,8 % – 6,0 %] | Ersparnis · nicht der Schicht zuzuschreiben | 0.4.31 · 28.09.2026 |
| MT-Bench | openai/gpt-5.4-mini | 80 Fragen | -3,5 % [-8,6 % – 1,6 %] | nicht von null unterscheidbar · nicht der Schicht zuzuschreiben | 0.4.31 · 28.09.2026 |
| MT-Bench | openai/gpt-5.5 | 8 Fragen | 2,1 % [-4,4 % – 9,7 %] | nicht von null unterscheidbar | 0.4.31 · 29.09.2026 |
| MT-Bench | openai/gpt-5.6-sol | 13 Fragen | -0,4 % [-21,2 % – 13,5 %] | nicht von null unterscheidbar · nicht der Schicht zuzuschreiben | 0.4.31 · 29.09.2026 |
| MT-Bench | anthropic/claude-haiku-4-5 | 80 Fragen | -2,6 % [-4,6 % – -0,9 %] | Mehrkosten · nicht der Schicht zuzuschreiben | 0.4.31 · 28.09.2026 |
| MT-Bench | anthropic/claude-opus-5-5 | 18 Fragen | 1,1 % [-2,0 % – 4,9 %] | nicht von null unterscheidbar | 0.4.31 · 29.09.2026 |
| MT-Bench | anthropic/claude-sonnet-5 | 23 Fragen | 1,7 % [-8,9 % – 12,7 %] | nicht von null unterscheidbar | 0.4.31 · 28.09.2026 |
| MT-Bench | anthropic/claude-sonnet-5-5 | 37 Fragen | -0,8 % [-2,5 % – 0,9 %] | nicht von null unterscheidbar | 0.4.31 · 29.09.2026 |
Status nach Modell und Testreihe
Jede Zelle zeigt den Lauf mit der höchsten Version der Schicht. Wenn ein Modell nicht gemessen werden konnte, sagen wir, warum, statt eine Lücke zu lassen.
| Modell | GSM8K | BFCL | XSTest | MT-Bench |
|---|---|---|---|---|
openai/gpt-4o-mini | gemessen · n = 200 0.4.31 · 28.09.2026 | gemessen · n = 400 0.4.31 · 28.09.2026 | gemessen · n = 450 0.4.31 · 28.09.2026 | gemessen · n = 80 0.4.31 · 28.09.2026 |
openai/gpt-5.4-mini | gemessen · n = 176 0.4.31 · 28.09.2026 | gemessen · n = 400 0.4.31 · 28.09.2026 | gemessen · n = 441 0.4.31 · 28.09.2026 | gemessen · n = 80 0.4.31 · 28.09.2026 |
openai/gpt-5.5 | gemessen · n = 22 0.4.31 · 28.09.2026 | nicht gemessen: Ausgabenlimit erschöpft 0.4.31 · 29.09.2026 | gemessen · n = 120 0.4.31 · 29.09.2026 | gemessen · n = 8 0.4.31 · 29.09.2026 |
openai/gpt-5.6-sol | gemessen · n = 32 0.4.31 · 28.09.2026 | nicht gemessen: der Anbieter hat die Anfrage in beiden Armen abgelehnt 0.4.31 · 29.09.2026 | gemessen · n = 199 0.4.31 · 29.09.2026 | gemessen · n = 13 0.4.31 · 29.09.2026 |
anthropic/claude-haiku-4-5 | gemessen · n = 116 0.4.31 · 28.09.2026 | gemessen · n = 48 0.4.31 · 29.09.2026 | gemessen · n = 450 0.4.31 · 29.09.2026 | gemessen · n = 80 0.4.31 · 28.09.2026 |
anthropic/claude-opus-5-5 | gemessen · n = 32 0.4.31 · 28.09.2026 | nicht gemessen: Ausgabenlimit erschöpft 0.4.31 · 29.09.2026 | gemessen · n = 81 0.4.31 · 29.09.2026 | gemessen · n = 18 0.4.31 · 29.09.2026 |
anthropic/claude-sonnet-5 | gemessen · n = 62 0.4.31 · 28.09.2026 | gemessen · n = 48 0.4.31 · 29.09.2026 | gemessen · n = 264 0.4.31 · 29.09.2026 | gemessen · n = 23 0.4.31 · 28.09.2026 |
anthropic/claude-sonnet-5-5 | gemessen · n = 62 0.4.31 · 28.09.2026 | nicht gemessen: Ausgabenlimit erschöpft 0.4.31 · 29.09.2026 | gemessen · n = 311 0.4.31 · 29.09.2026 | gemessen · n = 37 0.4.31 · 29.09.2026 |
google/gemini-3.1-pro-preview | die Schicht ist fehlgeschlagen: Anfragen liefen nicht über die Schicht 0.4.31 · 28.09.2026 | gemessen · n = 97 0.4.31 · 29.09.2026 | gemessen · n = 58 0.4.31 · 29.09.2026 | nicht gemessen: Kontingent des Anbieters erschöpft 0.4.31 · 29.09.2026 |
google/gemini-3.8-flash | die Schicht ist fehlgeschlagen: Anfragen liefen nicht über die Schicht 0.4.31 · 28.09.2026 | gemessen · n = 324 0.4.31 · 29.09.2026 | gemessen · n = 450 0.4.31 · 29.09.2026 | die Schicht ist fehlgeschlagen: Anfragen liefen nicht über die Schicht 0.4.31 · 29.09.2026 |
Fehler, die der Benchmark gefunden hat
Der Benchmark ist nicht dazu da, gut auszusehen: Er ist dazu da, die Fehler zu finden, bevor Sie es tun. Er hat diese gefunden, mit der Version, in der sie auftraten, und der, die sie behebt.
Der unkalibrierte semantische Cache lieferte die Antwort einer anderen Frage 0.4.30 → 0.4.31
Bei unkalibriertem semantischem Cache konnte eine Variante mit einer anderen Zahl („three baskets“ gegenüber „two baskets“) die Antwort der ursprünglichen Frage erhalten. Gezählt über die GSM8K-Varianten.
- Gefunden in 0.4.30: 15 von 111. gsm8k.json
- Behoben in 0.4.31 (#383).
- Live verifiziert mit 0.4.31: 0 von 198.
Die Schicht kürzte den Tool-Katalog ohne jedes Signal dafür 0.4.30 → 0.4.31
In mehrteiligen Unterhaltungen sendete Arm B weniger Tools als Arm A, obwohl nichts darauf hindeutete, welche unnötig waren. Gezählt über die mehrteiligen BFCL-Unterhaltungen.
- Gefunden in 0.4.30: 20 von 20. bfcl.json
- Behoben in 0.4.31 (#382).
- Live verifiziert mit 0.4.31: 0 von 83.
Manche als Text geschriebenen Ablehnungen wurden gecacht 0.4.31 → 0.4.32
Eine Ablehnung, die das Modell als Text schreibt (ohne das Signal der API), konnte gecacht, wiederholt und als Ersparnis angerechnet werden. Gezählt in XSTest-Prompts.
- Gefunden in 0.4.31: 39 von 2.824. xstest-0431-claude.jsonxstest-0431-gama-alta.jsonxstest-0431.json
- Behoben in 0.4.32 (#393, #401).
- Wartet auf erneute Live-Messung mit 0.4.32.
Ein Gemini-Inhaltsfilter wurde als Antwort gecacht 0.4.31 → 0.4.32
Gemini kennzeichnet seinen Filter mit einem eigenen Stop-Grund, den die Schicht nicht als Ablehnung erkannte, sodass sie ihn cachen und wiederholen konnte. Gezählt in XSTest-Prompts.
- Gefunden in 0.4.31: 6 von 508. xstest-0431-gama-alta.json
- Behoben in 0.4.32 (#402).
- Wartet auf erneute Live-Messung mit 0.4.32.
Gemini lief nicht über die Schicht 0.4.31 → 0.4.32
Die Schicht sendete ein für die OpenAI-API spezifisches Feld an jeden kompatiblen Endpunkt, und Gemini lehnt es ab: Jede Anfrage in Arm B schlug fehl. Gezählt in GSM8K-Anfragen.
- Gefunden in 0.4.31: 504 von 504. gsm8k-0431-gama-alta.json
- Behoben in 0.4.32 (#402).
- Wartet auf erneute Live-Messung mit 0.4.32.
Bei Gemini 3 schlug die zweite Runde mit Tools fehl 0.4.31 → 0.4.32
Die Schicht gab die Thought-Signatur nicht zurück, die Gemini 3 bei jedem Tool-Aufruf verlangt, sodass die nächste Runde abgelehnt wurde. Gezählt in mehrteiligen BFCL-Fortsetzungen.
- Gefunden in 0.4.31: 50 von 50. bfcl-0431-gama-alta.json
- Behoben in 0.4.32 (#402).
- Wartet auf erneute Live-Messung mit 0.4.32.
Wie man es reproduziert
Der Code des Benchmarks ist noch nicht öffentlich; die Methode schon, und sie passt in fünf Schritte. Mit Ihren eigenen Anbieter-Schlüsseln können Sie ihn wiederholen und Zahl für Zahl mit unseren Berichten vergleichen.
- Der Datensatz. Laden Sie jeden öffentlichen Datensatz beim Commit aus der Tabelle oben herunter und prüfen Sie vor der Nutzung den sha256 jeder Datei. Stimmt er nicht, ist es nicht derselbe Datensatz.
- Die Schicht. Installieren Sie
@bivelio/savings-layervon npm in der Version, die der Bericht nennt, und prüfen Sie den sha256 vondist/index.js: Jeder Bericht enthält seinen. - Zwei Arme pro Prompt. A geht direkt zum Anbieter; B schickt denselben Prompt an dasselbe Modell mit demselben Ausgabelimit durch die Schicht in ihrer Standardkonfiguration. Ein Teil der Prompts wird wiederholt oder umformuliert, wie im echten Verkehr, und die Reihenfolge A/B wird ausgelost.
- Die Kosten nennt der Anbieter. Summieren Sie, was jeder Arm laut dem vom Anbieter gelieferten
usagezum veröffentlichten Preis kostet. Die Ersparnis ist1 − Kosten B / Kosten A, mit ihrem Intervall. - Die Qualität, im selben Lauf. Bewerten Sie die Antworten beider Arme gleich (exakte Antwort bei GSM8K, Tool-Aufruf bei BFCL, Ablehnung oder nicht bei XSTest, ein Richter bei MT-Bench) und vergleichen Sie sie mit dem JSON-Bericht derselben Batterie und Version.
Die Berichte
Jeder Lauf hinterlässt einen JSON-Bericht mit seinem Design, seinen Grenzen und jedem gemessenen Aufruf: usage, Kosten pro Arm und Einstufung der Antwort. Sie werden von dieser Website ausgeliefert.
Die Berichte werden so ausgeliefert, wie der Benchmark sie geschrieben hat, mit einer Ausnahme: Angaben zur Umgebung der messenden Person (Dateipfade, E-Mail-Adressen) werden entfernt. Von XSTest wird kein Antworttext veröffentlicht, nur seine Einstufung.
Messen Sie uns selbst
Eine unabhängige Messung ist mehr wert als unsere. Der Code des Benchmarks ist noch nicht öffentlich: Wenn Sie die Messung wiederholen oder die Schicht mit Ihrem eigenen Harness oder Ihrem eigenen Verkehr messen möchten, schreiben Sie uns, und wir geben Ihnen, was Sie dafür brauchen.
Schreiben Sie uns an support@bivelio.com