Verktyget är internt. Logga in med ditt jobbkonto för att komma vidare.
| Post | Kostnad | Påslag | Utpris |
|---|
| Nivå | kr/m | Hast.faktor |
|---|
Hämtar …
Kalkylen går alltid samma väg: geometrin bestämmer hur lång banan blir, banlängden bestämmer tiden och materialåtgången, och först därefter läggs påslaget på — post för post. Varje siffra i appen går att följa tillbaka hit.
Stansen sitter i pressen. Etikettens mått, antalet spår och stigningen är därför egenskaper hos verktyget, inte något kalkylen räknar fram ur önskade mått. Det går inte heller att vända stansen — läget i banan är givet. All geometri läses alltså rakt av ur stansregistret.
Etikettbredd = stansens mått tvärs banan [mm] Etiketthöjd = stansens mått i banriktningen [mm] S = stansens antal spår P = stansens stigning [mm] Gap = P − Etiketthöjd (följer av stansen) Snitt = S − 1
Vill du ha ett annat format väljer du en annan stans — eller beställer en ny. Appen jämför automatiskt med de övriga stansar som är godkända för maskinen och visar i ett eget kort om någon av dem ger ett lägre pris för samma antal etiketter.
Varje stans är gjord för en viss banbredd. Är materialet smalare går jobbet inte att köra alls; är det bredare fungerar det, men den överskjutande remsan blir obetryckt spill som ändå betalas.
Banbredd < stansens banbredd → fel, jobbet går inte Banbredd > stansens banbredd → varning, mellanskillnaden är spill Banbredd > maskinens maxbredd → fel, materialet går inte in
En stans gäller som standard för båda maskinerna. Under fliken Stansar kan enskilda stansar kryssas ur för en viss maskin — då försvinner de ur valet när den maskinen är vald.
Banlängden räknas inte ur antalet etiketter rakt av, utan ur hur många färdiga rullar maskinen måste producera. En rulle kan bara tas av hel, och med differentialaxel kommer alla spårens rullar av samtidigt — en tre-spårig stans levererar alltså tre rullar per avtagning, vare sig du beställt tre eller inte.
Beställda rullar = TAK(Antal etiketter / Etiketter per rulle) Rullar av samtidigt = Differentialaxel ? S : 1 Avtagningar = TAK(Beställda rullar / Rullar av samtidigt) Rullar ut ur maskin = Avtagningar × Rullar av samtidigt Faktiskt tryckt antal = Rullar ut ur maskin × Etiketter per rulle
Blir Rullar ut fler än Beställda rullar är mellanskillnaden överproduktion — den trycks, den kostar, och appen varnar för den. Beställer du 10 rullar på en 3-spårig stans krävs 4 avtagningar, alltså 12 rullar.
Makulaturen är inkörningskassationen och läggs på som en fast sträcka. Materialspillet är däremot en procentsats ovanpå allt.
Meter per färdigrulle = Etiketter per rulle × P / 1000 [m] Tryckt bana = Avtagningar × Meter per färdigrulle [m] L = Tryckt bana + Makulatur [m] Förbrukad meter = L × (1 + Spill/100) [m] Tryckt yta = Tryckt bana × S × Etikettbredd / 1000 [m²] Materialrullar in = TAK(Förbrukad meter / Rullängd) Restbit = Materialrullar × Rullängd − Förbrukad meter [m]
L är den sträcka som passerar pressen och är basen för både körtiden, substratet och bildkostnaden. Tryckt yta används numera bara till lacken: makulaturen lackas inte, och kantremsan i sidled får ingen lack heller.
Fyra block och tre timpriser. A görs vid en dator och debiteras det manuella timpriset. B och C binder upp pressen och debiteras dess produktionstimpris. D sker i stansmaskinen efter trycket och debiteras dess timpris — knivinställningen hör dit, inte till pressens ställtid.
A Prepress = (Prepresstid + (Versioner − 1) × Tillägg) / 60 × Timpris manuellt
B Ställ = (Ställtid + (Versioner − 1) × Tillägg) / 60 × Timpris pressen
C Körning = L / v_eff / 60 × Timpris pressen
D Stans = (Ställ + Injustering
+ Snitt × Tid per snitt
+ L / Stansens körhastighet
+ Inkommande rullar × Rullbyte
+ Avtagningar × Tid per avtagning) / 60 × Timpris stansen
v_eff = Körhastighet × OEE/100 × Hastighetsfaktor för färgtäckningen
Stansens hastighet är nominell — ingen OEE, till skillnad från pressens. Hela banan
passerar stansen, makulaturen inräknad.
Prepress- och ställtiderna har separata värden för ny order och repeat. Hastighetsfaktorn
är 1 för allt utom opakt vitt, som sänker farten — därför blir vitt dyrt två gånger om,
både i kr/m och i maskintid. En maskin med fast klickpris har ingen täckningsnivå att
hämta faktorn ur och kör alltid full fart.
Substrat, löpande meter = Förbrukad meter × (Rullpris / Rullängd) Substrat, hela rullar = Materialrullar × Rullpris Bild = L × kr/m (Klick på Konica, Bläck på Epson) Lack = Tryckt yta × kr/m² för matt eller blank (0 om ingen lack)
Löpande meter är standardläget och förutsätter att restbiten går tillbaka till lagret. Hela rullar används när restbiten inte kommer till användning — skillnaden kan vara stor på specialmaterial.
Bildkostnaden räknas per löpmeter bana i båda pressarna, men kronorna kommer till på olika sätt. Konican har ett fast klickpris: täckningen spelar ingen roll, en helyta och en textetikett kostar lika mycket per meter. Epson trappas efter färgtäckning i sju steg:
| Färgtäckning | Typiskt jobb | kr/m |
|---|---|---|
| Mycket låg | nästan bara vitt papper | 1,00 |
| Låg | text och logotyp | 2,00 |
| Medel | snittet om man slår alla jobb över ett år | 3,00 |
| Hög | mycket svart | 4,00 |
| Mycket hög | helyta i mörka färger | 5,00 |
| Färg + vitt, mellan | opakt vitt under trycket | 6,00 |
| Färg + vitt, hög | opakt vitt under hög täckning | 7,00 |
Inom en nivå kostar metern lika mycket oavsett vad som står på etiketten. Kostnaden går på hela banan inklusive makulaturen — pressen räknar meter som passerat, inte meter som blev sålda. Nivån väljs per order i kalkylen; kronorna hör till maskinens avtal och sätts i maskinprofilen under Inställningar, där Konican i stället har ett enda fast klickpris.
Lacken räknas på etikettytan, inte på banmetern. Bildkostnaden gör tvärtom: den bryr sig inte om hur banan utnyttjas, så den obetryckta kantremsan i sidled kostar full peng. Därför lönar sig ett fullt utnyttjat spårantal dubbelt upp.
Varje material har egna kryssrutor för maskinerna, precis som stansarna. Ett material gäller båda maskinerna om inget annat anges; kryssas det ur för en maskin försvinner det ur materialvalet när den maskinen är vald, och det räknas inte heller med när appen letar efter en billigare bredd.
Verktyg = Nytt stansverktyg ? Verktygspris : 0
Hela verktygskostnaden läggs på den första ordern. Det gör förstagångsjobbet dyrt och repeatordern billig — i räkneexemplet nedan är skillnaden nästan dubbla styckpriset.
Varje kostnadspost bär sin egen påslagsprocent. Påslaget redovisas i kronor på samma rad som kostnaden, så att procenten går att bedöma mot ett belopp.
Påslag per post = Kostnad × postens påslagsprocent / 100 Utpris per post = Kostnad + Påslag Självkostnad = Σ alla kostnader Utpris = Σ alla utpriser Utpris = MAX(Utpris, Minimidebitering)
Summeringsraderna Tid och Material har ingen egen procent. De visar den sammanvägda procenten, alltså vad posterna faktiskt gav tillsammans:
Vägd procent = Summa påslag / Summa kostnad
Det gör att du kan sätta 10 % på ställtiden och 60 % på körningen och ändå se var tidsblocket landar som helhet.
| Nyckeltal | Formel |
|---|---|
| Pris per etikett | Utpris / Antal etiketter |
| Pris per 1 000 | Pris per etikett × 1000 |
| Täckningsbidrag | Utpris − Självkostnad |
| Täckningsgrad | TB / Utpris |
| Materialutnyttjande | S × Etikettbredd / Banbredd |
| Kapacitet | v_eff × 60 × 1000 × S / Petiketter per timme |
50 000 etiketter med stansen Standard 100 × 50, 3-up, semigloss 330 mm × 1 000 m à 1 485 kr, ny order, en version, 5 000 per rulle, nytt stansverktyg à 4 500 kr. Körs på Konica AL 230 med klickpriset 2,50 kr/m.
S = stansens spår = 3 spår P = stansens stigning = 53 mm Beställda rullar = TAK(50 000 / 5 000) = 10 rullar Avtagningar = TAK(10 / 3) = 4 st Rullar ut ur maskin = 4 × 3 = 12 rullar ← 2 extra Faktiskt tryckt = 12 × 5 000 = 60 000 et ← +20 % Meter per färdigrulle = 5 000 × 53 / 1000 = 265 m Tryckt bana = 4 × 265 = 1 060 m L = 1 060 + 40 = 1 100 m Förbrukad meter = 1 100 × 1,03 = 1 133 m v_eff = 20 × 0,80 × 1,0 = 16 m/min
Överproduktionen är själva poängen med att räkna på rullar och inte på etiketter: tio beställda rullar går inte att ta ut ur en tre-spårig stans utan att tolv blir tryckta. Appen varnar, och de två extra rullarna bärs av ordern.
| Post | Kostnad | Påslag | Utpris |
|---|---|---|---|
| A Prepress50 min × 700 kr/h | 583 kr | 233 kr+40 % | 817 kr |
| B Ställ45 min × 1 750 kr/h | 1 313 kr | 525 kr+40 % | 1 837 kr |
| C Körning1 100 / 16 = 69 min × 1 750 kr/h | 2 005 kr | 802 kr+40 % | 2 807 kr |
| D Stans20 + 20 ställ + 2 snitt × 3 + 1 100 / 30 + 2 rullbyten × 5 + 4 avtagningar × 5 = 113 min × 500 kr/h | 939 kr | 376 kr+40 % | 1 314 kr |
| Tid | 4 840 kr | 1 936 kr40,0 % vägt | 6 776 kr |
| Substrat1 133 m × 1,485 kr/m | 1 683 kr | 337 kr+20 % | 2 019 kr |
| Klick1 100 m × 2,50 kr/m, fast taxa | 2 750 kr | 550 kr+20 % | 3 300 kr |
| Bobiner12 färdiga rullar × 7 kr | 84 kr | 17 kr+20 % | 101 kr |
| Material | 4 517 kr | 903 kr20,0 % vägt | 5 420 kr |
| Verktygnytt stansverktyg | 4 500 kr | 675 kr+15 % | 5 175 kr |
| Totalt | 13 856 kr | 3 514 kr25,4 % vägt | 17 371 kr |
Bläck = L × kr/m för vald färgtäckning, och
den lägre körhastigheten gör körtiden till den tunga posten i stället för verktyget.
Restbit < varningsgränsen och materialet debiteras per
löpmeter. Kommer restbiten inte till användning bör hela rullen belasta ordern.B / (B + C) > 50 %. Ordern är då för liten i förhållande
till riggen, och priset styrs av förberedelserna snarare än av upplagan.Pris-API:t räknar vad ett etikettjobb kostar med exakt samma kod och samma satser som kalkylen på den här sidan. Ett svar härifrån och ett pris i appen kan inte skilja sig åt.
Funktionen är satt till invoker: "private". Google Cloud gör
behörighetskontrollen innan anropet når koden — funktionen innehåller noll rader
säkerhetskod. Sätt den aldrig till public: då kan vem som helst
fråga vad jobben kostar och räkna baklänges till marginalerna.
Ge varje anropande system ett eget tjänstekonto, inte projektets standardkonto. Ger man rollen till standardkontot får varje VM och varje Cloud Run-tjänst i projektet rätt att fråga, behörigheten går inte att dra in för ett system i taget, och loggen visar inte vem som frågade.
gcloud iam service-accounts create prisapi-erp \ --display-name="Pris-API: affärssystemet" gcloud functions add-invoker-policy-binding prisApi \ --region=europe-west1 \ --member="serviceAccount:prisapi-erp@tbprint-etikettkalkyl.iam.gserviceaccount.com"
Anroparen hämtar sin token från metadataservern och skickar den som Authorization: Bearer <token>:
curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/identity?audience=FUNKTIONS_URL" \
-H "Metadata-Flavor: Google"
audience måste vara exakt den URL man postar till, samma sträng inklusive protokoll. Stämmer den inte svarar tjänsten 403 utan att förklara varför. Det är det vanligaste felet vid uppsättningen.
Kommer anropet från Cloud Scheduler, Pub/Sub push eller Eventarc konfigurerar man
i stället oidcToken med samma tjänstekonto och samma audience — de
bifogar token åt en.
Anropet måste gå från serversidan. cors är avstängt, och en
webbläsarflik kör som användaren, inte som ett tjänstekonto. Ett internt
system med webbgränssnitt frågar alltså via sin backend.
Använd workload identity federation. AWS-appens egen IAM-roll växlas in mot ett Google-token, och Google fortsätter göra behörighetskontrollen. Ingen nyckelfil behövs — konfigurationsfilen nedan innehåller ingen hemlighet, bara adresser. Det är den väg som ska väljas före ett eget relä.
Ett tjänstekonto för systemet, precis som för de interna:
gcloud iam service-accounts create prisapi-extern-erp \ --display-name="Pris-API: affärssystemet i AWS" gcloud functions add-invoker-policy-binding prisApi \ --region=europe-west1 \ --member="serviceAccount:prisapi-extern-erp@tbprint-etikettkalkyl.iam.gserviceaccount.com"
En pool och en AWS-leverantör, låst till det AWS-konto som får fråga:
gcloud iam workload-identity-pools create extern \ --location=global --display-name="Externa system" gcloud iam workload-identity-pools providers create-aws aws-erp \ --location=global --workload-identity-pool=extern \ --account-id=AWS_KONTO_ID
Låt bara den AWS-roll appen faktiskt kör som få låna tjänstekontot. Bind mot rollen, inte mot hela kontot — annars räcker det att vilken funktion som helst i AWS-kontot kompromissas.
gcloud iam service-accounts add-iam-policy-binding \ prisapi-extern-erp@tbprint-etikettkalkyl.iam.gserviceaccount.com \ --role=roles/iam.workloadIdentityUser \ --member="principalSet://iam.googleapis.com/projects/PROJEKTNUMMER/locations/global/\ workloadIdentityPools/extern/attribute.aws_role/arn:aws:sts::AWS_KONTO_ID:assumed-role/ROLLNAMN"
Skapa konfigurationsfilen och lägg den hos appen:
gcloud iam workload-identity-pools create-cred-config \ projects/PROJEKTNUMMER/locations/global/workloadIdentityPools/extern/providers/aws-erp \ --service-account=prisapi-extern-erp@tbprint-etikettkalkyl.iam.gserviceaccount.com \ --aws --output-file=gcp-cred.json
Sätt GOOGLE_APPLICATION_CREDENTIALS=gcp-cred.json. Biblioteket sköter
hela kedjan — AWS-signatur, federerat token, tjänstekontot, ID-token:
const { GoogleAuth } = require("google-auth-library");
const adress = "https://europe-west1-tbprint-etikettkalkyl.cloudfunctions.net/prisApi";
const klient = await new GoogleAuth().getIdTokenClient(adress);
const svar = await klient.request({ url: adress, method: "POST", data: fraga });
Det ska vara ett ID-token, inte ett access-token. Cloud Run tar bara emot
ID-token, och getIdTokenClient ger rätt sort. Konfigurationsfilen måste
därför peka ut tjänstekontot — utan den delen kan biblioteket inte ge något ID-token
alls.
En tjänst som bara erbjuder en URL-ruta och kanske en header — en webhook ur ett affärssystem, Zapier, en e-handelsplattform — kan inte signera ett Google-token. Då byggs ett litet relä i Google Cloud som tar emot anropet, verifierar en delad hemlighet eller HMAC-signatur och frågar vidare med sitt eget tjänstekonto. Gör aldrig funktionen publik i stället.
Ett relä ska smalna av svaret, inte skicka det vidare som det är. Det interna
svaret bär sjalvkostnad_kr, poster före påslag och
paslagna. Ingen utanför huset ska se det. Skicka
pris_kr, pris_per_etikett_kr, uppslag,
fel och varningar — resten stannar.
uppslag. Där står vilken stans och vilket material
API:t faktiskt räknade på. En felaktig uppslagning syns bara där — priset i sig ser
lika rimligt ut.fel-lista betyder att priset inte går att lita på,
även om det finns ett tal i pris_kr.satser_version följer med varje svar. Ändras timpriser eller
påslag höjs räknaren, och samma fråga ger ett annat pris. Ska ett lämnat pris vara
bindande måste svaret sparas tillsammans med sin version.maskin räknas båda pressarna och den billigaste
returneras; jamforelse visar båda.Fråga om material och lim, val mellan maskinerna, stansning och avgitring, eller om den kalkyl du har uppe just nu.
Med Skicka med kalkylen påslaget följer vald maskin, stans, material och pris med frågan — annars svarar jag allmänt.
Andra agenter — iBrain, Gemini Enterprise — kan fråga Etikettexperten om pris, material, stansar och lager. Det är samma expert som svarar i AI-fliken, samma kalkyl och samma register; bara vägen in är en annan.
Testlabb. Påslagen följer jobbets totala banlängd: korta serier bär mer, långa mindre. Kalkylen påverkas inte, och ingenting sparas.
Under min-gränsen gäller topppåslaget rakt av, över max-gränsen det lägsta. Däremellan glider det linjärt.
Två reglage i stället för tjugofyra rutor. Baspåslagen sätts i Inställningar → Påslag per post — inte här. Två ställen att sätta samma påslag på blir förr eller senare två olika sanningar. Behöver en enskild post avvika, skriv över den i tabellen; den märks då med en prick och följer inte längre reglagen. Töm rutan för att lämna tillbaka posten till reglagen.
| Post | Självkostnad | Vid min | Bas | Vid max | Nu |
|---|
Poster utan kostnad i det här jobbet är nedtonade. Baskolumnen är låst och speglar husets satser i Inställningar — ändrar du ett baspåslag där slår det igenom här vid nästa ritning. En enskild orders avvikelse räknas inte in; labbet prövar husets modell, inte ett jobb någon redan rabatterat.
Vad en etikett kostar kunden vid olika banlängder, med det här jobbets kostnader. Det enda som rör sig är påslaget.
Samma x-axel. Vägt snitt över alla poster, i procent av självkostnaden.
| Banlängd | Zon | Vägt påslag | Styckepris | Utpris | Mot idag |
|---|
Välj om du vill läsa in mått och form automatiskt från en stansritning (PDF) eller registrera stansen manuellt.