איך אנחנו בודקים את החישוב — בדיקות הזהב ובדיקת הסנכרון

המנוע הסטטוטורי של עובדימלי מכוסה בשתי שכבות בדיקה אוטומטיות שרצות בכל בנייה ונכשלות בקול: בדיקות זהב שמנקבות את התוצאה מול נוסח החוק, ובדיקת סנכרון שעוצרת את הפרסום אם ערך באתר סוטה מהמנוע. החישוב אינו קופסה שחורה — הוא נשען על בדיקות שאפשר להצביע עליהן.

כשמערכת שכר אומרת ״סמכו עלינו״, השאלה היא על מה בדיוק היא נשענת. אצלנו התשובה היא בדיקות: קוד שמריץ את המנוע על מקרים שהתוצאה שלהם חושבה מראש מתוך החוק, ומשווה. הנה שתי השכבות.

נכון ל-2026-09-12 · המקור: tests/statutory/golden + tests/statutory-sync.test.mjs · איך אנחנו מחשבים

שכבה 1

בדיקות הזהב — התוצאה נקבעת מראש מול החוק

בדיקת זהב עובדת כך: לוקחים מקרה קצה (למשל עובד במשמרת שחוצה לשעות נוספות), מחשבים את התוצאה הצפויה באופן עצמאי מתוך נוסח החוק, ונוקבעים אותה. המנוע רץ על אותו מקרה, ואם הפלט שלו סוטה מהערך שנוקבע — הבדיקה נכשלת. כך תופסים לא רק סטייה בערך אלא גם שגיאת לוגיקה בחישוב עצמו.

נכון ל-2026-09-12, המנוע מכוסה ב-16 מודולי בדיקות זהב עם מעל 401 בדיקות — אחת לכל כלל, ולכל תרחיש קצה שהוספנו לאורך הדרך.

דוגמה אחת, מחושבת מהמנוע:

לפי חוק שעות עבודה ומנוחה, תשי״א־1951, §16(א), שתי שעות נוספות ראשונות משולמות ב-125% ומהשעה השלישית ב-150%. בדיקת זהב מנקבת את התוצאה הצפויה למקרה כזה (בין היתר על שכר מינימום שעתי של 35.40 ₪), והמנוע חייב להחזיר אותה בדיוק.

התחוםמודול הבדיקהבדיקות
שכר מינימוםtest_minwage.py41
הודעה מוקדמתtest_notice.py37
היעדרויותtest_absences.py36
צבירת חופשהtest_leave.py32
עבודה ומנוחהtest_workrest.py31
חגיםtest_holidays.py30
פיצויי פיטוריםtest_severance.py24
דמי מחלהtest_sick.py23
דמי הבראהtest_havraah.py23
שעות נוספותtest_overtime.py22
עלות מעסיקtest_employer_burden.py20
חריגותtest_anomaly.py19
ברוטו→נטוtest_gross_net.py17
נסיעותtest_travel.py17
הרכבה מלאהtest_full_assembly.py16
כלל המקסימום בחופשהtest_leave_maxrule.py13

שכבה 2

בדיקת הסנכרון — האתר תמיד זהה למנוע

הערכים שאתם רואים באתר מוצגים בשיקוף TypeScript של מנוע הפייתון. בדיקת הסנכרון קוראת את קוד המקור של כל מודול חוק, שולפת ממנו את הקבוע (למשל את שכר המינימום החודשי), ומוודאת שהשיקוף באתר זהה לו ספרה בספרה.

אם ערך כלשהו סוטה — למשל אחרי עדכון שכר המינימום באפריל — הבנייה נעצרת. אי אפשר לפרסם לאתר מספר שלא תואם את המנוע, ולכן המספר שאתם רואה הוא תמיד המספר שהמנוע מחשב.

למה זה משנה

חישוב שכר הוא לא דעה — הוא תוצאה של כללים. כשהכללים מכוסים בבדיקות שנכשלות בקול, אפשר להצביע על השורה שבודקת כל ערך, במקום לבקש אמון עיוור. זו הסיבה שמפת המקורות והטבלאות אינן מוקלדות ביד: הן קשורות לאותם קבועים שהבדיקות מגנות עליהם.

שימו לב: הבדיקות מבטיחות שהמנוע מממש את החוק כפי שנכתב — הן אינן קובעות מה חל על עובד מסוים. הסכם אישי או קיבוצי עשוי לשנות את התוצאה, ולכן לפני החלטה בפועל כדאי לבדוק מול איש שכר מקצועי.

רוצים לראות את הערכים עצמם?

אותם קבועים שהבדיקות מגנות עליהם — במפת המקורות, בטבלאות, ובמחשבונים.

לפני שמסתמכים על מספר — כדאי לבדוק

הבדיקות מבטיחות שהמנוע מחשב נכון לפי החוק, אבל הן אינן ייעוץ משפטי ואינן תחליף לבדיקה פרטנית. לפני קבלת החלטת שכר או תשלום בפועל, כדאי לבדוק מול איש שכר מקצועי או עורך דין המתמחה בדיני עבודה, ומול ההסכם הספציפי של העובד.

שאלות נפוצות

מה זו בדיקת זהב?
בדיקה שבה התוצאה הצפויה מחושבת מראש באופן עצמאי מתוך נוסח החוק, ונוקבעת בקוד. המנוע רץ על אותו מקרה, ואם הפלט שלו סוטה מהערך שנוקבע — הבדיקה נכשלת. כך תופסים לא רק סטייה אלא גם שגיאת לוגיקה.
כמה בדיקות יש למנוע?
נכון ל-2026-09-12: 16 מודולי בדיקות זהב עם מעל 401 בדיקות, לצד בדיקת סנכרון שמשווה כל קבוע באתר מול מקור הפייתון ועוצרת את הבנייה בסטייה. המספרים משתנים ככל שמתווספים כללים.
מה זו בדיקת הסנכרון?
האתר מציג את הערכים החוקיים בשיקוף TypeScript של מנוע הפייתון. בדיקת הסנכרון קוראת את קוד המקור של כל מודול חוק, שולפת את הקבוע, ומוודאת שהשיקוף זהה לו בדיוק. אם ערך כלשהו סוטה — הבנייה נעצרת, ואי אפשר לפרסם מספר שלא תואם את המנוע.
האם הבדיקות הופכות את התוצאה לייעוץ?
לא. הבדיקות מבטיחות שהמנוע מממש את החוק כפי שנכתב, אבל הן אינן ייעוץ משפטי ואינן חוות דעת על חובות השכר החלים עליכם. הסכם אישי או קיבוצי עשוי לשנות את התוצאה — לפני החלטה בפועל כדאי לבדוק מול איש שכר מקצועי.
איפה אפשר לראות את הערכים עצמם?
במפת המקורות הסטטוטוטיים מוצג כל ערך מסעיף החוק דרך הקבוע במנוע אל המחשבון החי, ובטבלאות השנתיות מוצגים ערכי 2026. שני העמודים מקושרים מכאן.