Indian National Flag
Celebrating India's 80th Independence Day Special Independence Festival Offer · Flat 75% OFF All Schedulytics Tools
Ashoka Chakra Rosette Emblem ⭐ 75% OFF SPECIAL Ends 20 September 2026
Technical Architecture & Data Reference

Primavera P6 XER File Format & Table Structure

An engineer's deep dive into the internal relational architecture of Oracle Primavera P6 .xer files: understanding %T tables, %F fields, %R records, and foreign key relationships.

What is an XER File?

An XER file is a proprietary ASCII text file exported by Oracle Primavera P6 (Project Management). Despite ending in .xer, it is actually a serialized dump of relational database tables separated by tab delimiters (\t).

Inside an XER file, a project schedule is not stored as a flat list of dates. It is stored as normalized database entities connected by primary and foreign keys—just like in Oracle Database or Microsoft SQL Server.

The Three Core Syntax Tokens: %T, %F, and %R

If you open an uncompressed XER file in a text editor (such as VS Code or Notepad++), you will immediately notice three repeating prefix markers:

  • %T [TABLE_NAME]Table Header: Declares the start of a database table (e.g. %T TASK).
  • %F [field1] [field2] ...Field List: Lists the tab-separated column names for that table.
  • %R [val1] [val2] ...Record Row: Represents a single row of data matching the fields above.
ERMHDR  22.12  2026-09-13  PROJECT
%T  PROJECT
%F  proj_id  proj_short_name  plan_start_date  plan_end_date
%R  1042     EXP-2026-01      2026-01-15       2027-08-30
%T  TASK
%F  task_id  proj_id  wbs_id  task_code  task_name  total_float_hr_cnt
%R  85912    1042     502     A1000      Mobilization  0.0
%R  85913    1042     502     A1010      Site Clearing 0.0

The Most Critical Tables in an XER File

A full P6 XER export often contains between 40 and 90 tables. The most important tables that govern schedule calculations and reporting are:

Table Token Table Name Description & Key Columns
%T PROJECT Project Header Stores project metadata, calendar assignments, planned start, scheduled finish, and data date (last_recalc_date).
%T PROJWBS WBS Tree Hierarchical Work Breakdown Structure tree nodes linked by parent_wbs_id and wbs_short_name.
%T TASK Activity Master All activities: task_code (Activity ID), task_name, early start, early finish, late start, total float, and status.
%T TASKPRED Logic Relationships Predecessor/successor links (pred_task_id, task_id), relationship type (PR_FS, PR_SS, PR_FF), and lag (lag_hr_cnt).
%T CALENDAR Work Calendars Working days per week, standard shift hours (day_hr_cnt), and holiday exception strings.
%T TASKRSRC Resource Assignments Budgeted units, remaining units, actual units, cost accounts, and rate tables assigned to activities.

Why Can't Excel or Python Parse XER Files Out-of-the-Box?

Many engineers attempt to rename an .xer file to .csv and open it in Excel. The result is unreadable because Excel attempts to treat all 60+ tables as a single continuous flat sheet, mixing project parameters with activity rows and calendar definitions.

Furthermore, calculating the Critical Path and float requires evaluating every relationship in TASKPRED against the specific work calendar shift hours defined in CALENDAR.

How Schedulytics Solves XER Parsing Offline

Schedulytics was built specifically to solve this challenge. It features a standalone, in-memory C++/Python parser that:

  • Reads the entire XER table schema in seconds without an external database.
  • Resolves relational foreign keys into human-readable WBS hierarchies and activity codes.
  • Executes independent Critical Path forward and backward pass calculations.
  • Outputs clean, ready-to-use 22-sheet Excel workbooks and interactive single-file HTML dashboards.

Audit and Report on P6 XER Files in Seconds

Download Baseline Schedulytics or Progress Schedulytics from the Microsoft Store for instant, 100% offline schedule analysis.

Audit P6 Baseline XER →

Related Reference Guides