אוטומציה למדד הלמ"ס בחוזים: איך מעדכנים הצמדה בלי לשכתב היסטוריה
חזרה לבלוג
automation·5 בספטמבר 2026·4 דק' קריאה·מאת יהונתן סעדיה

אוטומציה למדד הלמ"ס בחוזים: איך מעדכנים הצמדה בלי לשכתב היסטוריה

ה-API של הלמ"ס למדדי מחירים, למה מספר מדד שנשמר מפסיק להתאים אחרי שנה או שתיים, ואיזו סכימה מאפשרת לחשב הצמדה מחדש בלי לגעת בחיובים שכבר יצאו.

עיקרי הדברים

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

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

מה הממשק של הלמ"ס מחזיר

הפעולהמה מקבליםהערה
קטלוג נושאי המדדיםרשימת פרקים עם קוד ראשי לכל אחדמדד המחירים לצרכן מופיע עם קוד ראשי 120010
נתוני מדד לפי קודערך המדד לכל חודש, שיעור שינוי חודשי ושנתי, תיאור הבסיספרמטרי startPeriod ו-endPeriod בתבנית חודש-שנה, ו-last למספר ערכים אחרונים
נתוני מדד עם מקדםאותם נתונים בתוספת מקדם קשרפרמטר coef
מחשבון הצמדהסכום מוצמד בין שני תאריכים, עם מדד המוצא ומדד היעדתאריכים בתבנית חודש-יום-שנה
מדדים עיקריים לפי בסיסיםערכי המדד במקביל בכמה בסיסיםמוחזר כ-XML

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

למה מספר מדד שנשמר מפסיק להתאים אחרי שנה?

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

הממשק פותר את זה בעזרת מקדם קשר. בבדיקה שהרצנו הוחזר עבור יולי 2026 ערך של 105.1 בבסיס "ממוצע 2024", ובמקביל אותו חודש הוצג בבסיסים ישנים יותר עם מקדמי קשר שמגשרים ביניהם. אותו מנגנון מופיע גם בתשובת המחשבון, שמחזיר מקדם לצד מדד המוצא ומדד היעד.

לכן שדה בודד בשם base_index הוא באג עתידי. מה שנשמר חייב להיות שלישייה:

  • ערך המדד.
  • תיאור הבסיס שאליו הערך מתייחס.
  • החודש שאליו הערך שייך.

הסכימה שמאפשרת חישוב מחדש בלי לשכתב

הכלל היחיד שחשוב: החיוב הוא עובדה, ההצמדה היא חישוב. חיוב שיצא נשמר עם כל מה ששימש לחישובו, ולעולם אינו מתעדכן כשמגיע מדד חדש.

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

הבדל הגישה הזה הוא ההבדל בין מערכת שאפשר לבקר לבין מערכת שבה השאלה "כמה חייבנו במרץ ולמה" נענית בניחוש. אותו דפוס של שמירת נתון על השורה במקום חישוב חוזר מופיע גם בבקרת תזכורות לחידוש חוזה.

מה צריך להיות בעקבות הביקורת של חיוב מוצמד?

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

  • הסכום הבסיסי לפני הצמדה.
  • מדד הבסיס עם הבסיס והחודש שלו.
  • מדד התקופה עם הבסיס והחודש שלו.
  • המקדם או היחס ששימש בפועל.
  • מי הריץ את החישוב ומתי.

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

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

מלכודות מדידות בממשק עצמו

  • שדה User-Agent. הלמ"ס מציינת בתיעוד שהשדה הזה הוא שדה חובה בפנייה. בבדיקה שהרצנו, פנייה עם Mozilla/5.0 קיבלה איפוס חיבור, ואילו curl/8.6.0, python-requests/2.32 ובקשה ללא הכותרת החזירו 200.
  • XML בלבד. בתיעוד מצוין שחלק מנקודות הקצה של המדדים העיקריים תומכות כרגע ב-XML בלבד. בבדיקה שהרצנו, פנייה עם format=json לאחת מהן החזירה בכל זאת XML.
  • תבנית תאריך במחשבון. התיעוד מציין חודש-יום-שנה או שנה-חודש-יום. בבדיקה שהרצנו 08-15-2020 עבד, ואילו 15-08-2020 החזיר שגיאה.
  • מדד ארעי. הלמ"ס מציינת שבמדד מחירי הדירות שלושת הערכים האחרונים ארעיים ועשויים להתעדכן, ושאין זה מומלץ להצמיד לתקופה שבה המדד עדיין ארעי.
  • עיכוב פרסום. ערך של חודש מסוים אינו קיים באותו חודש. מערכת שמחשבת חיוב בתחילת החודש חייבת לדעת מראש איזה מדד יהיה זמין באותו רגע, ולא לגלות זאת בזמן ריצה.
  • התאמה לפי שם מדד. אותו מדד מופיע בניסוחים שונים בין מקורות, ולכן הפנייה נעשית לפי קוד. שם מדד ששמור אצלכם כטקסט הוא מקור קבוע לטעות שקטה.

מה כדאי שיהיה מוכן לפני הפיתוח

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

מקורות

#CBS#consumer price index#indexation#contracts#automation#אינטגרציה

שאלות נפוצות

מה קוד מדד המחירים לצרכן בממשק?

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

למה שני מקורות מציגים ערך שונה לאותו חודש?

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

האם כדאי להשתמש במחשבון של הלמ"ס או לחשב לבד?

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

מה עושים כשהמדד של החודש עדיין לא פורסם?

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

להמשך קריאה

שירות רלוונטי

אינטגרציות

לגרום למערכות שאתם כבר משלמים עליהן לדבר זו עם זו.

מידע נוסף →←

על הכותב

יהונתן סעדיה

מפתח פרילנסר לאוטומציה, אתרים ו-MVP

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

בוא נעבוד יחד

יש לך פרויקט דומה?

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