# Director: Stückkosten Produktion (Balancing) ## Modell - **`falukant_user.certificate`** begrenzt nur, **welche** Produkte wählbar sind (`ftp.category <= certificate` in `QUERY_GET_BEST_PRODUCTION`). Es gibt **keine** höheren Stückkosten nur wegen eines höheren Zertifikats. - Die **Stückkosten** hängen von der **Produktklasse** (`falukant_type.product.category`) und einer **Basis** ab; optional **Headroom-Rabatt**, wenn das Zertifikat über der Klasse des produzierten Guts liegt. ## Formel (Rust, `DirectorWorker`) ``` raw = PRODUCTION_COST_BASE + product_category × PRODUCTION_COST_PER_PRODUCT_CATEGORY headroom = max(0, certificate − product_category) discount = min(headroom × PRODUCTION_HEADROOM_DISCOUNT_PER_STEP, PRODUCTION_HEADROOM_DISCOUNT_CAP) effektiv = raw × (1 − discount) ``` | Konstante | Standard | Bedeutung | |-----------|----------|-----------| | `PRODUCTION_COST_BASE` | `6.0` | fixer Basisanteil pro Stück | | `PRODUCTION_COST_PER_PRODUCT_CATEGORY` | `1.0` | Material / Komplexität je Produktklasse | | `PRODUCTION_HEADROOM_DISCOUNT_PER_STEP` | `0.035` | Rabatt pro Headroom-Stufe | | `PRODUCTION_HEADROOM_DISCOUNT_CAP` | `0.14` | maximaler Gesamtrabatt | ## Worth in SQL `QUERY_GET_BEST_PRODUCTION` sortiert nach einer Worth-Zeile (u. a. `- 6 * ftp.category`). Bei größeren Formeländerungen Worth **mit** anpassen, damit der Director weiterhin sinnvoll sortiert. ## Parallelproduktionen `MAX_PARALLEL_PRODUCTIONS` (aktuell 2) bestimmt, wie viele Linien pro Tick Geld binden — unabhängig von der Stückkostenformel.