Schnell kalkulieren mit dem Estimator
Der Estimator in Keyline wurde entwickelt, um Kalkulationen nicht nur zuverlässig, sondern auch besonders einfach und schnell durchzuführen. Herzstück dabei ist das flexible Formelmodell, das durch den Einsatz von Look-up-Tabellen optimal ergänzt wird.
Mit diesen Tabellen lassen sich komplexe Preislogiken sauber abbilden – z. B. durch mehrdimensionale Preismatrizen, in denen mehrere Einflussfaktoren gleichzeitig berücksichtigt werden.
Beispiel:
Erstellst Du eine Look-up-Tabelle mit drei Dimensionen, kannst Du auf einen Blick verschiedene Kombinationen von Parametern wie Format, Auflage und Farbigkeit abbilden – und daraus automatisch den richtigen Preis für eine Komponente berechnen lassen.
So bleibt die Kalkulation übersichtlich, konsistent und jederzeit nachvollziehbar – ganz gleich, ob für Standardprodukte oder individuelle Sonderanfertigungen.
Struktur & Aufbau des Estimators
Ein Estimator besteht aus einer oder mehreren Preiskomponenten, die gemeinsam die Gesamtkalkulation abbilden. Dabei bist Du vollkommen flexibel in der Gestaltung:
🔹 Beliebig viele Preiskomponenten
Jeder Estimator kann so viele Preiskomponenten enthalten, wie für Dein Produkt oder Deinen Prozess notwendig sind – vom Druck über Weiterverarbeitung bis hin zu Versand oder Sonderkosten.
🔹 Variable oder fixe Kosten
Für jede einzelne Komponente kannst Du festlegen, ob es sich um variable Kosten (z. B. abhängig von Auflage oder Format) oder Fixkosten (z. B. Rüstkosten oder Einrichtung) handelt.
🔹 Beschreibung für bessere Nachvollziehbarkeit
Um die Kalkulation transparent und nachvollziehbar zu gestalten, kannst Du beliebig viele Preiskomponenten hinzufügen – und jeder Komponente eine eigene Beschreibung zuweisen. So ist direkt ersichtlich, welche Logik oder welcher Zweck hinter der jeweiligen Berechnung steht – besonders hilfreich bei komplexen Modellen oder für die spätere Pflege. Gleichzeitig bleiben die Formeln kompakt und gut verständlich.
Jede Preiskomponente verfügt über dieselben vier Formelfelder:
Formel für interne Kosten
Formel für externe Kosten
Formel für Arbeitskosten
Formel für Materialkosten
Diese Aufteilung sorgt für eine klare Struktur: In der Kalkulationsansicht werden die jeweiligen Kostenarten separat und übersichtlich dargestellt – das erleichtert die Nachvollziehbarkeit und sorgt für maximale Transparenz.
Für jede Preiskomponente lassen sich eigene Variablen definieren, die in der Eingabemaske individuell abgefragt werden. Dabei kann es sich z. B. um Fließkommazahlen, Texteingaben oder Ja/Nein-Werte (Boolean) handeln.
Jede Variable hat auch einen "technischen Namen" der Pfad im Input-JSON
.
Damit kannst du dann über die API die Werte definieren.
Die URL für die API und dein Token findest du direkt unter API-Zugriff.
https://www.keyline.app/estimations/api/v1/estimations
Jeder Estimator kann entweder privat oder öffentlich eingestellt werden. Diese Einstellung beeinflusst den Response, den Du über die API erhältst:
Bei privaten Estimators werden detaillierte Berechnungsgrundlagen und Zwischenergebnisse zurückgegeben.
Bei öffentlichen Estimators erhältst Du lediglich den final berechneten Preis – ideal für die Kommunikation mit externen Systemen oder Kunden.
Zudem kannst Du auch Hilfsvariablen definieren, die auf zuvor berechneten Werten basieren.
Beispielsweise kann es sinnvoll sein, zunächst den Materialbedarf in Quadratmetern zu ermitteln, um darauf aufbauend mit Zuschlägen oder weiteren Faktoren weiterzurechnen.
Wenn Du in der Eingabemaske ein Dropdown anzeigen möchtest, kannst Du die Variable mit einer Lookup-Tabelle verknüpfen. So können vordefinierte Werte bequem ausgewählt werden – ideal für standardisierte Optionen oder häufig verwendete Parameter.
Achte darauf, dass der Datentyp der Variable auf Text gesetzt ist.
Nur so wird Dir automatisch ein Dropdown mit allen verfügbaren Werten aus der verknüpften Lookup-Tabelle angezeigt.
📊 LookupTables
LookupTables sind einfache Excel-Tabellen, die als Grundlage für Berechnungen in der Kalkulation dienen. Sie können eine, zwei oder maximal drei Dimensionen enthalten – also:
Spalten (z. B. Formate)
Zeilen (z. B. Auflagenhöhen)
Sheets (z. B. unterschiedliche Maschinen oder Materialarten)
Um die Übersicht zu behalten, empfehlen wir, mit maximal drei Dimensionen zu arbeiten.
Die Struktur dieser LookupTables wird bereits bei der Erstellung im System definiert und bildet die Basis für die spätere Formelverknüpfung im Estimator.
Ganz unten in diesem Artikel findest Du ein Beispiel einer LookupTable, das Dir beim Aufbau und der Struktur hilft.
Nach dem erfolgreichen Upload kannst Du:
gezielt Werte aus der Tabelle suchen
die gesamte Tabelle als Excel-Datei herunterladen
oder die Daten direkt im System bearbeiten
So hast Du jederzeit die volle Kontrolle über Deine Preismatrix – ganz ohne zusätzliche Tools.
📈 Interpolation zwischen Werten
Du hast auch die Möglichkeit, zwischen zwei definierten Werten zu interpolieren.
Beispiel:
Wenn Du Auflagen für 200, 300 und 500 in Deiner LookupTable hinterlegt hast, und eine Kalkulation mit 350 erfolgt, berechnet das System automatisch den passenden Mittelwert zwischen 300 und 500.
👉 So erhältst Du auch für nicht explizit hinterlegte Werte einen realistischen, dynamisch berechneten Preis – ganz ohne zusätzliche Formeln.
⚠️ Wichtiger Hinweis zur Interpolation
Bitte beachte: Pro LookupTable ist nur eine Interpolation möglich.
Das bedeutet, dass nicht gleichzeitig über mehrere Achsen – z. B. X- und Y-Achse in einer mehrdimensionalen Tabelle – interpoliert werden kann.
✅ Interpolation funktioniert ausschließlich eindimensional, zum Beispiel über eine einzelne Mengenstaffel wie Auflagenhöhen.
🔢 Allgemeine Funktionen
In der Preiskomponente könntest Du die Formel dann z. B. so hinterlegen:
(LOOKUP("DEINE-LookUp-Table_ID", Auflage, Seitenzahl, Maschinentyp)*100)*Auflage
Falls ein Standardwert aus der Lookup-Tabelle zurückkommen soll, wenn in der Tabelle der Wert z.B. nicht existieren sollte, dann kannst Du auch damit arbeiten:
(LOOKUP_WITH_DEFAULT("DEINE-LookUp-Table_ID", 1000, Auflage, Seitenzahl, Maschinentyp)*100)*Auflage
Hier würde dann der Wert 1000 zurückkommen, wenn kein Wert für die eingegebenen Parameter in der Lookup-Tabelle gefunden werden konnte. Anstelle von 1000 kann natürlich auch eine komplexere Berechnung oder eine andere Formel hinterlegt werden.
Grundsätzlich sind viele Funktionen und Variablen möglich, wie z. B.:
if
, not
, min
, max
, sum
, and round
Folgende grundlegende mathematische Funktionen sind möglich:
<
, >
, <=
, >=
, <>
, !=
, =
,
IF
, AND
, OR
, XOR
, NOT
, SWITCH, MIN
, MAX
, SUM
, AVG
, COUNT
, ROUND
, ROUNDDOWN
, ROUNDUP
, ABS
, INTERCEPT
Hier findest du einige gängige Beispiele:
Minimale oder maximale Werte ausgeben:
Max(10,9,8,7)
=> 10
Min(10,9,8,7)
=> 7
Beispiele für Runden könnten sein:
Round(8.3)
=> 8
Round(8.5463,2)
=> 8.55
(der zweite Wert bestimmt die Dezimalstelle, auf die gerundet werden soll
Rounddown(55.55)
=> 55
Roundup(55.55)
=> 56
Round(Seitenanzahl/2)*2
=> kann hilfreich sein um sicher zu sein immer mit einer geraden Zahl zu rechnen
Eine Rangeswitch
-Funktion könnte so aussehen:
RANGESWITCH(Seitenanzahl,1,64,64,65,128,128,129,240,240,241,300,300,11111)
Wenn die Seitenzahl 1
bis 64
beträgt, wird der Wert 64
zurückgegeben, bei 65
bis 128
der Wert 128
, usw.
Eine Switch
-Funktion fragt einen bestimmten Wert ab und arbeitet nicht mit einer range
:
SWITCH(Seitenanzahl,8,80,16,160,200,2000,11111)
Sollte hier also die Seitenanzahl 8
sein, bekomme ich den Wert 80
zurück, bei einer Seitenanzahl von 200
den Wert 2000
. Sollte kein Wert zugeordnet werden können ist dann der alternative Wert, der dann immer zurückkommt 11111
Alternativ kannst Du natürlich auch eine verschachtelte wenn/dann funktion einsetzen:
IF(placeholder_with_twenty<=5, 1, IF(placeholder_with_twenty<=10, 2, IF(placeholder_with_twenty<=15, 3, IF(placeholder_with_twenty<=20, 4, 5))))
=> 4
placeholder_with_twenty
ist als Variable mit dem Standardwert 20 eingesetzt. Damit lassen sich Formeln übrigens sehr gut und übersichtlich testen.
Oder auch nur eine sehr einfache if-Funktion
:
if(128>64,1,0)
=> 1
Natürlich kann auch ein Boolean
mit true/false
integriert werden:
if(Nachdruck= true and Werkzeugkosten="mittel",4,5)
=> 4
Alternativ kannst Du auch mit z.B. AND
arbeiten:
IF(AND(328>64, 328<=265), 1, 2)
=> 2
Hier ist der Input 328 - sollte der Input größer als 64
sein UND kleiner als 265
, dann bekommst Du 2
zurück.
Mit CONCAT
kannst Du dir einen String bauen, der sich auch mehreren Werten zusammenstellt:
CONCAT(Produktbreite, "x", Produkthöhe)
=> "210x297"
Du kannst auch auf eine Berechnung von einer anderen Preiskomponente zurückgreifen:
URL der Preiskomponente findest du in der URL.
PREVIOUS_RESULT('Deine-Pricecomponent-ID', 'internal_costs')
Es kann auch total_costs
, external_costs
, labor_costs
und material_costs
definiert werden.
Formeln können auch kommentiert werden. Das kann hilfreich sein um zu erklären, was in der Berechnung eigentlich passiert:
/*
Dies ist ein mehrzeiliger oder auch nur einzeiliger Kommentar
*/
SWITCH(Seitenanzahl,8,80,16,160,/* hier kann man auch Infos in eine Formel schreiben */ 200,2000,11111)
Theoretisch kann man Kommentierungen auch direkt in eine Formel eintragen. Das kann hilfreich sein, wenn man einzelne Werte später noch mal überprüfen will, oder man ist sich noch nicht ganz sicher, ob die Werte oder Berechnung an dieser Position stimmen.
Viele Funktionen werden noch hinzukommen.
Zum Beispiel ist auch eine Autovervollständigung geplant und vieler mehr.
Wenn du Fragen zum Estimator hast, dann spreche uns gerne an.
Hier findest du noch die Beispiel-Excel für einen Lookuptabel in 3 Dimensionen.