An XER file is P6's plain-text export format. Despite the intimidating structure, it's tab-delimited text you can open in Notepad — no special tools required. Click any line below to see what it means.
The %T / %F / %R structure
Every table in an XER follows the same three-line-type pattern: a %T line names the table, a %F line lists the field names for every row that follows, and each %R line is one record, with values in the same order as the %F line above it. Tab characters separate every field — not spaces, not commas.
Windows-1252 encoding
XER files are encoded in Windows-1252, not UTF-8. If an activity name or resource description contains an extended character (curly quotes, accented letters, the degree symbol), opening or parsing the file as UTF-8 will corrupt those characters. Any parser reading XER files needs to decode as Windows-1252 first.
Key tables
- PROJECT — one row per project in the file, including the data date and scheduling settings like
critical_path_type. - TASK — one row per activity: code, name, dates, calendar assignment, float.
- TASKPRED — one row per logic link (relationship) between two activities.
- CALENDAR — one row per calendar, with the working/non-working day pattern packed into its own
clndr_datafield. - TASKRSRC — one row per resource assignment to an activity (units, cost, rates).
How TASKPRED links activities
Each TASKPRED row names a predecessor task, a successor task, and a relationship type. A CPM engine builds its entire network graph from these rows alone — without them, TASK rows are just an unordered list of activities with no logic between them.
Why the file has no schedule results baked in
A freshly exported XER carries the dates and float from whenever it was last scheduled inside P6 — but nothing forces those numbers to be current. If someone edited logic, durations or calendars after the last F9 (Schedule) run, the stored dates in TASK are stale until it's rescheduled. A tool reading the file directly can trust the stored dates only as much as it trusts that the file was scheduled immediately before export — which is exactly why an independent CPM recompute, run straight from TASK and TASKPRED, is worth having as a cross-check.