Analytics
Reference
SW

Analytics reference

What every number, chart, and label in the analytics section means, how it is calculated, and the full set of values each field can take. This is the source of truth when a metric is unclear. It documents the presentation layer; the developer wires these to the live read model without reshaping them.

How to read this

The analytics section is five screens: Overview (the daily driver), Growth (the analytical dashboard), and three drill-downs, Users, Cards, and Bot Health. Every screen shares the same time range, profit model, and vocabulary, documented first, then each screen is covered in turn.

Metric
A single number, like Realized profit or Completed trades. Hover the small info icon next to any label in the app for its one-line definition.
Infographic
A chart or composed panel, like the profit trend bars or the trade funnel. Each screen section below lists its infographics and what they show.
Data value
A category a field can hold, like a trade Kind of “No offer” or an Intent of “Seller.” The full set for each field is in Data values.
Drill-down
Most numbers are clickable and open a table of the underlying trades, cards, or traders, scoped to the current time range.

Time ranges

The selector in the topbar (Today, 7D, 30D, 90D, All) scopes the entire analytics section. Every metric, chart, and drill-down on every screen re-reads against the selected window.

The five ranges

Today
The current day so far. Special: numbers are pace-fair, they show progress so far today compared against the same point yesterday, plus an on-pace projection for the full day and a “% of day done” marker.
7D / 30D / 90D
The trailing window of that many days, as a period total, compared against the prior window of equal length (for example 7D versus the 7 days before it).
All
The full mock history. There is no prior window of equal length, so comparison deltas read “all time” instead of a percentage.

Comparison labels

A delta next to a metric always compares to the matching prior window:

vs yesterday
Shown on Today. Same time yesterday, so the comparison is fair mid-day.
vs prior 7d / 30d / 90d
Shown on the dated ranges. The immediately preceding window of the same length.
all time
Shown on All, where there is nothing to compare against.

Profit & money model

How profit is booked is the most important convention in the whole section. Read this before trusting any profit number.

Profit is realized on the sell

Profit only exists when a card we bought is later sold. Buying a card is just acquiring inventory, it books no profit on its own, even inside a trade where we also sell cards. When a copy sells, its profit is the sale price minus what we paid for it.

realized profit on a sale = sale price − cost of the copy sold

LIFO cost basis

When we hold several copies of a card bought at different prices, the cost used for a sale is the price of the latest copy we bought (last in, first out). This is the cost basis behind every “Realized” profit figure.

Realized vs Real P&L

Realized profit
Profit actually booked on copies sold, using the LIFO cost above. This is the headline profit everywhere (Overview hero, Growth money panel, the card detail’s Realized P&L stat).
Real P&L
Realized profit adjusted for how the price of the copies we still hold has moved since we bought them. If a card dropped after we bought it, Real P&L sits below Realized. It flags inventory that is quietly losing value. Cards screen only.

Our point of view: Bought and Sold

Money is always framed from our side of the table, never the trader’s:

Bought
Tix we spent buying cards from traders (money out, builds inventory).
Sold
Tix traders paid us for cards they bought (money in).
Net flow
Sold minus Bought. Negative usually means we spent the period building inventory.
Margin
Realized profit as a share of what we Sold. How much of each tix of sales ends up as profit.

Vocabulary

A few words are used precisely and consistently across the section.

Opener
Anyone who opens a trade with a bot, whether or not it finishes. The top of the funnel.
Trader
Someone who actually completes trades. Every trader is an opener; not every opener becomes a trader.
Trade
One trade session: a user opening a trade with a bot and what happened. The unit behind every count. (In the data model this is a trade_session record.)
Completed trades
The conversion metric: of the trades opened, the share that finished. Shown as a percentage.
Opened / Completed
Raw counts of trades started and trades finished in the window.
GB / Goatbots
A competing bot service used as the price reference. “Buy vs GB” and “Sell vs GB” compare our prices to theirs.
tix
Event tickets, the MTGO currency all money figures are denominated in.
Foil
A premium foil printing, marked with the Magic shooting-star symbol next to a card’s set code. Absence of the symbol means a normal copy.

Data values

The complete set of categories each classifying field can take, with the color it uses in the app.

Trade Kind: how a trade ended

One outcome per trade for the higher-level views, derived from the per-trade flags below. When a trade fails on both legs at once the sell-side label (No sale) wins; the flags still record the full story. Priority order, furthest along to least:

Completed
Finished. Cards changed hands and the trade booked.
No sale
The trader picked cards to buy from us but did not confirm or complete. A warm buyer who walked: a pricing or checkout signal.
No buy
The bot offered to buy their cards, but the trader declined the offer. Usually our buy price was not attractive enough.
No offer
The bot wanted none of the cards they brought, so no buy offer was made. A targeting signal: cards we do not buy.
Cancelled
The trader left before the bot responded.

Trade flags: the raw per-leg truth

Because a trade has two independent legs (we buy their cards, they buy ours), the single Kind above cannot hold the whole picture. These flags are logged on every trade and are what the Kind is derived from. They are true or false regardless of how the trade ended, so a completed sell-only trade still shows Nothing to buy. Shown on a trade under What happened.

Picked cards to buy
The trader added our cards to their binder: the sell leg was engaged.
Bot made an offer
The bot offered to buy cards from the trader.
Nothing to buy
The bot found no cards it wanted to buy from the trader.
Reached confirm
The trade reached the final screen where both sides double-check the items.
Completed
The trade finalized and cards changed hands.

Trade lifecycle: the stages a trade passes through

Shown as a stepper on a single trade and as the Growth funnel in aggregate:

  1. 1OpenedA trader opens a trade with a bot.
  2. 2Bot evaluatedThe bot assesses the cards on both legs.
  3. 3Deal on the tableAn actionable deal exists in one or both directions.
  4. 4ConfirmedBoth sides reach the screen to double-check the exact items exchanged.
  5. 5CompletedThe trade finalizes and cards change hands.

Funnel drop reasons: where opens are lost

The same outcomes as Trade Kind, framed as the reason a trade fell out of the funnel:

Cancelled
Left before the bot responded.
No offer
Evaluated, but the bot wanted nothing and the trader picked nothing.
No buy
The bot offered to buy, but the trader declined.
No sale
Reached the confirm step with cards to buy, but abandoned before finishing.
Bounced
A special flag: the trader bailed within 10 seconds of the bot’s response. Tracked as a signal of a bad first impression, not a separate outcome.

Intent: what a trader mostly comes to do

A per-trader rollup across their trades (their majority direction), not any single trade. Every bot always tries to buy the trader’s cards, so the buy leg is universal; intent is about their dominant behavior.

Seller
Mostly sells cards to us. The majority (~60%).
Buyer
Mostly buys cards from us.
Hybrid
Does both in meaningful amounts.

Direction: what a completed trade actually did

We bought
We only bought cards from the trader.
We sold
We only sold cards to the trader.
We bought & sold
We both bought and sold within the one trade.

Trader segments: Users screen

New
First-ever trade with us happened inside the current range.
Returning
Traded with us before this range and came back.
Whale
Top 10% of traders by volume. A handful move a large share of flow.
Costly trader
A trader we tend to lose money on, they time our prices, so their flow nets against us (negative Our profit).

Card flags: Cards screen

Losing shows on both the card list and the card detail; the other two are detail badges. Same words in both places.

Losing
Our sell price has fallen below what we paid for the copies we hold, so selling them today books a loss (Real P&L trails Realized).
Not buying
Traders bring it to sell us but we are not set up to buy it. Every one is a turned-away trade.
Out of stock
Traders tried to buy it from us while we held none. Lost sales.
Foil
A premium foil printing, marked with the shooting-star symbol.

Overview screen

The daily driver. A composed snapshot of how the desk is doing right now, scoped to the selected range. Every number clicks through to its underlying table.

Infographics

Realized profit hero
The headline profit for the range, its comparison delta, and a secondary stat (This week on Today, Daily average otherwise).
Profit trend bars
One bar per bucket over the range (daily, weekly for 90D, monthly for All). Green for a profitable bucket, red for a losing one, most recent bucket brightened. Shows the shape of the window at a glance.
Trade funnel strip
Opened trades, the Completed % between them, and Completed trades, with a bar showing the converted share.
Trade flow
Two bars, cards Bought and cards Sold with the tix each moved, plus Net flow and Profit.

Metrics

Realized profit
Profit booked in the window. See the profit model above.
range profit; on Today, so-far vs same time yesterday, with on-pace projection
This week / Daily average
On Today, profit week-to-date. On any other range, average profit per day across the window.
Opened trades / Completed trades
Trades started and trades finished in the window, each with a delta versus the prior window.
Completed %
The share of opened trades that finished. The conversion metric.
completed ÷ opened
Cards bought / Cards sold
Copies bought and sold and the tix each side moved.
with tix out / tix in
Net flow / Profit
Sold minus Bought in tix, and realized profit for the window.

Growth screen

The analytical dashboard behind the North Star: how many people we pull in and how well we convert and monetize them. Every panel drills down.

Headline metrics

Unique openers
The North Star. How many different people opened a trade with us over the selected window.
distinct users who opened ≥1 trade
New openers
Of the unique openers, those opening with us for the first time ever.
Completed trades
Share of opened trades that finished, across the whole desk.
completed ÷ opened
New-user completion
Completed % for first-time users only. If it falls while openers rise, we are pulling people in and losing them on price or a confusing trade.
Market share
Our bots as a share of all trade ads in the MTGO classifieds. Roughly how much of the shelf is ours (about 99% of MTGO ads are bots, so the denominator is all ads).
our ads ÷ all classified ads

Infographics

Unique openers trend
Openers over time, granularity following the range (daily, weekly, monthly).
Money panel
KPIs (Bought, Sold, Net flow, Realized profit, Margin) over a Bought-vs-Sold bar chart across time.
Trade funnel
Each lifecycle stage with its count and share of opens, and red annotations for where and why trades drop off.
Where opens are lost
The drop reasons broken out (see Data values).
Trade mix
Stacked bars for Intent at open (seller/buyer/hybrid) and Completed direction (we bought/sold/hybrid), plus tix bought and sold.
Ad-card engagement
Per card: ad versions run, opens, completes, and open→complete. Ties classified ads to the demand they drive.
Do traders come back?
A cohort retention grid: of traders who first traded in a given week, how many came back 1, 2, 3+ weeks later.
Market share tile
The current share of the classifieds shelf that is ours.

Users screen

Who trades with us, segmented, and ranked by value. Row click opens a trader’s full profile.

Headline metrics

Traders (today / · 7d / ...)
Distinct people who opened at least one trade in the selected window, finished or not. The label follows the range: Traders today, Traders · 7d, and so on.
New traders / Returning traders
First-timers this range, and those who had traded before and came back.
Whales / Costly traders
Top 10% by volume, and traders whose flow nets against us. See segments in Data values.

Leaderboard columns

Username / Intent
The account, and its Seller / Buyer / Hybrid rollup.
Opened Trades / Completed Trades / Completed %
Trades opened, finished, and the ratio, for that trader.
Cards Bought / Cards Sold
Cards we bought from them (with the tix we paid) and cards we sold them (with the tix they paid).
our point of view
Our profit
Our estimated profit from this trader across all their trades. Negative means they cost us, usually by timing our prices.
+ makes us money, − costs us
Last seen
How long since their last trade.

Trader detail

Weekly activity, the cards they trade, an at-risk / high-value read, and their trades today. Same metrics as the leaderboard, expanded for one trader.

Cards screen

The market-maker command center: what we hold, our price position versus Goatbots, how much buy headroom is left, and where we are losing money. Row click opens the card’s detail.

Prices last updated

A stamp above the table showing when our prices were last pushed, so you know how fresh every mark on the screen is.

Cards we're losing on

Two tables at the top separating money already lost from money still at risk:

Losing sells
Realized. Completed sells that cleared below what we paid, one row per trade, sorted by the loss booked.
Underwater inventory
Unrealized. Copies we still hold whose current sell price is below our cost, with the exposure if we liquidated them today.

Table columns

Card
Name, set code, a foil symbol on foil printings, and a red Losing tag when our sell price has dropped below what we paid.
Copies
How many copies of the card we currently hold.
Inventory Value
Total value of the copies we hold, marked at our buy price. Buy price is a truer estimate of what we could liquidate them for than the sell price.
copies × our buy price
Buy vs GB / Sell vs GB
Our buy and sell price versus Goatbots. Positive Buy vs GB means we pay sellers more (attractive to sell to us); negative Sell vs GB means we sell cheaper (attractive to buy from us).
Copies until limit
How many more copies we will still buy before hitting the card’s buy limit. Reads “limit reached” at zero.
Last Sold
How long ago we last sold a copy.
Search
A search box filters the table by card name or set code.

Card detail

A stat row (Buyers, Sellers, Inventory, Turnover, Realized P&L, Real P&L) and flag badges (adverse selection, missing target, demand not stocked) up top; a price-vs-Goatbots line chart (our buy, our sell, Goatbots); inventory and flow over time; the 15-minute repricings and price-update lag; the full transaction ledger (each buy and sell with counterparty, bot, price, time); and the trades that touched the card today. Foil printings show the shooting-star symbol by the set code.

Bot Health screen

Fleet operations: are the bots up, and how much are they each moving. Row click opens a bot’s detail.

Headline metrics

Avg uptime
Average share of time the bots were online and trading over the range.
Trades opened / Completed
Fleet-wide trades opened and finished, the Completed card carrying the conversion share.
Fleet volume
Total tix traded across the fleet.
Bots offline
Bots currently offline. Bots are interchangeable workers, so one offline is not an outage but needs attention.

Table columns

Type
What the bot does: banker (holds the fleet’s tix), depot (holds cards), census, sell, or buy. One each of banker, depot, and census, a couple of sell bots, the rest buy.
Status / Uptime
Whether the bot is running (Open, Busy, Starting up, Offline), and its uptime for the range.
Trades Opened / Trades Completed / Trades Completed %
That bot’s opened, finished, and conversion.
Tix Spent / Errors
Tix the bot spent buying, and disconnects or errors.
Last seen
Time since the bot last checked in.

Bot detail

The stat row depends on the bot. Buy bots show Cards bought, Tix spent, Opened, Completed, Errors and Uptime; sell bots show volume in place of the buy figures; support bots (banker, depot, census) show only Uptime and Errors alongside what they hold (the banker’s tix, the depot’s cards). Trading bots also show per-bot ad performance by window with the cards each ad drove, and every bot lists its trades today.

Mock data, stub actions. Numbers on the live screens are seeded and deterministic, not real trading data.