Importing your history
Ten years of games in a spreadsheet? That's not a problem — that's the point. Officials kept records long before apps; RefTraq is built to take those records as-is. And it is not only games: anything you could type into RefTraq by hand, you can hand it as a file.
The paste (or the file)
- Open your spreadsheet (Excel, Google Sheets, whatever).
- Select the schedule rows — include the header row — and copy.
- RefTraq → Settings → Import → paste → Analyze. On a computer you can also Choose a file (.xlsx, .xls, .csv, .tsv, .txt or a PDF) instead of pasting — or hand it a photo of a printed sheet.
RefTraq reads what you gave it and says, in plain words, what it thinks it is — "This looks like a game schedule: 42 rows" — with a row of choices to correct it if it guessed wrong. Excel workbooks (.xlsx) are read as they are, right in your browser — nothing is uploaded anywhere to be converted. A workbook with several tabs shows you the tab names so you can pick the one you mean (the payroll tab, not the export tab). Dates, times and dollar amounts come through as Excel stores them, so a sheet you have kept for years works without reformatting. The older .xls format is read the same way. Numbers and OpenDocument files need a Save As to .xlsx or CSV first.
A PDF is read too, when it was made from a document or a spreadsheet: RefTraq reads the words on each page and where they sit, and puts them back into rows and columns, so a fee sheet's numbers land under the right position headings. A PDF of several pages comes in as one list. A scanned PDF is different: it is a picture of the page, with no words in it to read, and RefTraq says so rather than guessing. Two ways work for one of those: take a screenshot or a photo of the sheet and choose that (see "A photo of a printed sheet" below), or open the PDF, select the table, copy it and paste it here. A PDF locked with a password gets the same two ways. UIL's own fee schedule PDF ("first game / each additional game" by mileage band, one sport a page) comes in as one new fee schedule per sport, with the bands as its travel and every row it could not store honestly listed with why.
Any layout works. The recognizer reads your headers (and knows the common variants — "Fee", "Game Fee", "Pay"; "Site", "Field", "Location"; "Received", "Paid"; "Crew", "Partners", "Officials"…), checks that each column's contents actually match what the header claims, and repairs layouts where they don't. Dates in any format, $ signs, x for paid — all understood. What each game paid can be headed Received, Paid, Amount Received, Amt Paid, Paid Amt, Check Amount, Payment Amount, Pd, Rec'd or Paid ($), among others. A heading that names the amount (Amount Received, Amt Paid) wins over a plain Paid column beside it, and a Paid column of dates is then the day each game was paid. A Check column of check numbers (4471, 4472, larger than the game's fee) is not money: RefTraq leaves it out, says so in the review, and takes the payment from your Paid column instead; a Check column of dollars ($85.00) is still the payment, and so is one with no fee beside it to compare. A Paid cell that says Paid 70 or Pd 70 9/30/25 is $70, paid on that day, not paid in full; a year, a check number or a count after the word ("Pd 2025", "Paid 4471", "Paid 2 games") is not an amount. A Date Received column (or Date Paid, Paid On, Pd Date, Payment Date, Check Date) is the day the money came, so a December game paid in January counts in January's tax year, and a date with no amount means paid, the way an x does. A subject like "Bi-District Football", "Varsity Scrimmage" or "Football Officials Meeting" keeps its playoff round, scrimmage or meeting, so a scrimmage isn't priced like a game and a meeting isn't counted as one. A Status column is read the way you write it: Canceled, cancelled or CXL all mean canceled, and a canceled game is not counted as money you're owed. A status RefTraq doesn't know ("no-show") is kept as you wrote it, and the review says so before anything is saved. A Sport column is read the way RefTraq names the sport, so "HS Football", "High School Football", "Football - HS", "FB", "HS FB" and "FB-V" all come in as Football, beside your calendar's Football, and Stats counts them as one sport. A sport RefTraq doesn't know, or a cell naming two, is kept as you wrote it, and the review lists every spelling it read ("FB → Football"). A misspelling is never corrected on its own: the review lists each sport kept as written ("Footbal (1 game)") under Sports kept as written, where you can pick the sport it means or keep it as it is. An Assignor, Assigner or Assigned by column is the assigning group. With no Sport column, a game takes its sport from its group's name ("Dillon Baseball Umpires" is baseball), so a sheet with football and baseball on one tab keeps them apart. When nothing on the sheet says the sport and its games come from more than one group, the review asks once for each group.
Your Arbiter schedule, as Arbiter gives it
In Arbiter, the Official's Game Schedule report downloads your schedule as far back as Arbiter keeps it, as an .xls file. Hand that file to RefTraq as it is — no Save As, no copying. The report is laid out for printing, with every game taking several lines, and RefTraq reads it that way:
- the date and time, the sport and level (playoff rounds included), the site and both teams;
- your position and your fee — the line with your fee on it is yours;
- everyone else on the crew and their position, so Who you work with counts them.
Download it again every week or so and import it again — nothing is added twice. Each game is remembered by Arbiter's own game number, with its sport and year, because Arbiter uses the same number in more than one sport. A game you already have is only filled in, never added a second time — even one Arbiter has moved to another day. RefTraq tells you when it sees a moved game and never moves it on its own: tap Move it beside that game, or Move all when there are several, and it takes Arbiter's new date (and time, when Arbiter gives one). The game's History keeps the old date.
If your calendar feed is connected, games still to come are left for the feed to bring in, so a game cannot arrive once from the feed and once from the file. A game from your feed that Arbiter seems to have moved is asked about instead of added.
The report fills in what the feed leaves out. Arbiter's calendar feed names only one team, so games from your feed have no opponent. Import the report (or a copy of your schedule page) and each feed game it matches gets the opponent, and a playoff gets its game type and round. Only what the game is missing is filled in: an opponent, type or round it already has stays as it is, and an opponent is added only when the report lists the same school first, so a game is never given its own team as the opponent. The review says how many, like "Opponent added to 14 games". The feed keeps updating these games as before. When this season's feed games have no opponent, Needs attention on the Schedule says how many, with a link here.
What RefTraq does with the rest:
- A fee Arbiter shows as $0.00 is read as a fee nobody has entered yet, not as a game that pays nothing — so your fee schedules can still price it.
- A game Arbiter marks canceled is kept, marked canceled. A game you already have is marked canceled too; its fees and payment are left alone.
- Arbiter prints one figure for what a game pays. If you already split a game into a game fee and a travel fee, your split stays as it is.
- Other officials' phone numbers and the assigner's notes are never kept. The report has both; RefTraq reads past them.
Seasons Arbiter no longer shows you
Arbiter shows you only the games your assigning group still keeps. For years, Arbiter advised assigners to clear the past season before starting the next, and most did — which is why your older seasons are missing from your schedule. The person who can get them back is your assigner, not Arbiter. Since February 2025, clearing a game archives it instead of deleting it, and your assigner can restore an archived game or send you a list. Many assigners also saved a copy before clearing a season.
Stats → Missing seasons? Get them back (also on the Import screen) writes the email for you: pick the years and the group, and Open it in my email puts the draft in your own email app for you to check and send. It asks for your own games only, never other officials' details. RefTraq never sends it and never keeps your assigner's address. When the list comes back, import it here like any other file.
The same page has what to save now, before this season goes the same way:
- Your schedule report, at the widest date range Arbiter allows — import it here.
- Your ArbiterPay payment history, downloaded as a CSV. It may reach further back than your schedule, but only for schools that paid you through ArbiterPay.
- Your 1099s. Arbiter keeps only the last three years and says it cannot get older ones back, so download every year it offers.
The review — nothing writes until you say so
Analyze shows you exactly what will happen, in buckets:
- New games — rows RefTraq has never seen become new games.
- Fills — rows matching an existing game (by date, venue, level, position, time) fill in missing fees and paid status. Your existing numbers are never overwritten — if the sheet disagrees with a value you already have, the conflict is shown, not applied.
- Ambiguous — rows the engine refuses to guess about: usually double-headers with no time column (add a Time column and re-paste to resolve). Untouched until you decide.
- The same row twice — a row your file has twice, word for word, is read once and the second copy is left out. If it really was two games that day, add a Time column and import again, or add the second game by hand.
- Already imported / up to date — skipped. Importing the same file twice changes nothing, ever, and the app tells you so.
What the review asks about payments
Money is where a sheet and RefTraq most often disagree, so the review asks before it counts:
- One check for several games. A school often pays several games with one check, and a sheet writes it two ways: the check's amount on every game ($340 four times), or on the first game with the others marked paid. Counted once per game, that is money you never got. When games from one school, paid on one day, add up to the check, the review lists them under One check for several games and waits for you to choose: record each game's own fee (four games at $85 from one $340 check, all dated the day the check came) or import as written. Nothing is split until you choose, and Import waits until you do.
- Paid less than the fee. A game the file adds paid less than its fee (the school never paid the travel) is listed under Paid less than the fee. A game played more than six months ago is added as That's all they paid, so years of history don't show up as money still owed; a newer game stays Still owed, since its money may still come. Either answer can be changed, game by game, before you import, and later on the game itself.
- A different Paid Date. When the file says a payment came on another day than the one your game has, and the game was paid in one payment, the review shows both. The day decides which tax year the money counts in, so Use the file's date is there if the file is right; your date stays otherwise. A game paid in parts is never asked, so its parts keep their own days.
- The rest of a payment. When your game has part of its fee and the file writes a larger amount, with a day after the payment you have, the review offers Record the rest: "$30 on Jan 8, 2026" is added as a payment of its own, and the $70 you already had keeps its own date and its own year. A payment is never written over another. Payments a file records are marked as imported.
Rows RefTraq couldn't place
A real spreadsheet has more in it than games. For every row RefTraq can't place, the review says what's wrong, shows the row as your sheet has it, and offers the fix — you confirm.
- Not games — formula errors like #REF!, a totals row (with or without a "Total" label), a note, or a second table below the games (a mileage-zone list, a paysheet). These are left out, in one line, with a Show all link if you want to check.
- A time on its own line — how an Arbiter schedule page copies, with the time on the line under the date. Each one is joined to the game above it.
- No date — if one of your games already matches the row (the same school and one more thing: the level, your position, the time or the fee), RefTraq suggests that day and says why. It never suggests a game another row of the same sheet already stands for, so a second game at one field can't be merged into the first, and never a game against a different opponent than the row names. When nothing matches, it asks, and says where the row sits on the sheet ("between your Apr 25 and May 2 games").
- A date that isn't one — "3.28" or "Sep 7" with no year takes the year of the rows around it, or of the tab's name. A day the month doesn't have, like 9/31 or Feb 30, 2026, offers the two real days next to it, and a game you already have decides between them when it can.
- Marked paid, with no amount — a game whose fee on the sheet is $0 is settled with nothing owed, and a meeting is imported without a payment. Otherwise RefTraq asks. It never picks an amount for you: a matching game's own fee may be offered, marked suggested, and waits for your tap.
Type an answer, tap a suggestion — Use all suggestions takes every one at once — or choose Leave it out. A row you haven't answered is skipped, and the review says so.
Everything else: fee sheets, rings, sites, mileage, expenses, feeds
Every list in RefTraq that you could fill in by hand has two small links under it — Import from a file and Download template. The template is a CSV with the right headers and a couple of example rows; fill it in (or ignore it and use your own spreadsheet — the headers are recognized in most of the ways people write them) and bring it back through Import.
| What | Where the links live | What a row is |
|---|---|---|
| Fee rules | Settings → Pay → Fee rules, line by line → a schedule | level, game type, round, position, 1st or 2nd game, crew size, format, game fee, travel fee, per diem |
| Rate table | Import (its rates move into your fee schedules) | sport, level, position, assigning group, game fee, travel fee |
| Travel fee bands | Settings → Pay → Travel fee bands | a mile range such as 0–25 or 50+, and the flat fee |
| My sites | Settings → Pay → My sites | site name, address, one-way miles from home, and (optional) sport, level and neutral site |
| Mileage | Track → Drives | date, from, to, round-trip miles, purpose, whether you drove |
| Expenses | Track → Expenses | date, category, merchant, amount, deductible percent, how you paid |
| Calendar feeds | Settings → Calendar feeds | the feed URL, an optional sport, on or off |
A row your file has twice comes in once, and the review counts the second copy as one that "repeats a row above", apart from the ones you already had. If the two copies disagree, the first row's value is kept and the review shows both, worded as "a later row says 30, the first row says 25.4".
A mileage log you kept yourself
A mileage log imports the way you kept it. A Miles column is the round trip. A column of one-way miles ("Miles (one way)", "One Way Miles") is doubled, because every drive RefTraq logs is a round trip, and the column mapping says so. Start and end odometer readings give the distance between them; a reading is never taken for the miles themselves. Whether you drove can come from a Drove column, a Passenger column (Passenger: Yes is a ride, and a ride deducts nothing for you) or a Driver column ("me" is you). A Driver column with someone else's name, or two columns that disagree, asks instead of guessing. "25.4 mi" and "1,028 miles" are read as numbers. A Total row under the log, or under a list of expenses, is left out, and the review says it adds up the rows above it.
A list of sites you kept yourself
A site keeps its one-way miles from home, because every drive logged to it is doubled into a round trip. A round-trip column ("Round Trip Miles", "Miles (round trip)") is halved when it comes in; if the file has both and they disagree, the row asks. An address split into Street, City, State and ZIP columns is put back together, so the drive is timed to the right town. A city with no street is not made into an address: a drive timed to the middle of a town would give you a leave time you can't trust. Add the street in My sites; while a game there is coming up, Home's Time your drives card names the site. A Travel pay column sets each site's travel pay: None, a flat amount like $10, or a rate like "$0.50 a mile", with an Assigner column to set it for one assigner (N/A or TBD is left blank, never $0); a site that already has travel pay keeps it, and a different figure in the file is shown, not applied. A Sport or Level column says which games a site is for, so one school's football stadium and baseball diamond can be two rows of one file, and a Neutral column (Yes or No) marks a playoff stadium.
A fee sheet, a rate table or travel rings you kept yourself
A fee sheet is read in the words people use. A Game Type column can say Regular Season, Playoffs, Scrimmage, Tournament or District, and a round written there ("Bi-District") comes in as a playoff with its round. A Crew column can say "5-man" or "3-person", and a Game or Doubleheader column can say "1st game" and "2nd game", so a doubleheader's second game keeps its own fee instead of folding into the first. A rate table's Assignor or Organization column is the assigning group. One "N/A" or "Volunteer" in a fee column no longer hides the fees under it; that row comes in with no fee, never $0 (write 0 if it pays nothing).
Travel rings can be written the way chapters print them: "0 to 30 miles", "31 to 60", "90 and over", "Less than 30" or UIL's "1–30.9". A ladder written in whole miles or starting at 1 is closed up so every distance has a ring; a real gap between rings is left for you to fix. A Ring column of names beside a Miles column is fine, and a per-mile rate can say "$0.50 per mile" or "50¢ a mile". In a list of calendar feeds, Off, Paused and Inactive mean the feed is off.
A card or bank statement as expenses
The download from your card or bank's website imports as expenses. Banks write money two ways: some show a purchase as a negative amount and a payment as a positive one, others the reverse, and some put payments in a Credit column of their own. RefTraq reads the whole file to tell which is which. A row that says it's a payment, a refund or a return decides it; otherwise the sign most rows carry is a purchase. Purchases come in as expenses, and the card payments, refunds and deposits are left out, listed in the review so you can see them. If a file has as many of one sign as the other and nothing in it says which are payments, RefTraq asks instead of guessing. Amounts written as (64.99), 64.99- or 64.99 CR are read as negative amounts, so whether they are purchases or payments is decided the same way, by the file as a whole.
A statement holds more than officiating. Uncheck anything that wasn't for officiating before you import. A row whose category is the bank's own word, like "Shopping", or is blank, matches none of RefTraq's categories and would come in as Other, which counts in full, so those rows start unchecked with a line saying why. Check the ones that were for officiating to bring them in as Other, or give them a category in the file and import it again. Rows the bank already filed under a category RefTraq knows, like "Gas" or "Food & Drink", start checked.
A category RefTraq reads from a word files where that word belongs. "Office", "Office Supply", "Printer ink" and an OFFICE DEPOT charge are Office Supplies, and "Printing" or "Postage" is Postage & Printing. A home office named in so many words ("Home office supplies"), or an office's rent or bills, is a home office cost. "Assigning fee" is Assignor & Chapter Fees and "Arbiter fee" is Software & Subscriptions; a fee an assigner, a chapter or Arbiter took starts unchecked, because if the pay you recorded is what reached you after it, it's already off your pay. Gym dues and a gym or YMCA membership are Gym / Fitness, at 0%, not Registration & Dues. A row whose category says Mileage, "Miles" or "Auto mileage" is left out with a line saying why: miles count from your mileage log, so import those drives as Mileage instead and they are never deducted twice.
Two shapes of fee sheet are understood. A list has one rule per row. A grid is the way chapters actually publish fees — levels down the side, positions across the top, the fee in each cell — and RefTraq unpivots it into one rule per cell. Fee rules land in the schedule you opened the link from; on the Import screen you can pick a different one.
A photo of a printed sheet
Most chapters hand out fees on paper. Take a picture of it — or a screenshot of a scanned PDF — and choose it on the Import screen the same way you would choose a spreadsheet. PNG, JPEG and WebP are read (a PDF that was not scanned can be chosen as it is). GIF, TIFF and BMP are not; save one as PNG or JPEG first. On an iPhone, Photos sometimes saves as HEIC, which browsers cannot open; the screen says so and tells you how to export a JPEG.
A picture is read by Chief's reader, the one reader RefTraq has. Choose it and the Import screen shows Read the picture; tap it, say the picture isn't a check, and the picture goes to Anthropic to be read (see "Having Chief read it" below). Nothing on your device reads it, and nothing is sent until you tap. When reading isn't available or your reads are used up, the screen says so; paste or type the numbers instead.
What comes back is a table, not a paragraph. RefTraq puts the words back into rows and columns by where they sat on the page, which is what makes a fee land under the right position heading — the whole point of a fee sheet. A cell that was blank on the paper stays blank rather than sliding the next number into its place. Then it goes through the normal review: you see every row before anything is saved.
A flat, straight-on photo in good light reads best. Whatever comes back, you review every row before anything is saved, and a row you can fix in ten seconds beats being told to start over.
The same rules apply as for games. Rows you already have are recognized and skipped. A row that fills a blank on something you have fills it; a row that disagrees with a value you already have is shown as a conflict and never applied. A 0 is a real fee ("this pays nothing"); a blank cell means "not set". Travel bands are checked as a whole ladder — if the file leaves a gap or an overlap, nothing is saved and the screen says where. A new season's rings imported over the ladder you already have would overlap it, so when you have one the review also offers Replace my ladder with these bands: it names the ladder it takes out, saves the file's ladder in its place, and Undo puts the old one back. Every row on the review screen has a checkbox; uncheck anything you do not want and press Import.
Having Chief read it
Chief's reader is how RefTraq reads every picture: Read the picture here, Read the check on Photograph a check, and Read the receipt in Add an expense. It also reads files that beat RefTraq's own file reading: a scanned PDF, a payroll tracker laid out like nothing else. When that happens the Import screen suggests Have Chief read it, and the button is there whenever you read something in, a pasted or spreadsheet text included, if you would rather choose it yourself.
The first time on a device, RefTraq says what happens before anything is sent, and sends nothing until you agree. The file, picture or pasted text you chose goes to Anthropic, whose Claude model copies the dates, names and amounts off it. On Photograph a check, a check's bank line (the routing and account numbers) is blacked out on your device first, and only the part above it is sent. A payment screenshot, a stub with no bank line, or a picture you tell the Import screen isn't a check goes as you cropped it. Under Anthropic's commercial terms, what is sent is not used to train its models by default. RefTraq doesn't store the document or the reading.
The reader never saves anything. What it copies comes back to your device and goes into the same review as a paste: every row with its checkbox, every rule above. On a check or a receipt it fills only the boxes you left blank, never one you typed. Every amount is checked against the document: an amount the reader gave that the file does not show is left out, and the review names it ("Left out an amount the reader gave that the document does not show…") so you can type it yourself if it is right. A reading from a spreadsheet or a PDF with its own text is checked against that text; a reading from a photo is checked against the lines the reader says it copied, so look at the picture as you review.
Everyone gets a starter allowance of these reads, and Pro adds more each month. The button says how many you have left. A PDF of several pages counts as one read. When you are out, RefTraq says when more come back, and you can still import the file as it is or type it in.
Practical tips
- One season per paste is easiest to review, but the engine handles a full multi-year sheet fine.
- Separate files per sport or per year? Paste them one after another — overlapping rows are recognized and skipped automatically.
- A Time column is the single biggest matching improvement you can make — it's what tells two games at the same field on the same day apart.
- A Crew column saves who worked each game with you: the names separated by commas, a position in brackets if you like ("Tim Riggins (Umpire), Matt Saracen"). RefTraq adds your own line from Settings → Your name — if the name is not set, the review asks for it before anything is imported. A game that already has a crew keeps it.
- A Meal money (or Per diem) column brings in meal money you were paid, beside the game fee and travel. It counts toward what the game pays you, and an
xin a Paid column then means the fees and the meal money together. A column headed only Meals is left alone, because in a sheet that is as often what you spent as what you were given; rename it if it is pay. A game that already has meal money set keeps it, and the review asks if the file disagrees.
When the file disagrees with you
An import fills blanks. It will not quietly change a number you already have — if your sheet says a game paid $150 and RefTraq has $105, that is a disagreement, and it is shown to you rather than applied.
You settle it on the review screen, before anything is written:
- "The file is right about all of these" takes the file's number for every disagreement at once. That is the common case — a payroll sheet you know is authoritative, forty rows at a time.
- Or take them one at a time with Use the file's number on the row.
- Anything you do not answer keeps your number. Silence is an answer.
- Start these over puts every question back if you change your mind.
- A game paid in parts (say $95 by check #4471 in December and $30 in January) is never asked about what was received: taking the file's total would make it one payment on one day, in one tax year. The review lists it as kept, and you change the payment that is wrong on the game itself. On a game with one payment, Use the file's number changes that payment and keeps its day and check number. If that payment changed after the file was read, that game is left as it is and the import says so with Open the game; the rest of the file is still imported.
Nothing is written until you tap Import, and the summary afterward says how many values you settled in the file's favor — so an overwrite is never something you only find out about later.