מסר הנווט מכיל שלשה מרכיבים עיקריים. הראשון מכיל תאריך ו"זמן GPS" וכן מצב הלוויין וסטטוס המצביע על רמת תקינותו. השני מכיל נתוני מסלול הלוויין הנקראים אפמריס, המאפשרים למקלט GPS לחשב את מיקום הלוויין בזמן נתון. השלישי נקרא אלמנך, ומכיל מידע לגבי כלל הלוויינים במערכת, מיקומם ומספרי ה-PRN שלהם.
אפמריס נחשב למידע מפורט ותקפותו לכן אינה עולה על 4 שעות. לעומתו אלמנך כללי יותר ופחות מפורט אך תקף לאורך זמן רב (עד 180 יום). האלמנך עוזר למקלט לקבוע אלו לוויינים לחפש וכאשר המקלט מוצא לוויין הוא מוריד ממנו ישירות את נתוני האפמריס שלו. אם הסיגנל של לוויין מסוים אובד בזמן שהאפמריס בהליך רכישה, המקלט חייב למחוק את המידע שהתקבל ולהתחיל מחדש.
מסר הנווט עצמו מורכב ממסגרת באורך 1,500 ביט, המחולקת ל-5 תת-מסגרות של 300 ביט כל אחת ומשודרת בקצב של 50 ביט לשנייה. כל תת-מסגרת לכן דורשת 6 שניות כדי לשדרה. לכל מסגרת יש את "זמן ה-GPS". תת-מסגרת 1 מכילה את תאריך ה-GPS (הנקרא "מספר שבוע" - "week number") ומידע לתיקון זמן הלוויין לזמן GPS וכן מידע על רמת תקינות וסטטוס. תת-המסגרות 2 ו-3 מכילים את האפמריס של הלוויין. תת-המסגרות 4 ו-5 מכילות את האלמנך. כל מסגרת מכילה 1/25 מתוך האלמנך כולו ולכן מקלט צריך לקלוט 25 מסגרות שלמות כדי להרכיב את 15,000 הביטים של מידע האלמנך במלואו. בקצב זה, 12.5 דקות דרושות למקלט להשיג את מידע האלמנך.
נתוני הנקודות המרכיבות את המסלול, או האפמריס, מתוך מסר הנווט משמשות לחישוב מדויק של מיקום הלוויין בעת תחילת שליחת המסר. מקלט רגיש יותר יוכל לקלוט את מידע האפמריס מהר יותר ממקלט פחות רגיש, וההבדל גדל ככל שהסביבה רועשת יותר.
כל תת-מסגרת מחולקת ל-10 "מילים". היא מתחילה עם מילת טלמטריה (TLM), אשר מאפשרת למקלט לזהות שזו תחילת תת-מסגרת ולקבוע את זמן המקלט בו התחילה תת-המסגרת. המילה הבאה היא מילת מסירה ("handover word" או HOW) אשר נותנת את זמן ה-GPS (בפועל הוא זמן ה GPS שבו הביט הראשון של המסגרת הבאה ישודר), ומזהה את התת-מסגרת בתוך מסגרת מלאה. 8 המילים הנותרות מחזיקות את המידע הרלוונטי לאותה מסגרת.
לאחר שתת-מסגרת נקראה ופוענחה, זמן השידור של המסגרת הבאה יכול להיות מחושב תוך שימוש בנתוני תיקון השעון ומילת ה-HOW. המקלט יודע את זמן השעון שבו תחילת ההודעה הבאה הגיעה מתוך מילת ה-TLM וכך לחשב את הזמן ואת ה"פסאודו-טווח". המקלט מסוגל לקבל מדידת פסאודו-טווח חדשה בתחילת התת-מסגרת הבאה, או כל 6 שניות.
אלמנך.
נתוני האלמנך, המסופקים בתת-המסגרות 4 ו-5 של כל מסגרת, מורכבים ממסלול משוערך סביב כדור הארץ וסטטוס לכל לוויין במערכת הלוויינים (השייכים ל-GPS), מודל יונוספירה ומידע המסייע לקשר זמן GPS לזמן אוניברסלי מתואם (UTC). כל מסגרת מכילה חלק מהאלמנך (בתתי המסגרות 4 ו-5) וכך האלמנך כולו עובר ברצף שידור של 25 מסגרות, על ידי כל לוויין. שידור כזה לוקח 12.5 דקות.
האלמנך משרת כמה מטרות; הראשונה היא לסייע ברכישת לוויינים בעת תחילת עבודה של מקלט על ידי כך שהוא מאפשר למקלט לייצר רשימה של לוויינים שהוא צפוי לזהות באותו רגע, על בסיס מידע השמור אצלו, וחתימת זמן נכחי. לעומתו האפמריס מכל לוויין משמש לחישוב המיקום של המקלט.
במערכות ישנות, אובדן מידע האלמנך היה גורם להשהיה ממושכת טרם היכולת לקבוע מיקום המקלט, מכיוון שחיפוש הלוויינים ארך זמן רב. חומרה מודרנית יותר מפחיתה משמעותית את זמן החיפוש כך שגם אם אין נתוני אלמנך, הדבר אינו מהווה הפרעה משמעותית.
המטרה השנייה היא לקבוע זמן מתוך נתוני ה GPS ולהתאימו לסטנדרט UTC. זמן זה נקרא "זמן GPS". המטרה האחרונה היא לאפשר למקלט העובד על תדירות מוגדרת אחת, לבצע תיקונים להשהיות הנובעות ממבנה היונוספירה של כדור הארץ. תיקונים אלו אינם מדויקים כמו התיקונים המתקבלים ממערכות אוגמנטציה כמו WAAS, GAGAN ו EGNOS, אך הם טובים יותר מאשר להשאיר את המידע ללא תיקונים לשגיאות יונוספירה כלל, שכן שגיאות אלו הן מקור השגיאה הגדול ביותר עבור מערכות תדר בודד.
אפנון אותות GPS.
כדי שיוכלו האותות, קודי C/A ו וכן מסר הנווט לעבור מהלוויין למקלט, הם צריכים לעבור אפנון שיעביר את מידע שלהם על גבי גל נושא. באופן הפעולה שתוכנן במקור היו שתי תדירויות, אחת ב-1575.42MHz (או 10.23MHz × 154) שתקרא L1 ושנייה ב-1227.60MHz (או 10.23MHz × 120) שתקרא L2.
קוד ה-C/A נשלח בתדירות L1 כאות בעל 1.023MHz תוך שימוש בשיטת האפנון "מפתוח בינארי של הזחת פאזה" (או BPSK). מאידך קוד ה- משודר הן ב-L1 והן ב-L2 כסיגנל 10.23MHz עם אותו אפנון, אך משודר בניצב לשידור קוד ה-C/A (היינו ב-90° הפרש פאזה)
מלבד יתירות ועמידות מוגברת להפרעות או חסימות, שידור בשתי תדירויות מלוויין אחד מוסיף יתרון משמעותי והוא האפשרות למדוד וכתוצאה מכך לקזז את השגיאה הנובעת מהעיכוב היונוספרי עבור אותו לוויין. ללא מדידה כזו, מקלט GPS יהיה חייב להכיל או לקבל מודל מוכלל של תיקוני יונוספירה ממקור חיצוני, כגון מערכת הגברה דוגמת WAAS. עם התפתחות הטכנולוגיה ושיפורים משמעותיים ביכולות המקלטים, שגיאת היונוספירה נשארה השגיאה הגדולה ביותר בסיגנל. מקלט שיוכל לבצע מדידה כזו יוכל להיות מדויק יותר באופן משמעותי. מקלט כזה נקרא "מקלט דו-תדרי" (Dual Frequency Receiver).
אפנון ופענוח.
מכיוון שכל אותות הלוויינים ממודלים בתוך אותו תדר L1, ישנו צורך להפריד בין האותות לאחר פענוח האפנון במקלט. לצורך כך הוענק לכל לוויין רצף בינארי הנקרא "קוד זהב". האותות מפוענחים תוך הוספת מודולו 2 של קוד הזהב המתאים ללוויינים n1 עד nk, כאשר k הוא מספר הערוצים במקלט ה GPS ו-n1 עד nk הם מזהי ה-PRN של הלוויינים. כל מספר PRN ייחודי ובטווח שבין 1 ל-32.
התוצר של חישוב מודולו 2 דלעיל, הוא ה-50bit/s של מסר הנווט מהלוויינים n1 עד nk. קוד הזהב שהזכרנו הם רצף של 1,023 ביט לתחום של שנייה אחת. קודי הזהב הם אורתוגונליים במידה רבה, כך שלא סביר שלוויין אחד יפורש כמשנהו בטעות. בנוסף לכך קודי הזהב בעלי מאפיינים לתיקון שגיאות אוטומטי.
ישנם 1,025 קודי זהב שונים באורך 1,023 ביט, אך רק 32 נמצאים בשימוש. קודים אלו נקראים לעיתים רעש פסאודו-אקראי מכיוון שאינם מכילים מידע כלשהו ונראים כרצף אקראי, אולם שם זה מטעה מפני שהם בפועל רצף דטרמיניסטי.
אם מידע מוקדם של אלמנך קיים, המקלט בוחר אילו לוויינים לחפש על פי ה-PRN. אם נתוני אלמנך אינם זמינים, המקלט נכנס למצב של חיפוש תוך לולאה על מספרי ה-PRN על להשגת נעילה על אחד הלוויינים. כדי להשיג נעילה דרוש קו ראייה ישיר (Line of sight) ולא מופרע בין הלוויין למקלט. לאחר מכן יכול המקלט להשיג את נתוני האלמנך כדי לקבוע את הלוויינים עליהם עליו להאזין. כל לוויין הנקלט מזוהה על ידיו בעזרת הדפוס הייחודי של קוד ה-C/A.
המקלט משתמש בקוד הזהב של ה-C/A, יחד עם ה-PRN של הלוויין כדי לחשב נתון הזחה (offset) "O" אשר מחושב בשיטת ניסוי וטעייה. 1,023 הביטים של ה-PRN של סיגנל הלוויין מושווים עם ה PRN של סיגנל המקלט. אם התאמה אינה מושגת, 1,023 הביטים של סיגנל המקלט מוזחים בביט אחד ביחס ל PRN של הלוויין ונערכת השוואה מחודשת. תהליך זה חוזר על עצמו עד שכל האפשרויות (1,023) נוסו ואם כולן נכשלו, מתנד התדירות מוסח לערך הבא ומתחיל התהליך מחדש.
מכיוון שתדר הגל הנושא עלול להשתנות כתוצאה מהזחת דופלר (Doppler Shift), הנקודות בהן PRN נקלט מתחיל עלולים להיות שונים מ-O בכפולה לא שלמה של מספר המילישניות. לכן, עקיבת גל נושא מתבצעת יחד עם עקיבת רצפי PRN כדי לקבוע מתי מתחיל רצף ה-PRN המתקבל. בשונה מהחישוב הקודם, בו נוסו כל 1,023 אפשרויות ההזחה. העקיבה לתחזוק נעילה דורשת בדרך כללי עד כחצי מרוחב הפולס. כדי לבצע את העקיבה, על המקלט לצפות בשני נתונים כמותיים, שגיאת המופע (phase error) וההזחה בתדירות הנקלטת (received frequency offset). ההתאמה בין קוד ה-PRN הנקלט לבין ה-PRN המחושב מוערכת כדי לקבוע האם הביטים של שני האותות לא מיושרים זה על זה. השוואות בין ה-PRN הנקלט למחושב, מוזחות חצי רוחב פולס קדימה וחצי רוחב פולס אחורה כדי להעריך את ההתאמה הנדרשת. כמות התיקון הנדרשת להתאמה מקסימלית משמשת להערכת שגיאת המופע.
הפקודה למייצר התדירות ושינויים נדרשים נוספים בהזחת קוד ה-PRN מחושבים כפונקציה של שגיאת המופע וההזחה בתדירות הנקלטת בתיאום עם חוק השליטה שבשימוש.
מהירות הדופלר מחושבת כפונקציה של הזחת התדירות מהתדר הנומינלי של הגל הנושא. מהירות הדופלר היא רכיב המהירות יחד עם קו הראיה של המקלט ביחס ללוויין.
במהלך קריאת נתונים עוקבים של רצף ה-PRN, תגיע קפיצה פתאומית במופע של 1,023 הביטים הנקלטים של קוד ה-PRN. קפיצה זו מסמנת את תחילת ביט המידע של מסר הנווט. הדבר מסייע למקלט להתחיל לקרוא את רצף הביטים של 20 המילי-שניות של מסר הנווט. מילת ה-TLM בתחילת כל תת-מסגרת של מסגרת הנווט מאפשרת למקלט להבחין בכך שזו תחילת תת-מסגרת וכן לקבוע את זמן המקלט בו התחילה תת-המסגרת. מילת ה-HOW יכולה אז לאפשר למקלט לקבוע איזו תת-מסגרת משודרת. עיכוב של עד כ-30 שניות עד להערכת מיקום ראשונה עלול לקרות אם המקלט צריך לקרוא את נתוני האפמריס לפני חישוב חיתוך המשטחים האליפטיים.