Reference

PSPA Index.txt,
explained.

Every ClassPhoto Suite app can read a PSPA export, and this is the file at the center of it: what the zip contains, what the columns mean, the four things that reliably go wrong, and what each app in the Suite actually does with it.

What PSPA is.

PSPA is the North American yearbook-export standard: a zip of individual student portraits plus a single data file, commonly named Index.txt, that lists who is in which photo. Vendors also call it the yearbook export. GotPhoto, PhotoDay and Captura each produce one, and the yearbook printing companies on the other end read it back in.

What is in the zip.

GotPhoto's own help centre describes its PSPA export as images in the standard sizes 640 by 800 or 1280 by 1600 pixels, a 4:5 ratio either way (0.8), plus a text file it calls the Index File, with an optional CSV alongside it. The photo that comes out for each person is the one the platform marked as their main portrait, not a group shot.

The Index.txt columns.

The parsing code that reads these files documents a canonical, zero-indexed column order: volume, image folder, image file, grade, last name, first name, home room, period, teacher, track, and a reserved eleventh field that different labs fill with a courtesy title or a department. Two of those columns are structural rather than a fact about the child: the image folder is what tells apart two students who both happen to have a photo named 0001.jpg, one in each of two different class folders.

Not every export uses all eleven columns, and the ones that stop early do not agree with each other about what that means. A short, seven-column file stops before the long layout's home room slot, and in that shorter shape, the seventh column is the teacher instead. An eight-column file puts the teacher a column later than that. A ninth position is also in circulation, from a third vendor's own documentation. Software that reads Index.txt has to decide the teacher's column by what it actually contains, never only by counting how many columns the file has.

Some exports carry a header row naming these columns; a great many do not. A file with no header row at all is normal for PSPA, not a sign of a broken export.

Anything past the eleventh column is outside the fixed layout. When a lab appends an extra field, a student ID tacked on at the end is typical, the guidelines expect it to be named in an accompanying README.TXT, whose first record labels each extra column in order.

The four things that go wrong.

Per-folder numbering

Some exports number photos starting over inside every folder, so 0001.jpg exists once per class rather than once per school. Software that keys a photo to a student by file name alone, ignoring which folder that file sits in, can print one child under another child's name. Reading the index's own folder column, alongside the file name, is what tells them apart.

.JPG in the index, .jpg on disc

An index row can list a file name in a different letter case than the actual file has on disc. A lookup that compares the two strings exactly can miss a real match over nothing more than capitalization, so a careful reader matches file names without regard to case and can note when it had to.

A headerless index with an ID where the teacher usually sits

Not every headerless layout follows the same column order. One workflow puts a student ID right after roll call, ahead of where a teacher's name would normally sit in the standard layout, so assuming a fixed position for every column, rather than checking what is actually in it, misreads the file.

Retake rows

An index can legitimately repeat a student across more than one row, for a retake or an extra pose. That means a student ID is not always unique per row in every export, which matters if your own code, or a spreadsheet formula, assumes it always is.

What each ClassPhoto Suite app does with it.

ClassPhoto reads PSPA Index.txt, headerless or headed, including per-folder numbering, ALL CAPS rows, leading-zero IDs and staff rows, to key each photo to a class and pull the grade, last name, first name and teacher for that class's composite.

ServiceStix reads PSPA Index.txt as well, including the Captura Workflow layout, where a student ID sits right after roll call and the teacher comes later, a folder for students with no teacher assigned, and class-group rows that stay off the printed sticker sheet.

ClassPhoto IDs reads Index.txt with its photos, picks the ID column by its header or, failing that, by what the column actually contains, and keeps every ID as a string so a leading zero survives. It handles both the 7-column and the 9-column layouts, plus staff rows.

The Principal's Book reads the whole Index.txt family, plus an accompanying README.TXT when one is there, uses the index's own photo-folder column to settle a tie between two identically named files, and keeps IDs as strings throughout.

List Fixer does not read PSPA at all. It goes the other direction: it writes a GotPhoto-ready names list from whatever spreadsheet the school sent.

Getting one from your platform.

GotPhoto's own help centre calls this article "Run a Student Data Export (PSPA)". PhotoDay's export list names the same kind of file "Yearbook (PSPA)". Captura's own documentation calls its version the "PSPA Yearbook Export". Each platform has its own menu for getting there; we are not going to guess at yours, since a wrong click helps nobody. If your platform is not one of these three, send us a sample through the contact form and we will look at it honestly.

PSPA questions.

Do I need to open Index.txt myself?

No. Drop the whole zip into whichever ClassPhoto Suite app you are using and it reads the index for you. Opening it yourself is only useful for confirming what is actually in there before you rely on it.

My Index.txt has no header row. Is that a problem?

No, that is the normal case for PSPA. The apps in the Suite assume the standard column order when there is no header to say otherwise, and adjust when the content itself does not match that assumption.

My export only has seven or eight columns. Is something missing?

Not necessarily. Short PSPA layouts are documented and real; they simply stop before some of the optional fields (home room, period, track) that a longer export includes. What matters is whether the columns that are there, especially the teacher, land in the right field, which is a question of content, not column count.

Does every app in the Suite read PSPA the same way?

They read the same underlying file, but each pulls out what it needs: composites need class and teacher, ID cards need a student ID and a photo, the Principal's Book needs everyone in one list, and List Fixer does not touch PSPA at all. See "What each ClassPhoto Suite app does with it" above for the specifics.

More questions are answered in the main FAQ, or write to us and a real person will answer.