מזהה עבודה אחד שאליו נקשרים הכנסה, שעות, קבלני משנה, חומרים ונסיעות. שדות חובה בכרטיס עבודה, שש נקודות דליפה, ודוגמה מספרית של פרויקט שנראה רווחי.
עיקרי הדברים
- מזהה העבודה הוא מפתח טכני קצר ויציב, לא שם לקוח ולא שם פרויקט. שמות משתנים, מפתחות לא.
- ההכנסה נכנסת בנקודה אחת. העלות נכנסת בשש נקודות שונות לפחות, וכל אחת מהן היא מקום שבו המזהה יכול ליפול.
- עבודה בלי מזהה נכנסת לתור חריגים עם בעלים, ולא לקטגוריה "כללי" - קטגוריה כללית שגדלה היא הסימן שהמדידה הפסיקה לעבוד.
- מרווח מדווח ומרווח אמיתי נפרדים בדרך כלל בגלל עבודה שבוצעה ולא חויבה, לא בגלל מחיר שנקבע נמוך מדי.
רווחיות לפי פרויקט נמדדת רק כשכל שורת כסף וכל שורת זמן נושאות את אותו מזהה עבודה. עובד שמדווח שעות על שם לקוח, ספק שמוציא חשבונית על מספר הזמנה, ונסיעה שנרשמת בכרטיס אשראי כללי - שלושתם נכונים בנפרד ולא ניתנים לחיבור. המזהה הוא מה שמחבר.
מזהה העבודה, ושש הנקודות שבהן עלות מנסה להיכנס בלעדיו
מזהה העבודה הוא מחרוזת קצרה שנוצרת פעם אחת ולא משתנה - למשל J-2026-0412. הוא לא שם הלקוח, כי לקוח מזמין כמה עבודות; הוא לא מספר ההצעה, כי הצעה יכולה להתפצל לשני פרויקטים; והוא לא תיקייה בדרייב, כי אי אפשר לצרף אותו לשורה בדוח.
העלות מגיעה משש כיוונים, ולכל אחד מהם צריך שדה שמחזיק את המזהה:
- שעות עובדים - מדווחות בטופס או בשעון, עם שדה מזהה חובה.
- קבלני משנה - חשבונית שמגיעה במייל, בלי שום קשר טכני לפרויקט אלא אם מישהו מקליד את המזהה.
- חומרים ורכש - הזמנת רכש שנפתחת מול ספק, לרוב עם מספר הזמנה משלה.
- נסיעות והוצאות בכרטיס - חיוב בכרטיס חברה שמגיע ללא כל הקשר לעבודה.
- רישיונות ושירותים חודשיים - חיוב חוזר שצריך פיצול בין פרויקטים או הגדרה כתקורה.
- זיכויים והנחות - זיכוי שנרשם ברמת הלקוח ולא ברמת העבודה, ומעוות את המרווח של הפרויקט הלא נכון.
הכלל הפשוט: אם מסמך יכול להיכנס למערכת בלי שדה מזהה עבודה מלא, הוא ייכנס בלעדיו. השדה חייב להיות חובה בטופס הקליטה, לא בקשה מנומסת.
מה כרטיס העבודה חייב להחזיק לפני שמדווחים עליו שעה אחת
| שדה | דוגמה | למה הוא נדרש |
|---|---|---|
job_id | J-2026-0412 | המפתח היחיד שכל שורה מצטרפת אליו |
customer_id | C-0187 | הלקוח, נפרד מהעבודה |
type | fixed_price | קובע אם חריגת שעות פוגעת במרווח או מחויבת |
budget_hours | 160 | הבסיס להשוואת מתוכנן מול בפועל |
budget_cost | 42,000 | תקציב עלות, לא מחיר מכירה |
sell_value | 68,000 | ההכנסה החוזית, לפני שינויים |
owner | דנה | מי מאשר חריגה |
status | active | פתוח, מוקפא, סגור לדיווח |
billable_default | true | ברירת המחדל לשעה חדשה |
type הוא השדה שהכי מרבים לוותר עליו והכי משנה. בעבודת מחיר קבוע, כל שעה נוספת יורדת ישירות מהמרווח. בעבודה לפי שעה, אותה שעה מגדילה גם את ההכנסה. אותו דיווח, שתי משמעויות הפוכות, ובלי השדה הדוח מציג את שתיהן באותה עמודה.
איפה הכסף באמת דולף בפרויקט שנראה רווחי?
פרויקט מיתוג באתר: הצעה ב-68,000 ש"ח, חשבונית ב-68,000 ש"ח, ולכן הוא מוצג כרווחי. הנה מה שקושר לאותו מזהה עבודה בסוף הרבעון:
| רכיב | סכום | הערה |
|---|---|---|
| הכנסה | 68,000 | חשבונית אחת |
| שעות פנימיות, 214 שעות בעלות 180 | 38,520- | התקציב היה 160 שעות |
| מעצב חיצוני | 9,500- | חשבונית עם מספר הזמנה בלבד |
| רישיונות ותוכן | 2,300- | חיוב בכרטיס חברה |
| נסיעות לפגישות | 1,150- | לא דווחו כלל |
| זיכוי שניתן ללקוח | 3,000- | נרשם ברמת הלקוח |
| מרווח בפועל | 13,530 | 19.9% ולא 43% |
הפער בין 43% ל-19.9% אינו טעות תמחור. 54 שעות מעבר לתקציב הן 9,720 ש"ח שאיש לא ביקש עליהן תוספת, והזיכוי של 3,000 נרשם על הלקוח ולכן פגע בפרויקט אחר. שני התיקונים הם תהליכיים ולא חשבונאיים: התראה בחציית התקציב, וכלל שאומר שזיכוי נרשם על עבודה ולא על לקוח. הקשר בין ההצעה, ההזמנה והחשבונית לאותו מזהה מתואר בנפרד בשרשרת הצעה, הזמנה וחשבונית תחת מזהה אחד.
איך מטפלים בעבודה שאין ללקוח שלה מי לחייב?
פותחים לה מזהה משלה. עבודה פנימית היא עדיין עלות, וכשאין לה מקום היא נדחפת לפרויקט של לקוח אקראי או נעלמת. ארבעה סוגי מזהים פנימיים מכסים כמעט הכול:
- קדם-מכירה - הכנת הצעות ופגישות ראשונות. עלות אמיתית של מכירה, לא של הלקוח שנסגר.
- אחריות ותיקונים - עבודה על פרויקט שכבר נסגר. נשארת קשורה לעבודה המקורית דרך שדה
parent_job_id, אחרת המרווח ההיסטורי משקר. - פיתוח פנימי - כלים, תבניות, אתר החברה.
- תקורה - ישיבות, הדרכות, ניהול. לא מפוצלת בין לקוחות, אחרת אף מספר לא ניתן להשוואה בין רבעונים.
הכלל שמחזיק את זה: שעה נכנסת לתקורה רק אם היא לא ניתנת לשיוך לאף אחד משלושת האחרים. תקורה שגדלה מ-12% ל-30% אינה שינוי בעבודה, אלא סימן שאנשים מוותרים על הדיווח.
מה מסתכלים עליו כל שבוע
- שעות בפועל מול תקציב, באחוזים, לכל עבודה פעילה.
- עבודה שבוצעה וטרם חויבה, בשקלים.
- הוצאות שנקלטו ללא מזהה עבודה, בספירה ובסכום.
- עבודות שעברו 80% מהתקציב ועדיין פתוחות.
- שעות שדווחו על עבודה בסטטוס סגור.
- זיכויים שנרשמו על לקוח ולא על עבודה.
שני המדדים האחרונים הם מדדי איכות של המדידה עצמה. אם הם גדלים, כל שאר המספרים מאבדים ערך - וזו אותה לוגיקה שמפעילה בקרת תקציב בסטודיו לפי שעות ואבני דרך.
מה נשבר בפועל
- שיוך לפי שם. "עיריית רמת גן - שלב ב" מוקלד בשלוש צורות, ומתפצל לשלושה פרויקטים בדוח.
- דיווח שעות בסוף החודש. ההערכה בדיעבד מחליקה חריגות ומוחקת בדיוק את המידע שרצו למדוד.
- חשבונית ספק בלי מספר עבודה. נכנסת להוצאות כלליות ולא חוזרת משם לעולם.
- סגירת עבודה מוקדמת מדי. שעות אחריות שמגיעות אחר כך נופלות על עבודה אחרת.
- שינוי היקף בלי מסמך. התקציב לא מתעדכן, וכל דוח מכאן והלאה מציג חריגה שאינה קיימת.
- תקציב במחיר מכירה. השוואת עלות בפועל מול מחיר מכירה נותנת מרווח מנופח בגובה הרווח המתוכנן.
מה צריך להיות מוכן לפני שבונים
- החלטה מי פותח עבודה חדשה ומי רשאי לסגור.
- שדה מזהה חובה בכל טופס קליטה: שעות, הוצאה, חשבונית ספק.
- תעריף עלות לשעה לכל תפקיד, נשמר עם טווח תאריכים ולא כערך יחיד שנדרס.
- כלל אחד לשינוי היקף: מה מעדכן תקציב ומה לא.
מקורות
שאלות נפוצות
מה ההבדל בין תעריף עלות לתעריף חיוב?
תעריף עלות הוא כמה עולה לכם שעת עבודה, כולל שכר והעמסות. תעריף חיוב הוא מה שהלקוח משלם. חישוב רווחיות מול תעריף חיוב מציג מרווח מנופח בדיוק בגובה הרווח המתוכנן, ולכן שני התעריפים חייבים להישמר כשדות נפרדים בכרטיס העבודה.
כמה עבודות פתוחות זה יותר מדי?
אין מספר נכון, אבל יש סימן: אם עבודות נשארות בסטטוס פעיל חודשיים אחרי המסירה, הסטטוס לא משקף מציאות ותור העבודות מפסיק להיות שימושי. עדיף כלל סגירה אוטומטית אחרי תקופה ללא דיווח, עם אפשרות לפתוח מחדש.
האם צריך לדווח שעות בדיוק של רבע שעה?
לרוב לא. דיוק של חצי שעה מספיק כדי לזהות חריגה של 30% בתקציב, וזה מה שמחפשים. דיוק גבוה יותר מוריד את שיעור הדיווח, וחסר בדיווח פוגע במדידה הרבה יותר מאשר עיגול של עשרים דקות.
מה עושים כשהלקוח מבקש תוספת קטנה בלי הצעה חדשה?
פותחים שינוי היקף מתועד גם אם הוא לא מחויב, ומעדכנים את התקציב. תוספות קטנות שאינן נרשמות הן ההסבר הנפוץ ביותר לפרויקט שחרג ב-25% בלי שאף אחד יכול להצביע מתי זה קרה.
להמשך קריאה
שירות רלוונטי
אוטומציה לעסקים
אני בונה אוטומציות מותאמות שמורידות עבודה חוזרת מקצה לקצה.
על הכותב
יהונתן סעדיה
מפתח פרילנסר לאוטומציה, אתרים ו-MVP
אני יהונתן סעדיה, מפתח בכיר שבונה אוטומציה עסקית, אתרים מותאמים ומוצרי MVP לעסקים קטנים ובינוניים בארה"ב, אירופה וישראל. המדריכים האלה נכתבים מתוך עבודה אמיתית עם לקוחות, לא מתיאוריה.
בוא נעבוד יחדיש לך פרויקט דומה?
ספר לי מה אתה רוצה לבנות או איזה תהליך להפוך לאוטומטי. אני חוזר תוך 24 שעות עסקים עם כמה שאלות ממוקדות, ואז עוברים על זה יחד בשיחת היכרות חינמית של 30 דקות, בלי התחייבות. בסוף יש לך היקף עבודה, לוח זמנים ומחיר קבוע - או תשובה כנה שלא שווה לבנות את זה.
