Skip to content
peer cup app by opsage
Product Custom Apps

Building a Custom Leaderboard App with the OpSage AI Assistant

Convx Team
Convx Team

A look inside the Peer Cup, a GM leaderboard nobody had to build. Release 0.9.15 lets any operator describe an app like it and have OpSage build it.


Savora Bowls runs five cafes. For the operating week of August 10, the South Lamar location posted $17,670 in net sales, well clear of every other cafe in the fleet. It finished fourth.

Screenshot 2026-08-18 at 9.14.21 AM

The week went to LoHi, which beat its own trailing revenue baseline by three percent while holding a 4.5 star guest average and the strongest loyalty numbers in the fleet. South Lamar beat its baseline too, by two percent. The race was close on execution, and volume had nothing to do with the outcome. That was the design goal.

Screenshot 2026-08-18 at 9.15.35 AMThis is the Peer Cup. It is an OpSage App, and no engineer built it. Someone at Savora described what they wanted in a paragraph, and OpSage built the thing.

 

Why most store rankings stop working

Every multi-unit operator has tried a leaderboard. Sales by location, sorted descending, emailed Monday morning. It works for about five weeks.

Then everyone learns the ending before they open the email. The busiest store sits at the top because it sits in the best trade area, and the GM of the smallest cafe understands that no amount of effort will move them up the list. So they stop reading. The ranking that was supposed to drive behavior becomes wallpaper, and the strongest operator in the company may be running your fourth-largest location with nobody noticing.

The Peer Cup takes the position that the cafe executing best wins the week, not the one that is biggest. Getting there takes two layers of adjustment, and the app makes both of them visible on screen.

Layer one: score execution instead of dollars

Six size-neutral sub-indices combine into a Gross Composite. The anchor, weighted at 35 percent, is Sales vs Expected: gross revenue measured against that cafe’s own trailing four same-weekday baseline. A small cafe beating its plan scores the same as a big cafe beating its plan.

The rest of the composite fills in from:

  • YoY Growth at 15 percent, gross revenue against the same week last year
  • Guest Stars at 15 percent, the average review rating for the week
  • Loyalty Attach at 15 percent, loyalty orders over total orders against a 15 percent program target
  • Service Quality at 10 percent, with a cancel-rate ceiling of 3 percent
  • Avg Check vs Fleet at 10 percent

Nothing in that list rewards a cafe for being in a busier neighborhood. That is the point of the layer.

Layer two: the handicap, in the open

Execution scoring gets you most of the way. A bounded handicap allowance closes the rest, working the same way a golf handicap does. Lower-volume cafes get a lift and the highest-volume cafes get a trim, both based on expected-revenue tier, with the whole adjustment capped at plus or minus eight points.

Screenshot 2026-08-18 at 9.42.25 AMFor the August 10 week that meant South Lamar took a 3.0 point trim, LoHi took 1.6, and Pearl District picked up 1.2. Net Score is Gross Composite plus handicap, and Net Score wins the Cup. The smallest cafe in the fleet can take the trophy on the strength of beating its own baseline.

The handicap sits on the leaderboard next to the score, in a chip anyone can see. Hiding an adjustment is how a recognition program dies. When GMs can see the math, the conversation moves to whether the weights are right, which is a conversation worth having.

Corporate owns the dials

The app includes a handicap console with a slider for every weight. Someone at corporate can decide that guest stars matter more than average check this quarter, drag the dial, and watch the standings re-rank on screen while they do it. Handicap strength is a single control. So are the loyalty attach target and the cancel-rate ceiling. There is a reset to the corporate standard and a one-click even-weights view for sanity checking.

Every GM sees the same rules and the same numbers. Tuning the program takes a few seconds instead of a change request.

The part that keeps it credible

Underneath the leaderboard, the Peer Cup has a full cafe scorecard and a definitions table. Every KPI appears with its plain-English definition, the OpSage field it comes from, and the current status of that feed.

Screenshot 2026-08-18 at 9.15.48 AMMost of those statuses read Live, but a few do not. Labor % of Sales is marked Pending feed, average prep time is Monitor only, and guest reviews are flagged Live but sparse, which is a fair description of 49 reviews across five cafes in a single week. No cafe gets scored on a metric with no data behind it. The definitions are written into the standard now, so the scoring keeps its shape when those integrations turn on.

The report also runs on the most recent complete operating week and excludes the current partial week, which removes the argument that used to eat the first ten minutes of every review meeting.

Nobody scoped this. Somebody described it.

Read back through what the Peer Cup does:

  • Weighted composite scoring across six sub-indices
  • A tiered, bounded handicap model
  • Live-tuning sliders that re-rank the standings while you drag them
  • A per-cafe scorecard with conditional coloring and a fleet roll-up column
  • A definitions table showing the source field and feed status for every metric
  • A layout that opens cleanly on a phone

Price that the old way and it becomes a requirements doc, a BI analyst, and two sprints of build, with a change request filed every time someone wants to move a weight. Six weeks and a headcount would be a friendly estimate.

In OpSage 0.9.15, an app like this starts as a description. OpSage reads your actual data before it builds, so what comes back has your locations and your numbers in it rather than a template with somebody else’s store names. Then you keep going by talking to it: add a filter bar across the top, group by brand-region, let me click a cafe to drop into its dayparts. OpSage rebuilds while you watch. Every revision saves on its own, and older versions stay there to return to.

That last part is what makes the whole thing usable. A first draft of any internal tool is wrong in two or three places. When fixing it costs a sentence, you fix it. When fixing it costs a ticket, you live with it.

 

A leaderboard is one idea out of many

The Peer Cup came from one operator’s recognition program. The next app comes from whatever question your team keeps answering by hand. A few that come up often:

  • A prime cost target tool that shows the dollars to pull from food versus labor to hit a number, with the figure turning red when you are over
  • A morning huddle board for GMs: yesterday against target, the week so far, top and bottom movers, and any overnight review, sized for a phone
  • A lapsed-guest view grouped by city with a slider for the day window, so local offers get planned against real counts
  • A new-store ramp tracker that compares each opening against the fleet’s historical curve at the same week of life
  • A limited-time-offer scorecard that follows attach rate and check lift by daypart while the promotion is running
  • A vendor variance monitor that flags item-level cost movement worth a phone call

Each of those would have been a project. Now each is a paragraph, and the efficiency compounds every time a question changes and the app changes with it.

What runs underneath

An OpSage App runs in a restricted environment with no access to credentials and can only request data from an approved, validated list of sources. Access follows the roles you already configured, so a district manager opening the Peer Cup sees their district and a GM sees their cafe. The app respects the permissions of whoever opens it.

All of it sits on the same foundation as the rest of the OpSage restaurant data platform: connected POS, labor, inventory, and review data, normalized into one restaurant-aware model with a semantic layer tuned to your concept. The Peer Cup pulls from get_restaurant_daily_metrics, the same source OpSage Ask and the OpSage Intelligence Layer reason over when your team asks questions in Claude, ChatGPT, or Slack.

Distribution comes free with that. Instead of screenshotting a dashboard into a group chat every Monday, every GM opens the same live page on their phone and sees their own standing in it.

Bring one question to a demo

Pick the report you rebuild by hand every Monday, or the ranking you would already be running if the numbers were comparable across locations.

Describe it on the call and watch OpSage build it against data. That takes about as long as the rest of the conversation, which tends to make the point better than a slide does.

See your own Peer Cup. Book a demo and we will build a working OpSage App against your locations, live on the call.

 

OpSage Apps arrived in release 0.9.15. Full detail is in the OpSage release notes.

Apps are included with your subscription at every paid tier. See pricing or read the FAQ.

Note: Savora Bowls is a sample brand used to illustrate the Peer Cup. All figures shown are from a demonstration data set.

Share this post