Technical documentation

Gamtty’s limits, formats, behaviours and approximations, verified against the code. If anything here differs from the product, the mistake is ours — open a ticket.

Updated on August 3, 2026

Input file

Everything starts with Primavera P6's native export. These are the rules your file has to meet.

Accepted extension
Only .xer — P6's native export. We do not accept .mpp, .xml, .xlsx or .pdf.
Extension case
The extension must be lowercase: schedule.xer is accepted, SCHEDULE.XER is refused. Rename it before uploading.
Maximum size
100 MiB (104,857,600 bytes). Above that the upload is refused with "File too large (100 MB max)".
Accepted encodings
cp1252 (Windows-1252), UTF-8 and latin-1 (ISO-8859-1), tried in that order. If none decodes the file, the conversion fails.
Field separator
Tab — the XER standard. Do not edit the file in a text editor before uploading.
Decimal separator
Period or comma. A P6 install configured for a European locale exports "298,5"; Gamtty normalises it automatically.
Date format in the file
YYYY-MM-DD or YYYY-MM-DD HH:MM. Dates in any other format are ignored and the field is left empty.

About accents and special characters: activity names with accents, cedillas or symbols are preserved. The three-encoding tolerance exists precisely because P6 installs in Latin locales write the file in cp1252, not UTF-8. If your file comes from a system with an unusual encoding and the conversion fails, re-export from P6 rather than converting the text by hand.

The size limit is checked at the end of the upload: a 500 MB file is transmitted in full before the refusal appears. On a slow connection, check the size first.

The reader parses 14 tables. Tables outside this list are simply ignored — they cause no error.

TableWhat Gamtty extracts
PROJECTProject: code, name, data date
PROJWBSWork breakdown structure (WBS)
TASKActivities, durations, dates and float
TASKPREDPredecessor relationships
ACTVTYPEActivity code types
ACTVCODEActivity code values
TASKACTVActivity codes assigned per activity
UDFTYPEUser-defined field types
UDFVALUEUser-defined field values
CALENDARCalendars and working days
RSRCResources
RSRCCURVResource curves (21 points)
RSRCRATEResource availability limits
TASKRSRCResource assignment per activity

How conversion works

Processing is asynchronous: the browser is not blocked waiting, and you follow progress in real time.

  • The file is uploaded and a job is created.
  • A background worker reads the XER and rebuilds project, WBS, activities, relationships, calendars and resources in the database.
  • The spreadsheet is assembled and becomes available to download.
  • Progress reaches the browser over a live connection (Server-Sent Events), with named stages — reading XER, processing hierarchy, inserting activities, building Excel.
Uploads per minute
Up to 20 uploads per minute per IP address. The rest of the API accepts 60 requests per minute.
WBS level
The root is level 1. The rebuild guards against circular references — a WBS with a cycle will not hang processing.
Processing failure
The job gets an error status and the technical failure message. A failed conversion does not consume your quota.

Spreadsheet and columns

There are two exporters: the standard one, available to everyone, and the custom one, on the Pro plan.

The standard spreadsheet has one sheet named Cronograma, with five columns and the WBS rebuilt as collapsible Excel groups.

ColumnSource
Activity IDActivity code in P6
Activity NameActivity description
Original DurationOriginal duration
StartActual start date; the planned date when there is none
FinishActual finish date; the planned date when there is none
WBS colours
Seven levels with their own colour. Beyond level 7, colours 5 to 7 repeat.
Actual dates
Highlighted in dark green italics, to tell them apart from planned ones.
Header
Frozen pane and auto-filter already applied.
Date format
dd/mm/yyyy, written as text — not as an Excel serial date.

The Pro custom exporter offers 27 standard columns, in this order, and you choose which ones go in and in what sequence:

  • Activity ID
  • Activity Name
  • Original Duration
  • Remaining Duration
  • Physical % Complete
  • Total Float
  • Free Float
  • Activity Type
  • Activity Status
  • Target Start
  • Target Finish
  • Actual Start
  • Actual Finish
  • Early Start
  • Early Finish
  • Late Start
  • Late Finish
  • Primary Constraint
  • Constraint Date
  • Suspend Date
  • Resume Date
  • WBS
  • Schedule % Complete
  • Duration % Complete
  • Units % Complete
  • Labor Units % Complete
  • Nonlabor Units % Complete
Activity codes
One column per activity code type present in your file. The list is discovered on upload, it is not fixed.
User-defined fields (UDF)
One column per UDF type present in the file. A schedule with 12 UDFs offers all 12.
Total Float and Free Float
P6 stores float in hours; the export converts to days by dividing by 8, to one decimal place.
Units % columns
Follow P6's formula: actual ÷ (actual + remaining) × 100. When there is no quantity on that basis, the cell is left empty instead of showing 0%.
Preview before exporting
Shows the first five activities with your chosen columns.
Column widths
Auto-fitted between 10 and 60 characters. Activity Name is left-aligned; the rest are centred.

Plans and usage limits

Free plan
One conversion every 45 days. It is an interval between conversions, not a monthly quota: the count starts from your last completed conversion.
What counts as a conversion
Each .xer file processed successfully. A failed job does not consume the interval.
When the limit is checked
Before the file is written. If you are still within the interval, the upload is refused and the next available date appears in the message.
Spreadsheet mark (free)
The first row carries a banner inviting you to Pro to remove it, and the sheet is protected against casual editing.
Pro plan
Unlimited conversions, no mark, and access to Workspace: S-curve, EVM indicators, DCMA assessment, Baseline Integrity, dashboards, PDF report and Dynamic Mode.

About sheet protection: it prevents casual removal through Excel's interface, it is not encryption. It is not a security measure — it is a UI brake, and we would rather say so than suggest otherwise.

If Pro access is revoked, the 45-day interval resumes from your most recent conversion, including ones made during the Pro period — it does not reset to the pre-subscription state.

Data retention and deletion

What is deleted, when, and what stays. This section is deliberately literal.

Deleted in ~30 minutes
The .xer file you uploaded and the standard spreadsheet generated, both removed from disk, plus the job record.
Not deleted in that window
The custom spreadsheet generated by the Pro exporter stays on disk. Project data — activities, WBS, relationships, resources — stays in the database: it is what feeds the Workspace modules.
Configurable window
The 30 minutes are the installation default and can be adjusted by the environment operator.

Why we do not delete everything: if project data were discarded along with the file, S-curve, indicators and assessments would need a fresh upload on every open, and Dynamic Mode would not exist. If you want a project gone, delete it from Workspace.

Account, access and session

Session
httpOnly cookie with a signed token (JWT, HS256), valid for 30 days. There is no API token for external use.
Two-step sign-up
A temporary 20-minute cookie covers the gap between creating the account and completing profile and verification.
Social login
Google, Microsoft and GitHub.
SMS verification
A code is sent by SMS when finishing sign-up, limited to 5 requests per minute.
Password
Stored with bcrypt. The form asks for at least 8 characters.
Account created via social login
Can set a password later without providing a previous one — because there was none.

About the 8-character minimum: today that requirement is validated by the browser, in the form. We recommend a long, unique password regardless — and preferably social login, which needs no password at all.

Output formats

Spreadsheet
.xlsx file (Excel 2007 or later, and any compatible editor: LibreOffice, Google Sheets, Numbers).
File name
The same as the uploaded file, with the extension swapped. The custom version gets a suffix.
Report
PDF generated on the server, with a cover, charts embedded as images and up to 13 selectable sections.
PDF page orientation
S-curve, Resource Charts and WBS Progress come out in landscape, because their charts are illegible squeezed into portrait. The other sections are portrait.
Workspace exports
Baseline Integrity exports to .xlsx, by dimension or all in one workbook.

Declared approximations and limitations

Where a calculation is an approximation, we say which and why. None of these is a defect: they are documented engineering choices, and you deserve to know them before taking a number into a meeting.

DCMA — point 12 (Critical Path Test)
A structural approximation: it detects an isolated critical activity, with no critical predecessor or successor, which indicates a logic break. It is not the literal test of adding 600 days and recomputing CPM. The result is flagged as an approximation on screen.
DCMA — point 13 (CPLI)
Critical path length is measured in calendar days. Total float already comes calculated by P6, respecting the calendar.
DCMA — point 8 (High Duration)
Applies the 44-day threshold without the Rolling Wave exception from the November 2009 revision.
DCMA — point 5 (Hard Constraints)
Uses P6's constraint set, not the MS Project-oriented list that appears in some versions of the checklist.
S-curve — holidays
Distribution uses the calendar's working-weekday pattern (Monday to Friday, or 7 days) but ignores the holiday list. P6 "24h" calendars post every weekend as an exception — thousands of entries — and honouring them would exclude nearly every day in the project, collapsing the curve. For a monthly S-curve, individual public holidays have negligible impact.
Schedule % Complete
Approximated by calendar days between early start and early finish. Milestones read as 100% the moment their date arrives.
Float in hours
P6 stores float in hours. We convert to days by dividing by 8 across the interface and the exports.
Resource identifiers
P6's internal resource id is unique within each file, not across files. When comparing two revisions, resources are reconciled by name.
Resource levelling
The Levelling and Combined models are different readings of the same histogram data; there is no separate levelling calculation behind them.

Error messages

What each refusal means and what to do.

MessageCause and fix
Only .xer files are acceptedThe extension is not lowercase .xer. Rename the file or re-export from P6.
File too large (100 MB max)The file exceeds 100 MiB. Export a smaller slice of the schedule or drop projects you do not need from the export.
Free plan limit: 1 conversion every 45 daysYou are within the interval between conversions. The next available date comes in the message; the Pro plan removes the limit.
Available only on the Pro planThe feature belongs to Workspace. Subscribe to Pro to unlock it.
Job not found or not yet completedThe conversion is still running, or the job has passed the 30-minute retention window.
File not found on serverThe retention window expired and the file was deleted. Convert again.
Invalid or expired codeThe SMS code expired or was mistyped. Request a new one.
Not authenticatedThe session expired or the cookie was blocked. Sign in again and check that your browser accepts cookies from the site.

Error during processing: when the failure happens while reading the file, the message shown is the technical exception text, not a curated one. If it makes no sense, open a ticket with the file name and the message — that is the fastest route.

Browser requirements

  • A current browser with native ES module support — recent Chrome, Edge, Firefox or Safari.
  • JavaScript enabled: the application is a single-page interface.
  • Site cookies allowed. The session depends on a cookie; blocking it prevents sign-in.
  • A live connection (Server-Sent Events) to follow conversion progress in real time.
  • File drag-and-drop, if you prefer it to the file picker.
Dashboard editor
Only available on desktop, on screens of 1024 px or wider. Building uses drag-and-drop on a 12-column grid, which becomes unusable on a small screen. Viewing dashboards works at any size.
Languages
Portuguese and English, including API error messages. The language follows your choice on the site.

One honest caveat: the PDF report content is generated on the server and remains in Portuguese even with the interface in English. The titles of the 14 DCMA points also come from the server in Portuguese.

API reference

The API is internal, used by the application itself. There is no API token for external integration: authentication is by session cookie, and there is no key you can issue. This reference is here to explain product behaviour, not to automate from outside.

All paths are prefixed with /api/v1. Workspace routes require an authenticated session and the Pro plan.

Method and routeWhat it doesRequires
POST /uploadReceives the .xer, validates extension, plan interval and size, and starts the conversionSession
GET /jobs/{id}/statusCurrent conversion statusSession
GET /jobs/{id}/progressReal-time progress (live connection)Session
GET /jobs/{id}/downloadDownloads the standard spreadsheetSession
GET /jobs/{id}/available-fieldsStandard columns, activity codes and UDFs available in the filePro
GET /jobs/{id}/previewPreview of five activities with the chosen columnsPro
POST /jobs/{id}/exportGenerates the custom spreadsheetPro
GET /jobs/{id}/download-customDownloads the custom spreadsheetSession
GET, POST /user-projectsLists and creates Workspace projectsPro
GET, POST, DELETE /user-projects/{id}/schedulesThe project's schedule library, and which one is activePro
GET /user-projects/{id}/scurveS-curve of the baseline and current pairPro
GET /user-projects/{id}/kpisEVM indicatorsPro
GET /user-projects/{id}/dcma-assessment14-point DCMA assessmentPro
GET /user-projects/{id}/baseline-adherenceBaseline Integrity across six dimensionsPro
GET, POST, PUT, DELETE /user-projects/{id}/dashboardsCustom dashboardsPro
GET /user-projects/{id}/general-report/pdfGeneral report as PDFPro
POST /auth/signup, /auth/login, /auth/logoutSign-up, sign-in and sign-out
GET /auth/meCurrent session dataSession
GET, POST /support/ticketsSupport ticketsSession

Rate limits: 60 per minute per IP address overall, 20 per minute on file upload, 10 per minute on sign-up, sign-in and password change, and 5 per minute on sending an SMS code.