Restrict a user to specific scoreboards

You can now limit a login to specific scoreboards. Many of you who work with streaming providers have asked for this.

Until now, a user with the Graphics role could see and control every scoreboard at your show. That was a problem when you gave a streaming provider, for example Clip My Horse, a login to run the TV graphics. Their operator could open any display at the venue, not just their own.

Now you can enter one or more scoreboard IDs on the user's access, under Users on the organizer. The ID is the last part of the scoreboard URL. The user then only sees those scoreboards, and the director runs without edit options. They can switch scenes, select starts and change competition, but they cannot edit scenes, change settings, upload assets or delete anything.

User access control

Scoreboard IDs are kept when you import scoreboards from another show, or when a show is created from a template. So if you set this up once for a streaming provider, their login keeps working at your next show.

Leave the field empty and the login works like before, with access to all scoreboards.

Resolve start time conflicts automatically

Riders often have several horses, and on a busy day their competitions run at the same time in different arenas. You want enough time between each of their starts so they can get from one ring to the next and ride every horse. Working that out by hand across a full day, with arenas running in parallel, takes ages. The schedule now does it for you.

On the check start times view, set how much time you want between starts, then press the resolve button. It runs in the background, looks across the whole day and every arena, finds the riders and horses with clashing times, and swaps positions to fix them. It respects section boundaries, age groups in young horse competitions, riders with several horses, and pauses, so it never moves something it shouldn't. A progress bar shows what it is doing while it works through the harder cases.

Tested live at a CSI4*

We ran it live at a CSI4* this month. First randomize, which spaces a rider's horses by a number of starts (30 to 60 here). Then run the resolver, which works in minutes, with a 60 minute minimum on top. The verdict from the show was that the new wizard works super. The nice part is how fast it is to check. Run it, look at what is left, and you know in seconds whether the day holds together.

image.png 337 KB

What we improved this week

Two things came straight out of using it at the show.

  • Start numbers now follow the new order. When the resolver moves a horse to a new spot, its start number moves with it, so the printed start number matches the running order. Competitions that already have results keep their numbers, as you would expect.
  • Conflicts that can't be solved are easier to spot. If a competition is shorter than the gap you asked for, no reordering can open up that gap. Those now show in a softer orange instead of red, with a note explaining why when you hover. So you can see at a glance which start times to check by hand. Often the fix is simply to start that competition fifteen minutes earlier or later.

We read every question and report. Keep them coming.

May 2026 Update: Start Time Conflict Resolver, Combined Training & Cleaner Reports

May was about saving organizers time on the schedule, filling in gaps for combined training and eventing, and tidying up the parts of the app people use under pressure during a show.

🏆 New features

Start time conflict resolver (App)

The schedule now has a "resolve start time conflicts" button. It runs in the background, finds riders and horses with clashing start times, and swaps positions to fix them. It respects section boundaries, age groups in young horse competitions, riders with several horses, and pauses, so it never moves something it shouldn't. You get a progress bar while it works through the harder cases instead of a frozen screen.

Combined training: two-phase show jumping (App)

Combined training now supports two-phase show jumping. The second round is published in online results, the show jumping deduction is applied to the total, and the PDF builds its columns from the actual rounds. Results add up the way the protocol shows them.

Cross country: "under review" fence status (App)

Cross country fences can now be marked as under review, so a contested fence is clearly flagged while it's being looked at.

Simplified Chinese (App)

Equipe is now available in Simplified Chinese (zh-Hans).

Disable specific Stripe payment methods (Entry)

Organizers can now turn off individual Stripe payment methods like Link or Klarna, instead of taking all of them or none.

✨ Improvements

Reports and economy

  • VAT on the economy report (App). The meeting economy report now shows VAT percentage and VAT amount, in the page, the PDF, and the new CSV and XLS exports. The exports include totals, and the XLS is grouped into sections with proper currency formatting.
  • Miscellaneous items are sorted alphabetically in the economy report, so the same show always lists them in the same order.

Invoicing

  • Pick the invoice date when generating invoices in batch (App). A date selector sits next to the auto-generate checkbox, limited to the meeting's date range, so batch invoices no longer always use today's date.
  • Proforma invoices are no longer published to the entry system, which keeps draft amounts from showing up where they shouldn't.

Scheduling and start lists

  • Breed and race columns are available in the start list field selector.
  • A "force ascending category order" option was added to randomize.
  • Trainer is now in the officials list.
  • Dots are allowed in category names, so names like "1.30" work.

Daily work

  • The name field is focused automatically on the new person and new horse forms, so you can start typing right away.
  • The message to the organizer is editable in point of sale.
  • Emoji can be used as a prize in kind, for the shows that like a bit of fun.
  • Fetching data no longer publishes online unless you opt in. Publishing online is now an explicit choice when you fetch, so results don't go public before you're ready.

Organizer access

  • A "this week" range button, the page you're on is kept when you change a user's access, and the index now shows each user's active show range.

Federation and language

  • Norwegian framework text is now translated. Dates, number formatting, and validation messages that used to fall back to English now show in Norwegian.
  • Your language is kept when you sign in through a federation. If you switched to your own language, signing in from a federation show no longer resets you to English.
  • Licence year accepts full dates. Federation licence year now takes both a year and a full date (yyyy-mm-dd).

Scoreboard director (App)

If you build scoreboard scenes in the director, rules gained and/or grouping and the scene now exposes the previous current value. Before this, a rule could only check that a rider was currently ranked, so a presentation would re-show and re-animate whenever a judge edited remarks after a result was already on screen. Now a rule can detect the actual moment a rider goes from unranked to ranked, and fire only then:

"rules": {
"and": {
"ne": { "current": { "re": 999 } },
"eq": { "prevCurrent": { "re": 999 } }
}
}

You can read this as: the rider is ranked now (current is not 999) and was not ranked a moment ago (prevCurrent was 999). Apply it to your presentation show and hide actions so they trigger once on submit, not on every later edit.

Value mapping with $if also gained a $default fallback. Previously, if no key matched the current value, nothing changed, and because sequences only replay when the value actually changes, the sequence would quietly not run. A $default key catches anything that doesn't match:

"motion.$if": {
"out": "in",
"horse-in": "in",
"$default": "in"
}

Explicit null, 0, false and "" values in the mapping are now applied too, instead of being skipped.

🐛 Bug fixes

  • Rider spacing in randomize was off by one. The "minimum riders between" setting could leave a rider's two horses one start too close. It now matches the number you set.
  • Numeric category names produced empty start lists. Merged or custom categories with plain numbers (like "130") were parsed ambiguously and could show an empty list or corrupt a scoreboard. Compound ids are now unambiguous and these lists load correctly.
  • Renumbering ignored unchecked class filters. Renumber now respects which classes you've selected.
  • Competitions imported from Tävlingsdatabasen now appear in the same order as the proposition.
  • Reserve list on full arenas (Entry). A competition limited only by an arena limit could still push entries onto the waiting list. It's now blocked when the arena is full and reserves are off.
  • Application fee on refunds (Entry). When a payment is refunded, Equipe's application fee is now refunded too, in full or proportionally for a partial refund.
  • Entry CSV export (Entry). Dropped the sep=; first line that pushed headers to row two, quoted the header row to match the data, and split payer and rider into first and last name columns so you can sort by surname.
  • Officials with three-letter surnames (Online). Names like "Johnny MAK" were having the surname stripped as if it were a country code on import. Fixed.
  • Marking sheet columns are only fetched when the source judgement actually supports them.
  • Collaborators can free up a locked economy (Entry). When an invoice is sent from the app, the economy on the entry is hidden. Organizers can now remove the invoice reference to make it visible and editable again.
  • Reserves no longer error when a rider link is missing its registration.
  • Do-not-compete dates no longer create phantom competitions for list-only dates.
  • Class section page (Online) returns 404 instead of an error when a start has no parent section.

📋 Regulatory and federation

  • Norwegian framework strings, federation licence year as a full date, and the corrected Tävlingsdatabasen import order are covered above.

💬 What we're hearing

A few patterns from support this month:

  • User language resetting to English. Several of you, mainly in Norway, told us your language flipped back to English every time you started from a federation show. We fixed this in May. Your chosen language now sticks.
  • Rider messages and lists online. A handful of organizers had trouble saving rider messages and custom lists in online.equipe.com. We looked into each one.
  • Team classes. Team jumping and team dressage, including ponies, stay among our most-asked topics: building teams, team line-ups, and how the totals are counted. Better documentation here is on our list.
  • Merging and splitting classes. Recurring questions about combining categories or classes that were split for horse and pony, and getting late entries into the right class.
  • Dressage judge comments. Several questions about where to type judge comments during result entry, and the QR code for dressage judges.
  • Cancelled shows. A few organizers asked what to do in Equipe when a show is cancelled.

We read every question and report. Keep them coming.

April 2026 Update: Peppol Matures, EU VAT Export, Faster Invoicing

April was about polishing the Peppol flow now that it has been running in production for a few months, adding VAT export invoicing for riders outside the EU, and making the parts of the app that organizers use every day faster.

🏆 New features

VAT export invoicing (App)

Organizers can now invoice riders outside the EU without VAT. Mark a person as outside the EU and the invoice prints as a VAT export with a single VAT sentence, not two overlapping ones. The flag stays put when you transfer balances between shows.

UK VAT number lookup (App)

We've connected to HMRC so UK VAT numbers can be validated directly, the same way we already do for EU numbers via VIES.

Peppol batch sending (App)

You can now send Peppol invoices in bulk from the people page, in the same flow you use for email invoices. A new Peppol filter helps you find the people who should get one. Peppol invoices also go out as part of the automatic invoice sending routine, so you don't have to send them manually anymore.

Team competitions in score summary (App)

Score summary disciplines now support team competitions. Individual and team results broadcast and publish together after a fetch, so live results stay in sync.

Malaysian ringgit (MYR) (App)

MYR is now a supported currency.

✨ Improvements

Dressage judge selector replaced with autocomplete (App)

The judge dropdown was sorted by first name, which made it hard to find someone when you only remembered the surname. We replaced it with an autocomplete that searches both first and last name. You can still see the full list without typing anything.

Peppol details

  • Sent Peppol invoices print as "Invoice" instead of "PRO FORMA".
  • Invoice number and date are locked once an invoice has been sent through Peppol, so the audit trail can't drift.
  • The Peppol dropdown links to the last sent PDF so you can quickly see what was actually delivered.
  • Credits are sent as negative invoice lines instead of UBL allowance charges, which fixes validation errors with some Peppol receivers.
  • Peppol no longer auto-enables from the send-to default. You opt in explicitly.

Invoice email subject truncated for many horses (App)

When an invoice covers more than three horses, the email subject is shortened instead of listing every horse name. Inboxes look cleaner.

Judge alias on "act as judge" buttons (App)

If a judge has been set up with an alias (e.g. after a last-minute swap), the act-as-judge buttons in the dressage score sheet now show the alias rather than the original position.

Webhook delivery errors notify the extension author (App)

When a webhook delivery fails, we now notify the extension author so they can fix the integration on their end. Previously these errors disappeared silently.

Online sign-in button always visible (App)

The globe button for signing in to online.equipe.com now shows regardless of whether the show is published or not. After unarchiving a show, you no longer have to publish it again to open it from the app.

Smaller things

  • Long descriptions in autocomplete textareas no longer get cut off. You can use newlines too.
  • "Timing to Equipe" is available as a bell sound in the FDS binary driver.
  • "Born year (FO)" is available as a column dependency on startlists.
  • Native share sheet works correctly on Android (Online).
  • The federation search redirects to the FEI search when the federation doesn't exist.

🐛 Bug fixes

  • Entries to closed competitions: entries started before a competition closed could still be submitted after closing. This is now blocked at submit time (Entry).
  • Stale per-judge percents on elimination: when the judge at C eliminated a rider, the other judges' percent totals and ranks weren't cleared. We now reset all derived state atomically and skip writes from non-C judges when the start is eliminated.
  • Working Equitation team results: team totals are now summed by published points (psum), matching what's shown on the protocol.
  • Custom field columns on renumbering: custom fields are now resolved when starts are renumbered.
  • Scoreboard countdown at clock auto-start: the countdown diff is broadcast to scoreboards when the clock auto-starts at 0, so the display doesn't appear frozen for a fraction of a second.
  • Score summary deadlocks: score summary jobs were occasionally deadlocking under load. They now serialize properly, and we skip duplicate team alerts.
  • Refund rounding: floating-point rounding caused entry refunds to be off by a cent in some cases (Entry).
  • FEI XML max score: deduction sections are excluded from the max score in published XML, so FEI exports don't double-count deductions.
  • Bulk updates: bulk update endpoints return 422 instead of 500 when the request body is missing top-level params.
  • Horse reports: sortable columns are validated, so a typo doesn't crash the page.
  • Start fetch: invalid from/to pairs are dropped with a clear warning instead of failing the whole import.
  • Invoice publishing: a missing rider in the entry system no longer blocks invoice publishing.
  • Class section page (Online): returns 404 instead of 500 when the meeting is missing.

📋 Regulatory updates

  • VAT export for riders outside the EU is now supported, with the correct single VAT sentence on the PDF.
  • UK VAT lookup via HMRC matches the EU VIES integration.
  • Peppol continues to mature for Belgian organizers under the 2026 mandate. See the Peppol details above for this month's fixes, and our dedicated Peppol post from December for the full background.

⚡ Faster where it matters

Performance is something we keep working on because slow software wastes the time of the people running shows. A few wins this month, in plain language:

  • Invoice and economy queries are 70-77% faster. We rewrote the economies SQL view to use a person-scoped function. Person reports went from around 1.4 seconds to roughly 300ms on large tour meetings.
  • Background jobs and caching moved off Redis. We have now done the same migration we did on Equipe Online last month. Concurrency limits on the noisiest jobs prevent the duplicate-job deadlocks we've been seeing.

You shouldn't notice any of this except that things load faster.

💬 What we're hearing

A few patterns from support this month:

  • Team jumping with individual starts: still our most-asked question, but now most users have moved on to applying the new flow to existing shows rather than asking how to set it up from scratch.
  • Peppol activation in Belgium: ongoing questions about how to get set up. We're refining the activation flow and the help article based on what we're seeing.
  • Vaccination lists: recurring questions about creating, importing from TDB, and publishing them. A help article on the full flow is on our list.
  • Working Equitation: several questions about removing the dressage section in WE classes that don't include it, and about adding judges. We're improving the docs.
  • Withdrawals with refund: a few requests for a "withdrawal with refund" option for vet certificates and similar. Noted.

We read every question and report. Keep them coming.

March 2026 Update: Documents, Simpler Team Setup & Entry Controls

March was a big month. We shipped a documents page so riders can see their invoices and paperless results in the app, simplified team jumping setup (by far our most asked support question), and gave organizers new tools to control entries and payments.

🏆 New Features

Documents page (Online / Mobile App)

Riders with connected profiles can now view PDF documents directly in the app. Invoices and paperless results appear under Me > Documents as soon as the organizer sends them. You get a push notification when a new document arrives, and you can filter by type.

Documents for Riders

Simplified team jumping with individual starts (App)

Setting up team jumping competitions where riders start individually used to require several manual steps across two competitions. We added a new judgement type that handles the connection automatically. Choose "A:1a med individuella starter för lagklass" on the individual competition, and everything links up.

This was by far the most common support question in March. We published a dedicated guide with the new flow: Enklare hantering av lagtävling i hoppning med individuella starter

Pinned shows (Online)

You can now pin shows you're following for quick access. Pinned shows get their own section at the top of the meetings page. Works in the browser and in the app.

Email change (Online)

Users can now change their email address from the profile page. It uses the same one-time code verification as sign-in. If the new email already belongs to another account, the two accounts are merged automatically.

image.png 72.6 KB

Server-synced clock for judges (App)

Judges running the browser in fullscreen mode had no way to see the time. The secretary navbar now shows a clock that syncs with the server, so all stations show the same time regardless of local clock drift. In the last minute before the next scheduled start, it switches to a seconds countdown.

Default invoice email message (App)

Organizers can now set a default message that pre-fills when sending invoices by email. Saves time when you send the same instructions with every invoice.

Required competitions in entry (Entry)

Organizers can now require riders to enter and pay for specific competitions before they can enter anything else. Useful for things like stabling fees that need to be sorted before other entries open.

Block riders with outstanding invoices (Entry)

Organizers can now prevent riders who have unpaid invoices from entering new shows. The blocklist works across shows under the same organizer.

Invoice PDF in entry system (Entry)

When an invoice has been sent from the app, riders see a direct PDF link in the entry system instead of the old economy summary.

Excel export from entries (Entry)

You can now export entry data and people to CSV with proper Excel formatting. Includes quantity, extras, and other entry details.

Share button (Online)

The schedule and startlist pages now have a Share button that uses the native share dialog on your phone.

✨ Improvements

  • Accent-insensitive search: Searching for names with special characters (ä, ö, ë) now works correctly. We also replaced the old jQuery UI autocomplete with a faster, custom implementation across the entire app.
  • Official search dialog: You can now search for and add officials directly from the competition officials tab and dressage judges tab.
  • Invoice payment link: When online invoice payments are enabled, invoice emails can include a self-service payment link. The link is automatically excluded for zero-balance or credit invoices.
image.png 126 KB
  • Maximum starts column: Available in the competitions field selector.
  • DNC on date change: The "Do not compete" competition is now created when a competition date changes while the show is open for entry.
  • Safety check before deleting shows: The app now checks if the show exists on online.equipe.com or entry.equipe.com before allowing deletion.
  • Connection deletion confirmation: Replaced swipe-to-delete with a confirmation dialog in the mobile app.
  • Competition details in startlist header: Description, arena name, and start time now show on the startlist page, not just the timetable.
  • FDS driver UI: More compact layout with collapsible sections, visual connection feedback, and a collapsible bell sound picker.
  • Bulk publish protection: A warning now appears when bulk publishing would clear existing competition descriptions. You need to opt in to overwrite them.
  • Keyboard shortcuts: A new cheatsheet dialog shows all available keyboard shortcuts.
  • HC toggle in show jumping: Toggle Hors Concours directly from the result editor without opening the start dialog.
  • Estimated start times: Only generated for show jumping now. Other disciplines no longer get misleading times.
  • Logo group dropdown: Sorted alphabetically in show settings.
  • 1Password autofill: Non-login fields no longer trigger 1Password popups.
  • Header image hint: Shows recommended dimensions (1200×350 pixels) when uploading a hero image.
  • Terms of Service and Privacy Policy: Rewritten from scratch to be clear, accurate, and readable.

🐛 Bug Fixes

  • FDS binary timing: Fixed DLE-stuffing in frame detection and channel mapping for manual time.
  • HC eventing rank: Marking a rider as HC now clears the dressage, jumping, and cross-country rank columns.
  • Invoice number race condition: Fixed duplicate invoice numbers under heavy load using advisory locks.
  • Marking sheet crashes: Fixed several crashes when marking sheet data was missing or incomplete.
  • Battery popover: The secretary status battery popover no longer clips at the screen edge.
  • FEI horse app maintenance: The app now handles FEI maintenance pages gracefully instead of crashing.
  • FEI dressage export: Fixed score calculations and penalty logic in FEI dressage results export.
  • Consecutive breaks: Multiple breaks in a row now show correctly in startlists and result views.
  • Payment rounding: Fixed floating-point rounding errors in the entry system that caused refunds to be off by a cent.
  • FEI arrival time zone: Horse arrival and checkout times now correctly convert from UTC to the show's time zone.
  • Safari iOS 16: Fixed a crash on older Safari caused by unsupported regex syntax.
  • Randomize with merged categories: Start list randomization now includes starts from merged category groups.
  • Bulk publish descriptions: Publishing no longer silently overwrites existing competition descriptions.
  • Show copy timestamp: Copying a show no longer carries over the internet publication timestamp.

💬 What We're Hearing

Some clear patterns from support this month:

  • Team jumping with individual starts: By far the most common question. Setting up team competitions required too many manual steps. We shipped a new judgement type that simplifies it and published an updated guide.
  • Dressage protocols: Questions about sending protocols digitally, correcting judge scores after the fact, and how percentage-based dressage programs work. We are improving the documentation for this.
  • Peppol invoicing: Belgian organizers asking how to set up and send Peppol invoices for the new mandate.
  • Login and accounts: Recurring questions about passwords, adding users to organizer accounts, and admin access.

We read every support question and feature request. If something is unclear or not working the way you expect, let us know.

Enklare hantering av lagtävling i hoppning med individuella starter

Vi har lagt till en ny bedömning som gör det enklare att sätta upp lagtävlingar i hoppning där ryttarna startar individuellt.

Tidigare behövde man konfigurera den individuella klassen och lagklassen separat med flera manuella steg. Nu kan du välja bedömningen A:1a med individuella starter för lagklass direkt i den individuella klassen, så kopplas allt ihop automatiskt.

Det här är en av de vanligaste frågorna vi får i supporten, så vi hoppas att det sparar tid för er som arrangerar den typen av tävlingar.

Guiden är uppdaterad med det nya flödet: Lagtävling i hoppning med individuella starter

February 2026 Update: Custom Fields, Faster Search & Dressage Improvements

February was a productive month. We shipped custom fields for the People and Horses pages, rebuilt search on Equipe Online from scratch, and made dressage scoring more flexible. Here's what changed.

🏆 New Features

Custom fields on People and Horses pages (App)

Your custom fields now show up as columns on the People and Horses pages. You can sort by them, edit them inline, and include them in printed reports and payment reports. Text and number fields use inline editing, boolean fields get a toggle.

This was one of the most requested features from organizers running FEI shows, where custom field data is important for managing entries.

Update person details from FEI (App)

You can now pull updated person details from FEI, the same way you could already do for horses. Useful when a rider's name, nationality, or other details have changed in the FEI database.

Markdown descriptions on Equipe Online (Online)

Meeting class descriptions now support basic formatting: bold, italic, and underline. There's a preview toggle so you can see how it looks before saving. Legacy HTML descriptions from featured meetings are converted automatically.

✨ Improvements

Multi-line dressage remarks (App)

Judge remarks on the dressage score sheet now support multiple lines. The old single-line field wasn't enough for detailed feedback. The new editor includes autocomplete that preserves your typed casing and handles arrow key navigation in wrapped text. Whitespace is automatically trimmed when you leave the field.

Extra fee VAT (Entry)

You can now set an included VAT percentage on extra fees. The receipt shows the fee split into net amount and VAT. Required in some countries for tax compliance.

Smarter people labels (App)

People labels now let you filter which horses appear based on role: rider only, payer only, or both. This fixes cases where a horse showed up on multiple labels when the rider and payer were different people.

Box signs improvements (App)

Box signs now print the right number of copies based on the quantity field and show "1 of 3" on each copy. If the rider's mobile number isn't available, it falls back to the payer's number. Unknown pedigree is skipped instead of showing blank fields.

Todo toggle in People table (App)

The People table now has the same todo toggle in the chat bubble that you know from the starts view. Mark people as needing follow-up directly from the table.

Federation judgements copy button (App)

You can now copy federation judgements with a button click. The system also validates that foreign IDs are unique to prevent duplicates.

Round in team columns (App)

The field selector and start list now show "round included in team" columns for rounds 1 through 6. Useful for seeing and controlling which rounds count toward team results.

Sign in to Equipe Online from the navbar (App)

A new link in the navbar takes you straight to Equipe Online. Small thing, but saves time when you want to check how your show looks to riders.

Entry system improvements (Entry)

  • Horses already entered for the show now appear at the top of the horse selector.
  • The competition selector now works the same way as in the main app.
  • The "arena full" label shows when reserves are present.
  • The entries-per-competition view has been cleaned up.
  • Saving a change no longer closes the edit form.

Publish dialog (App)

The online description field is now a multi-line text area instead of a single-line input. Easier to write longer descriptions. Duplicate autocomplete suggestions are gone.

FEI shows view (App)

Added the arena field and fixed the prize money "beyond" label.

🐛 Bug Fixes

  • Category filter: Categories with names starting with digits (like "1.00m Open") now display correctly in results. The filter was splitting them wrong.
  • Endurance midnight crossing: Speed calculations no longer go negative when a ride starts before midnight and finishes after.
  • Startlist times: Fixed times showing the wrong hour in UTC+0 timezones on Equipe Online.
  • Working equitation marking sheets: Fixed duplicate content printing and a crash when the marking sheet scale was undefined.
  • Peppol VAT matching: Country code comparison is now case-insensitive, so "be" matches "BE".
  • FEI person refresh: Last names are no longer stored in uppercase during FEI data sync.
  • Score summary: Fixed double separator in category display and made name comparison case-insensitive.
  • Press results link: Fixed "invalid content type" error when clicking press results in Equipe Online.
  • People table sorting: Fixed crashes when sorting by custom fields or horse number.
  • Handover marking sheets: Fixed error for competitions without assigned judges.
  • Signature pad: Now shows the meeting name instead of the competition name.
  • Official title translations: Added missing translations for federation representative and supervisor.

🔧 Under the Hood

Search on Equipe Online got a complete rebuild. We replaced the old materialized view with a regular table and incremental sync. Search queries that took over 16 seconds on rare terms now finish in about 1 millisecond. We also added request cancellation for type-ahead search (so abandoned keystrokes don't keep loading the server), horse identifier normalization for more consistent matching, and a 3-character minimum to prevent overly broad queries.

We switched Equipe Online's email delivery from SMTP to HTTP API, which eliminates timeout issues and gives us better error handling. We also added email domain validation at sign-in to catch common typos like "gamil.com" with a helpful "Did you mean gmail.com?" message.

💬 What We're Hearing

A few recurring themes from support this month:

  • Vaccination checklists: A recurring topic from Nordic countries. How to import vaccination lists from TDB and where to find the checked/unchecked status in Equipe.
  • Custom fields: A user reported that horse custom fields weren't visible on the People and Horses pages. We shipped that as a full feature this month.
  • Getting started with Equipe: New organizers asking for help with first-time setup, especially importing shows from other systems.

We read every support question and feature request. These updates come directly from what you tell us.

January 2026 Update: Smarter Entry Limits & Stronger Infrastructure

January was about giving organizers more control and shoring up the technical side of things. Here's what changed.

🏆 New Features

Arena entry limits (Entry)

You can now cap entries per arena per day, separate from per-competition limits. Useful if your venue can handle, say, 80 starts in an arena regardless of how they're split across competitions. Riders who would exceed the limit go on the waiting list automatically. The competition overview shows your current count against the limit.

Peppol delivery tracking (App)

After launching Peppol e-invoicing in December, you can now see when an invoice was actually delivered. The sent invoices list shows a "Delivered" badge when the transport acknowledgement comes back. You can also download the ACK file if you need proof of delivery.

Team time calculation for Australian jumping rules (App)

We added a new team time calculation for an Australian jumping rule. Normally, tied teams are ranked by the sum of their riders' times. The new "Time of last started counting rider" option uses only the time of the highest-numbered counting rider. Find it under Competition → Judgement → Advanced → Team settings.

✨ Improvements

Entry system keyboard shortcuts (App)

Import and Export in the Entry System now have keyboard shortcuts. Saves clicks if you're importing entries throughout the day.

Chip number on rider accreditation (App)

The rider accreditation PDF now shows the horse's chip number. Organizers asked for this because veterinary authorities need it for health certificates.

Peppol refinements (App)

A few Peppol fixes: Belgium's requirement now only kicks in from its actual mandate date; invoice line rounding handles stricter validation rules; and Peppol companies are created even when VAT validation temporarily fails, so you can still send invoices.

Schedule improvements (App)

The schedule view has a new rotate function in the "Check start times" menu and shows participant counts when filtering by judge. Hors concours starts now appear correctly in the previous/speaker section after their round.

Judgement mapping stays on same tab (App)

Editing a judgement mapping while viewing a specific discipline now returns you to that discipline tab instead of jumping to the first one.

Locked IBAN for verified organizers (App)

If an organizer's identity has been verified and locked, the IBAN field is now locked too.

Missing mapping alerts during federation imports (App)

If a required judgement mapping is missing during a federation import, you now get a warning instead of silent failure. (No warnings for disciplines that don't use mappings.)

Competition number links in Entry (Entry)

Competition numbers in Entry are now clickable links, like in the main app.

Protected divider and pinned settings (Online)

When a competition, list, or score summary comes from Equipe App, the divider and pinned settings are locked in Online so accidental changes don't get overwritten on sync.

🐛 Bug Fixes

  • Rider declaration DNC status: "Do Not Compete" competitions from rider declarations now use the correct status based on other competitions that day, not always International
  • Hebrew text in PDFs: Fixed right-to-left text printing in reversed order on marking sheets and reports
  • Score summary in rider lists: Fixed a regression where score summaries couldn't be selected in the "Riders must be in this list" setting
  • Peppol invoice PDF label: Fixed invoices incorrectly showing "Pro-forma" instead of the actual label
  • Prize money "beyond" calculation: Fixed FEI prize distribution where the "beyond" amount wasn't included when placed riders exceeded standard tiers. Now uses actual placed percentage instead of a rough estimate
  • Week navigation at year boundary: Fixed the schedule jumping incorrectly when going from December to January
  • VAT country code extraction: Fixed parsing for lowercase VAT numbers
  • Pro forma invoice emails: Fixed an error sending to certain email addresses
  • Economy account routes: Fixed routing for accounts with forward slashes or special characters
  • Password required for iPad logins: Users with invalid email formats (common for paperless iPad logins) now require a password so the account stays accessible

🔧 Under the Hood

Equipe Online got several infrastructure upgrades this month:

  • Turbo migration: Moved from Turbolinks to Turbo for page navigation
  • Job processing: Replaced the background job system with something simpler
  • Caching: Switched caching, fewer external dependencies
  • New email provider: Better rate limiting and automatic retries
  • Real-time broadcasting: Persistent HTTP connections for faster live updates

Equipe App also got an upgrade with performance improvements.

💬 What We're Hearing

A few recurring topics from support this month:

Dressage marking sheets — Questions about printing protocols, sending them to riders, and paperless scoring setup.

Team competitions — Still getting questions about team competitions with individual starts, especially scoring and results. We published a guide in October (Team competitions with individual starts) that covers this.

Prize money distribution — Questions about FEI's "beyond" amount for larger classes. We fixed a calculation bug this month that affected certain class sizes.


We read every support ticket and feature request. These updates come directly from what you tell us.

December 2025 Update: Ready for 2026

As 2025 comes to a close, we've been focused on preparing Equipe for the new year. This month's update brings critical 2026 rule updates, new scheduling tools, and important reliability improvements across the platform.

🧾 Peppol E-Invoicing

Belgium mandates electronic B2B invoicing via Peppol starting January 1, 2026. Equipe now supports sending invoices through the Peppol network automatically for Belgian companies. We will enable Peppol on your account when you have register your company. We published a dedicated post with all the details

📋 Regulatory Updates: 2026 Rules

FEI Show Jumping 2026 Rules

Starting January 1, 2026, FEI Show Jumping competitions will use updated prize distribution rules. Equipe now fully supports:
- New prize money distribution percentages
- Updated article mappings for the 2026 regulation changes
- Automatic handling of the new distribution formulas

FEI Dressage Marking Sheets 2026

The FEI has made changes to dressage marking sheets effective January 1, 2026. All FEI dressage tests have been updated with the new marking sheet formats.

Eventing: Missed Flag Penalty Update

For 2026, the penalty for a missed flag in cross-country has changed from 15 points to 9 points. This is now the default setting for new eventing competitions.

🏆 New Features

Judge Collision Detection in Schedule

When viewing the schedule, you can now see which judges are assigned to each competition. The system automatically detects and highlights scheduling conflicts where the same judge is assigned to overlapping time slots—helping you catch double-bookings before they become problems. See dedicated post with details

Dressage Lock Start Times

A new column in the competitions table lets you quickly lock start times for dressage competitions. This makes it easier to manage schedules where some competitions have fixed times while others remain flexible.

Entry System: Payment Activity Log

The Entry system now includes a comprehensive payment and refund activity log. Track every transaction with detailed timestamps, amounts, and status changes—making reconciliation and troubleshooting much easier.

Pro-Forma Invoice Support

You can now generate and send pro-forma invoices directly from the economy section. The system properly labels these as "PRO-FORMA" in email subjects and handles them separately from final invoices.

✨ Improvements

Rider Declaration: Multiple Exclusion Lists

Grand Prix and similar competitions often need to exclude riders from multiple qualification sources. The rider declaration now supports selecting multiple "Riders must not be in this list" restrictions, making it easier to enforce complex entry requirements.

Show Jumping Federation Settings

Managing which Show Jumping article mappings are active is now faster with an inline toggle directly in the federation settings table. No more opening dialogs just to activate or deactivate articles.

Unified Startlist Enhancements

Show jumping scorecards and scoresheets can now be printed directly from the unified startlist view. Previously, you had to navigate to individual competitions to print these reports.

Horse Search Improvements

When searching for horses via the FEI database, results are now sortable by clicking the column header rather than FEI ID, making it easier to find the correct horse.

Competition Date Ordering

The "Fetch data" dropdown now displays competition dates in chronological order instead of seemingly random order—a small but frequently requested improvement.

🐛 Bug Fixes

  • Show Jumping Scorecards: Fixed an issue where generating scorecards for a selection of specific starts would fail
  • Empty Invoice Emails: Resolved a crash that occurred when attempting to send invoice emails for accounts with no items
  • FEI Name Normalization: Fixed Unicode character handling that was causing issues after the Rails 8.1 upgrade
  • Marking Sheet Language: Fixed an issue where Finnish competitions with individual marking sheets would show Swedish labels
  • Individual Marking Sheet Protection: The system now prevents you from accidentally disabling individual marking sheets when results have already been entered
  • Entry System Stability: Fixed several production errors related to missing data and edge cases in payment processing

🔧 Technical Notes

The Entry system received significant improvements to timezone handling, ensuring that all timestamps are displayed consistently in the meeting's local timezone.


Thank you for a great 2025! We look forward to continuing to improve Equipe together in the new year.

Filter schedule by judge with collision detection

For dressage competitions, the schedule now displays judges assigned to each competition. You can click on a judge's name to filter the schedule and see only their assignments.

Schedule with dressage judges

Collision detection - When a judge is assigned to overlapping time slots across different competitions, a warning icon appears next to their name, making it easy to spot and resolve scheduling conflicts.

Filter by judge - Click any judge's name to see their full day at a glance. The filtered view shows breaks and overlaps between their assignments, helping you optimize the schedule. Click the filter banner to return to the full schedule view.

Filtered by judge

Press Escape to quickly clear the judge filter and return to the full schedule view.

Lock dressage start times - We've added "Lock dressage start times" to the Field selector under Competitions, making it easy to adjust this setting across many competitions at once when working with the schedule.