Studia przypadków
IT

20 programistów, stawka godzinowa i zero pojęcia, ile naprawdę zarabiał projekt

Oleksiy Bazyura
Oleksiy Bazyura
Financial Expert at Finmap

"Znałam stawkę godzinową każdego programisty. Znałam stawkę kontraktową klienta. Odejmowałam jedną od drugiej i myślałam, że znam marżę. Potem zbudowałam rachunek zysków i strat dla każdego projektu z osobna i zrozumiałam, że przez cztery lata prowadziłam firmę na podstawie fikcji."

Założycielka firmy IT świadczącej usługi i outstaffing — 20 programistów, 36 mln ₴ przychodu rocznie, siedmiu aktywnych klientów — opowiedziała o ćwiczeniu, które zmieniło sposób, w jaki wycenia pracę i zatrudnia ludzi.

Przez cztery lata prowadziła firmę tak, jak robi to cała branża: licząc na podstawie stawek godzinowych. Każdy programista miał swoją stawkę kosztową (średnio 550 ₴/godz.). Każdy klient miał stawkę kontraktową (średnio 950 ₴/godz.). Proste odejmowanie dawało 400 ₴/godz. marży brutto na programistę, czyli około 42% marży. Przełożone na cały zespół, wyglądało to komfortowo: firma była rentowna i rosła.

Potem zrobiła to ćwiczenie. Wzięła jeden projekt. Nie liczbę typu "wystawiliśmy klientowi fakturę na X ₴ za godzinę", tylko prawdziwy P&L tego projektu. Przychód od klienta za miesiąc. Wszystkie koszty bezpośrednio przypisane do tego projektu. Wszystkie koszty przypisane pośrednio. To, co zostało.

Marża projektu u jej głównego klienta w ciągu ostatnich 12 miesięcy: 14%. Nie 42%.

Dwadzieścia osiem punktów marży zniknęło w kosztach, których matematyka stawki godzinowej w ogóle nie uwzględniała.

Co tak naprawdę ukrywa matematyka stawki godzinowej

Stawka godzinowa zakłada, że programista jest w 100% wykorzystany na projekcie, w 100% produktywny przez ten czas, a projekt pochłania wyłącznie jego pracę. W żadnym prawdziwym biznesie usługowym żadne z tych założeń się nie sprawdza. Where the 28 points went — vector waterfall. Left: HOURLY MATH MARGIN 42%. Six drops: BENCH & RAMP-DOWN −5pt, PTO & SICK LEAVE −4pt, INTERNAL MEETINGS & PROCESS −6pt, TOOLS & LICENSES −2pt, RECRUITER & MANAGEMENT OVERHEAD −7pt, DISCOUNT & OVERTIME UNBILLED −4pt. Right: REAL PROJECT MARGIN 14%. Brand teal accent on management overhead drop (largest). Bench i przestój między projektami (−5 punktów). Gdy projekt się kończy albo klient robi przerwę, programista jest bez pracy, ale nadal opłacany. Średnio dwa tygodnie w roku na programistę. Niefakturowalne. Odejmowane od marży.

Urlopy i zwolnienia lekarskie (−4 punkty). Programiści na etacie mają płatny urlop i zwolnienia. Stawka kontraktowa jest fakturowana tylko za faktycznie przepracowany czas. Ta różnica jest niewidoczna, dopóki jej nie policzysz.

Wewnętrzne spotkania, procesy, rozmowy rekrutacyjne (−6 punktów). Standupy, retrospektywy, planowanie, rozmowy z kandydatami, wewnętrzne synchronizacje. Wszystko opłacane, nic niefakturowalne dla klienta. Średnio 4–6 godzin tygodniowo na programistę.

Narzędzia i licencje (−2 punkty). Licencje na IDE, infrastruktura chmurowa dla środowisk wewnętrznych, narzędzia do zarządzania projektami, monitoring, platformy komunikacyjne. Pojedynczo niewiele, ale sumuje się.

Koszty rekrutacji i zarządzania (−7 punktów). HR, delivery managerowie, project managerowie, czas samej założycielki. Wszyscy dostają wynagrodzenie. Prawie nigdy niefakturowalne. To była największa pojedyncza dziura w marży.

Rabaty i niefakturowane nadgodziny (−4 punkty). Klient negocjował stawkę przy przedłużeniu umowy i dostał 8% rabatu. Awaryjna praca w weekendy nie zawsze była rejestrowana. Przekroczenia w częściach o stałym zakresie firma pokrywała sama.

Dwadzieścia osiem punktów, sześć kategorii — i żadna z nich nie mieściła się w matematyce stawki godzinowej.

Odbudowa — model P&L dla pojedynczego projektu

Założycielka zbudowała swój P&L dla każdego projektu w ciągu jednego weekendu. Stał się on najważniejszym dokumentem w jej firmie. Ten model sprawdzi się w każdej firmie usługowej. Per-project P&L stack — vector vertical waterfall. From top: PROJECT REVENUE (monthly billed hours × client rate) − DIRECT DEVELOPER COST (fully-loaded, incl PTO & benefits) − ALLOCATED PM/DM COST (% of PM time on project × PM salary) − ALLOCATED RECRUITMENT & HR (per developer allocation) − TOOLS PER PROJECT − BENCH & RAMP ALLOCATION − INTERNAL MEETINGS ALLOCATION = TRUE PROJECT MARGIN. Brand teal on TRUE PROJECT MARGIN row. Pierwsze — przychód projektu. Miesięczne przefakturowane godziny × stawka kontraktowa klienta. Nie to, co obiecano sprzedać — to, co faktycznie zafakturowano.

Drugie — pełny bezpośredni koszt programisty. Wynagrodzenie + podatki + benefity + amortyzacja sprzętu + płatny czas wolny, podzielone przez godziny wykorzystania (nie godziny kalendarzowe). Jeśli programista jest fakturowalny przez 65% czasu, jego pełny koszt godzinowy to wynagrodzenie/(godziny × 0,65).

Trzecie — przypisany koszt zarządzania projektem, delivery management i rekrutacji. Przybliżony udział według wielkości projektu lub przychodu. Nie musi być idealny. Musi być spójny.

Czwarte — narzędzia i licencje przypisane do projektu.

Piąte — alokacja kosztów bencha. Całkowity roczny koszt bencha podzielony pomiędzy aktywne projekty.

Szóste — alokacja spotkań wewnętrznych i procesów. Procent płatnych godzin poświęconych na pracę niezwiązaną z projektem × przypisany koszt.

Wynik — prawdziwa marża projektu. Dla jej głównego klienta: 14%. Dla dwóch mniejszych klientów: 21% i 8%. Dla klienta, którego uważała za najlepszego: 3%.

Co zrobiła z tą prawdą

Z klientem, u którego marża wynosiła 3%, przeprowadzono rozmowę o podwyżce stawki. Poszło dobrze — marża wzrosła do 12%. U klienta z 8% marżą problemem była dyscyplina zakresu (przerost zakresu usług) — to dało się naprawić, marża wzrosła do 15%. Koszty rekrutacji renegocjowano, zamieniając opłaty za każde zatrudnienie na stały miesięczny ryczałt. Przeprowadzono audyt spotkań wewnętrznych — trzy cotygodniowe spotkania zlikwidowano. Wykorzystanie dwóch starszych programistów wzrosło z 58% do 72%, gdy przesunięto ich z wewnętrznej pracy związanej z benchem na pracę dla klientów. Project margin dashboard — light mode. Title 'Projects · Q3'. Top: 7 project rows, each with client, monthly revenue, developer cost, PM allocation, other overhead allocation, true margin (green/amber/coral chips). One row highlighted: 'Client X — margin 3% → 12% after rate increase'. Center: utilization heat-strip per developer showing bench vs billable time. Bottom: 'Bench cost this quarter ₴240K · target ₴150K'. Brand teal on rate-increase action chip. Ogólna marża firmy wzrosła z pozornych 42% (fikcyjnych) przez realne 19% (przed przebudową) do realnych 27% (sześć miesięcy później). Ważniejsze niż sama liczba: teraz wiedziała, który klient jest naprawdę rentowny, który dotuje bench, a który po cichu ją kosztuje.

Model — co śledzić

Sześć liczb, co miesiąc, dla każdego projektu:

  • Rzeczywiste godziny fakturowalne (nie planowane, tylko faktyczne)
  • Pełny koszt programisty na projekt
  • Przypisane koszty zarządzania (czas PM/DM/rekrutera/założyciela jako % miesiąca)
  • Alokacja bencha (koszt bencha w tym miesiącu × udział przychodu projektu)
  • Prawdziwa marża projektu (przychód − wszystko powyższe)
  • Wykorzystanie na programistę, śledzone osobno od marży

Sześć liczb, jeden dashboard, comiesięczny przegląd z liderem delivery. Dwie godziny miesięcznie wystarczą, żeby fikcja już nigdy nie wróciła.

📌 Chcesz sprawdzić, czy twoje projekty są naprawdę tak rentowne, jak sugeruje matematyka stawki godzinowej? Wyślij nam dane rozliczeniowe z trzech miesięcy i podział kosztów zespołu — zbudujemy wykres wodospadowy prawdziwej marży dla każdego projektu i omówimy go z tobą w 15 minut. Zamów bezpłatną diagnostykę Finmap →

Czytaj także

Spis treści
Sprawdź stan systemu finansowego swojej firmy
Zamów diagnostykę finansową
Oleksiy Bazyura
Oleksiy Bazyura
Financial Expert at Finmap
  • Senior Financial Manager, Starlight Online Media LLC (2022-2025)
  • Financial Controller, LLC "VOODUS" (2018-2022)
  • Financial Planning and Analysis Specialist, Novy Styl LLC (2014-2018)
  • Junior Specialist in Accounting and Financial Services, “Evviva, Group of Companies” (2009-2014)
Polecane dla przedsiębiorców

Najczęściej zadawane pytania

Czy wykorzystanie to tylko KPI, a nie czynnik wpływający na marżę?

To i jedno, i drugie. Wyższe wykorzystanie bezpośrednio zwiększa pełną marżę, bo koszt programisty rozkłada się na więcej godzin fakturowalnych. Niższe wykorzystanie po cichu zjada marżę.

Podziel jego czas według faktycznie przepracowanych godzin na każdym z nich. Jego pełny koszt rozkłada się w tej samej proporcji. Dlatego śledzenie czasu, nawet w uproszczonej formie, ma znaczenie.

Dla mniejszych firm (poniżej 30 programistów) wystarczy śledzenie zbiorcze. Powyżej tej liczby lepiej sprawdza się śledzenie indywidualne, bo bench seniora kosztuje znacznie więcej niż bench juniora.

Ta sama matematyka, ale przychód to miesięczna zarobiona część (wartość kontraktu × % ukończenia). Dzięki temu projekty przynoszące stratę widać dużo wcześniej niż w rachunkowości kasowej.

Sprawdź alternatywę — czy projekt jest wystarczająco rentowny, by utrzymać go przy obecnych stawkach? Jeśli marża jest ujemna lub poniżej 10%, rozważ ograniczenie zakresu, poprawę efektywności realizacji albo łagodne zakończenie współpracy.

Twój księgowy przygotowuje P&L na poziomie całej firmy. To jest P&L na poziomie projektu, który wymaga alokacji — a księgowy zwykle nie ma danych operacyjnych, żeby je zrobić.

Masz jeszcze pytania?
Chętnie na nie odpowiemy.
WhatsApp
Telegram
Finmap
Finmap support

Pieniądze nie znikają. Po prostu ich nie widzisz.

Zamów osobistą diagnostykę finansową lub demo Finmap — i spójrz na swój biznes z nowej perspektywy.

Zadaj pytanie ekspertowi Finmap