Offertkalkyl: mallen som räknar fram priset åt dig
Du sitter vid köksbordet halv tio på kvällen med ett badrum du varit och tittat på. Kunden vill ha priset i morgon. Du skriver en siffra som känns rätt, skickar och somnar. Tre månader senare vet du att den var 40 000 kr för låg — men du vet inte var i kalkylen felet låg.
Ett offertark löser inte allt, men det gör en sak: det tvingar fram varje antagande som en egen rad. När priset är en formel i stället för en känsla kan du felsöka det efteråt. Här är strukturen, formlerna och ett ifyllt badrumsexempel du kan kopiera rakt av.
Varför ett ark slår magkänsla
Magkänsla är komprimerad erfarenhet och den är ofta bra på arbetstid. Den är däremot systematiskt dålig på tre saker: spilltid, materialsvinn och resor. De tre posterna är trist osynliga och de varierar lite mellan jobb. Hur mycket de väger går inte att slå fast med en allmän tumregel, det måste räknas: i badrumsexemplet längre ner motsvarar resor, etablering och materialspill tillsammans knappt 5 procent av offertpriset, och restiden ytterligare drygt 4 procent. Räkna fram din egen andel ur tre avslutade jobb. Ett ark tvingar upp dem på bordet.
Den andra vinsten är spårbarhet. När jobbet är klart lägger du utfallet bredvid kalkylen och ser exakt vilken rad som sprack. Utan ark har du bara en känsla av att "det blev tungt". Med ark har du "plattsättningen tog 61 timmar mot kalkylerade 46, resten stämde". Det är skillnaden mellan att gissa och att lära sig.
Arkets sex block
Bygg arket i sex block i den här ordningen, uppifrån och ner i samma flik. Dela inte upp på många flikar — du ska kunna se hela kalkylen utan att bläddra.
- Block 1: Indata. Kundtyp (konsument eller företag), objektets byggår, adress, avstånd i mil, timpris, materialpåslag i procent, riskpåslag i procent, momssats och datum för leverantörspriserna.
- Block 2: Arbete. En rad per arbetsmoment med timmar. Aldrig en enda rad som bara heter "arbete".
- Block 3: Material. En rad per materialgrupp till inköpspris ex moms. Påslaget läggs på i summeringen, inte på raden.
- Block 4: Resor och etablering. Körningar, container, ställning, byggström, skydd, städ, parkering.
- Block 5: Summering och pris. Delsummor, riskpåslag, offertpris ex och inkl moms, arbetskostnad separat redovisad för ROT.
- Block 6: Kontroll. Täckningsbidrag i kronor, täckningsgrad i procent, täckningsbidrag per arbetstimme och materialandel.
Radstrukturen kolumn för kolumn
Åtta kolumner räcker. Kolumn F och G är de två som de flesta glömmer, och det är precis de som gör kontrollblocket möjligt.
| Kolumn | Fält | Innehåll och varför |
|---|---|---|
| A | Post | Momentets namn, till exempel "Plattsättning vägg 22 m2" |
| B | Mängd | Antal, kvadratmeter, löpmeter, timmar eller mil |
| C | Enhet | st, m2, lpm, h, mil — gör raden läsbar för nästa person |
| D | Á-pris | Timpris för arbete, inköpspris ex moms för material |
| E | Summa | Formel, aldrig en handskriven siffra |
| F | Typ | Arbete, Material eller Resa — styr alla summeringar |
| G | Timmar | Arbetstimmar bakom raden, även på materialrader där montage ingår |
| H | Antagande | Vad du förutsätter, vilken prislista och vilket datum |
Kolumn H är arkets viktigaste fält när något går fel. "Förutsätter befintlig golvbrunn, kontrollerad på plats 12 juni" är skillnaden mellan en saklig ÄTA-diskussion och ett gräl.
De fyra formlerna som ska ligga i arket
Formlerna nedan är skrivna med svenska funktionsnamn och semikolon som argumentskiljare. Använder du engelsk Excel eller Google Kalkylark heter funktionerna SUMIF och ROUND och du separerar med kommatecken.
- Radsumma: =B12*D12, kopierad ner över hela radområdet. Ingen rad får innehålla en inknappad siffra i kolumn E.
- Arbetskostnad: =SUMMA.OM($F$12:$F$80;"Arbete";$E$12:$E$80). Ger summan av alla rader du märkt som arbete — det är också den siffra du behöver redovisa separat för ROT-avdrag.
- Material med påslag: =SUMMA.OM($F$12:$F$80;"Material";$E$12:$E$80)*(1+$D$6) där D6 är påslaget i indatablocket. Skriv 0,22 för 22 procent. Genom att lägga påslaget en enda gång kan du testa hela offerten mot ett annat påslag på en sekund.
- Offertpris: =AVRUNDA((D82+D83+D84)*(1+$D$7);-3) där D82–D84 är delsummorna för arbete, material och resor och D7 är riskpåslaget. Minus tre avrundar till närmaste tusental, vilket ser ut som ett pris och inte som ett räkneexperiment.
Kontrollblocket behöver en formel till, och den är den enda du verkligen måste titta på innan du trycker skicka: täckningsbidrag per arbetstimme, =(D86-D90)/SUMMA($G$12:$G$80), där D86 är offertpriset och D90 summan av de rörliga kostnaderna (lönekostnad, material till inköpspris och faktiska resekostnader). Ligger den under ditt golv ska offerten inte skickas.
Ifyllt exempel: badrum 6 kvadratmeter
Totalrenovering av ett badrum på 6 m2 i en villa från 1978. Väggyta 22 m2, golv 6 m2. Konsument. Timpris 795 kr ex moms, materialpåslag 22 procent, riskpåslag 8 procent, lönekostnad 375 kr per betald timme.
| Post | Mängd | Á-pris | Summa | Typ |
|---|---|---|---|---|
| Rivning, skydd och bortforsling till container | 14 h | 795 kr | 11 130 kr | Arbete |
| VVS: rör, golvbrunn, montage | 22 h | 795 kr | 17 490 kr | Arbete |
| El: ny grupp, golvvärme, belysning | 10 h | 795 kr | 7 950 kr | Arbete |
| Avjämning och fall mot brunn | 8 h | 795 kr | 6 360 kr | Arbete |
| Tätskikt enligt branschregler | 12 h | 795 kr | 9 540 kr | Arbete |
| Plattsättning 28 m2 | 46 h | 795 kr | 36 570 kr | Arbete |
| Montage porslin och inredning | 10 h | 795 kr | 7 950 kr | Arbete |
| Fog, silikon, lister, slutstäd | 8 h | 795 kr | 6 360 kr | Arbete |
| Inköp, planering, dokumentation | 6 h | 795 kr | 4 770 kr | Arbete |
| Restid, 18 körningar tur och retur | 12 h | 795 kr | 9 540 kr | Arbete |
| Summa arbete | 148 h | 117 660 kr | ||
| VVS-material och rör | 1 | 9 400 kr | 9 400 kr | Material |
| Elmaterial och golvvärme | 1 | 6 200 kr | 6 200 kr | Material |
| Avjämning, primer, tätskiktssystem | 1 | 7 800 kr | 7 800 kr | Material |
| Kakel och klinker inkl 12 % spill | 31,4 m2 | 401 kr | 12 600 kr | Material |
| Fix, fog, silikon | 1 | 3 400 kr | 3 400 kr | Material |
| Porslin, blandare, kommod, dusch | 1 | 18 500 kr | 18 500 kr | Material |
| Förbrukning, skydd, blad, plast | 1 | 2 100 kr | 2 100 kr | Material |
| Material till inköpspris | 60 000 kr | |||
| Material med 22 % påslag | 73 200 kr | |||
| Resor, 18 körningar × 3 mil | 54 mil | 45 kr | 2 430 kr | Resa |
| Container och bortforsling | 1 | 4 800 kr | 4 800 kr | Resa |
| Byggström, skydd, städmaterial | 1 | 1 200 kr | 1 200 kr | Resa |
| Delsumma | 199 290 kr | |||
| Riskpåslag 8 % | 15 943 kr | |||
| Offertpris ex moms | 215 000 kr |
Offertpris inklusive moms blir 268 750 kr. Lägg märke till att restiden ligger som en egen arbetsrad: arton körningar tur och retur är tolv betalda timmar, och de ska bäras av priset. Redovisa arbetskostnaden separat i offerten — det är den som ROT-avdraget räknas på, och kunden vill se båda siffrorna. Kontrollera aktuell procentsats och takbelopp för ROT hos Skatteverket innan du räknar ut kundens nettobelopp, de har ändrats flera gånger de senaste åren.
Kontrollraderna som stoppar dåliga offerter
Nu kommer den del av arket som faktiskt tjänar pengar. Räkna fram fyra tal och sätt ett golv för vart och ett.
- Rörlig kostnad. Lön 148 h × 375 = 55 500 kr, material till inköpspris 60 000 kr, resor och container 8 430 kr. Summa 123 930 kr.
- Täckningsbidrag. 215 000 − 123 930 = 91 070 kr.
- Täckningsgrad. 91 070 / 215 000 = 42,4 procent.
- Täckningsbidrag per arbetstimme. 91 070 / 148 = 615 kr.
Ditt golv får du fram själv. Ett företag med fyra montörer, 1 400 000 kr i fasta kostnader per år och 5 000 debiterbara timmar behöver 280 kr per timme bara för att nå noll. 615 kr ligger med god marginal över. Materialandelen är 60 000 / 215 000 = 28 procent, vilket är normalt för ett badrum — ligger den över 45 procent bör du kontrollera att timmarna inte är för lågt satta.
Lägg in en villkorsstyrd formatering som färgar täckningsbidrag per timme rött under ditt golv. Det är den enklaste spärren mot offerter skrivna klockan halv tolv på kvällen.
Vanliga fel i egna kalkylark
- Material läggs in till kundpris. Då blir täckningsbidraget uppblåst med hela påslaget och du tror att du tjänar pengar du inte tjänar.
- Restid saknas som arbetstid. Arton körningar tur och retur är för ett badrum lätt tolv till femton betalda timmar. I de flesta ark ligger bara bilkostnaden inne, aldrig timmarna — i exempeltabellen ovan ligger de som en egen arbetsrad, och det är så de ska ligga.
- Timpriset används som kostnad. Timpris är intäkt. Kostnaden är lönen med sociala avgifter och semesterersättning. Blandar du ihop dem blir varje kalkyl fel åt samma håll.
- Riskpåslag läggs på materialet men inte på arbetet. Risken sitter nästan alltid i timmarna.
- Arket sparas som ny fil per offert och driver iväg. Ha en mall, lås indatablocket och spara kopior i en mapp per år.
Och det största felet av alla: arket öppnas aldrig igen efter att offerten skickats. Kalkylen är bara halva värdet. Den andra halvan är att lägga utfallet bredvid.
Från ark till offert till uppföljning
Ett ark är utmärkt för att räkna och dåligt på att hållas levande. Timmarna som faktiskt gick åt ligger i montörernas tidrapporter, materialet ligger på kvitton och leverantörsfakturor, och offerten ligger som en pdf i mejlen. Så länge de tre inte möter varandra får du aldrig veta vilken rad som sprack. Lösningen är antingen disciplin — en fast eftersnacksrutin per jobb där du fyller i utfallskolumnen — eller ett system där offert, tidrapport och material redan hänger ihop på samma jobb, så att jämförelsen finns utan extra arbete. Prova OdinTask gratis i 14 dagar om du vill se hur den kopplingen ser ut i praktiken, men bygg arket först: strukturen är viktigare än verktyget.
Vanliga frågor
Vilka kolumner behöver ett offertark ha?
Åtta kolumner räcker: post, mängd, enhet, á-pris, summa, typ, timmar och antagande. Kolumnen typ (Arbete, Material eller Resa) är det som gör att du kan summera arbetskostnaden separat för ROT och lägga materialpåslaget på rätt poster. Kolumnen timmar behövs för att kunna räkna täckningsbidrag per arbetstimme, som är det tal du faktiskt styr på. Kolumnen antagande är den som räddar dig i en diskussion om tilläggsarbete tre månader senare.
Vilka formler ska ligga i offertkalkylen?
Fyra stycken: radsumma =B12*D12 kopierad ner över alla rader, arbetskostnad =SUMMA.OM(typkolumnen;Arbete;summakolumnen), material med påslag =SUMMA.OM(typkolumnen;Material;summakolumnen)*(1+påslaget) och offertpris =AVRUNDA((arbete+material+resor)*(1+riskpåslaget);-3). Lägg dessutom in en kontrollformel för täckningsbidrag per arbetstimme: offertpriset minus rörliga kostnader delat med summan av arbetstimmarna. I engelsk Excel heter funktionerna SUMIF och ROUND och argumenten skiljs med kommatecken i stället för semikolon.
Ska material ligga till inköpspris eller kundpris i kalkylen?
Till inköpspris ex moms. Påslaget läggs på en enda gång i summeringen, inte på varje rad. Då kan du testa hela offerten mot ett annat påslag genom att ändra en cell, och framför allt blir täckningsbidraget rätt räknat. Lägger du in material till kundpris och sedan drar av samma belopp som kostnad blir täckningsbidraget uppblåst med hela påslaget, och kalkylen visar en lönsamhet som inte finns.
Hur vet jag om ett offertpris är tillräckligt högt?
Räkna täckningsbidrag per arbetstimme och jämför med ditt eget golv. Täckningsbidraget är offertpriset minus rörliga kostnader, alltså lönekostnad inklusive arbetsgivaravgifter och semesterersättning, material till inköpspris och faktiska resekostnader. Golvet är dina fasta kostnader per år delat med antalet debiterbara timmar per år. Ett företag med 1 400 000 kr i fasta kostnader och 5 000 debiterbara timmar behöver 280 kr per timme bara för att nå noll.
Allt-i-ett för ditt fältserviceföretag
Bokning, offert med ROT, schema, offline-app, tidrapport och fakturering – i ditt eget varumärke.
Testa OdinTask gratis