MARPLA / Help center

User guide

Read purchase and price charts

History at the bottom of the card helps compare product sales before and after changes.

How to use it

  1. Choose a range and a metric: Sales total or Units sold. In Revenue by hour, the composition below the chart follows its range and selected day. Old totals are hidden while loading. In the overall revenue chart, All time combines completed months with available days of other months without double-counting.
  2. Total shows the overall result; Per player shows the average per active player.
  3. In a product card, select Price to add its line. On a group chart, Price shows the mean known price, and Sales / units divides combined revenue by same-day purchases. Select Milestones and choose the event types to compare with sales.
  4. Hover over a point for its exact value. Pink lines mark gaps temporarily displayed as zeros.

Advice and practical context

Per player is not per payer

A per-active-player metric normalizes results by audience size, but it is not average spend per paying user. Total sales can rise only because traffic increased while the per-player value stays flat or declines.

Gaps and milestones

Compare a price milestone across complete pre- and post-periods while checking ads and releases. A pink connector or gap marks missing data, not zero purchases. Do not estimate price impact from one adjacent point.

For repeat-purchase products, inspect unit count as one payer can create several transactions and lift the per-player value. Understanding payers requires the matching owner-only metrics; public or general normalization cannot replace them.

Group price and revenue per purchase

On a group chart, Price shows the arithmetic mean of known prices at the end of each UTC day. Before its first saved observation, a product is excluded from the mean. Sales / units divides combined revenue by combined purchases on the same date, including products with both metrics and positive purchases. This is not the catalog base price; neither metric is divided by DAU.

Technical detailsCalculations, permissions and behavior

Product: total or per player

In My games → Analytics → Monetization, select a product, then choose Total or Per player above its detailed chart. AI advice sits below the product or chart title on the left. Clicking a column title changes sorting without focus frames; keyboard navigation outlines only the button.

Calculation explanations are in the book-icon guide instead of permanent text blocks above the chart. Units sold uses official Roblox sales counts; Sales total uses earned Robux. Purchase counts are never estimated from revenue and the current price.

Categories sum saved purchases for loaded products, with unknown categories shown separately. Product buttons toggle lines; double-click leaves just one line. The current day is incomplete and Roblox may revise recent days.

The selection is saved separately for that product in that game and works for both Robux and Units sold. The product group chart uses the same Sales total, Units sold, Total and Per player buttons with icons. The calculation mode is saved separately for each group and applies to the whole group, top products, other products and individual lines.

Each daily Per player point is product revenue or exact purchases divided by the game's official unique active players (DailyActiveUsers, DAU) on the same Roblox reporting day. This includes all active players, not only buyers or concurrent players (CCU). Purchases per player can be fractional.

For example, 600 Robux ÷ 1,200 DAU = 0.5 Robux per player. When DAU is missing or zero, the actual value remains unknown. Missing values appear as gaps in the line and do not enter calculations, minimum, maximum or the observed point count.

Product prices and price-change markers remain absolute. Products in period has an independent Total / Per player switch for the table and rankings of all products, groups and the selected group. Period sales are divided by the sum of official DAU on dates with saved sales.

A group first sums its product amounts and counts DAU once per date. If DAU is missing or zero on any such date, the average remains unknown. Growth compares the two period averages.

Prices and product counts stay unchanged. Per player refreshes saved DAU every 30 seconds while the page is visible. Charts share identical requests and the server respects collection intervals and Roblox limits.

Recent DAU may arrive later than sales; those dates remain unavailable until DAU arrives. Amounts use the Robux icon before the number. Compare days before and after a price change while considering audience composition: this chart adjusts for audience size, but alone does not prove a causal price effect.

Group price and sales / units

On the group chart, Price shows the arithmetic mean of saved product prices at the end of each UTC day. Prices before the first observation are unknown; the mean includes only products with a known price. Sales / units divides combined revenue by combined units on the same date, using only products with both metrics and positive units.

This is revenue per purchase, not the catalog base price. Per player does not apply to these two metrics.

Returning through a note

A note link restores the chart and selected metrics, without opening the product editor. Navigating to another section or metric ends the note target, so refreshing does not reopen the old card.

Product group milestones

On a group chart, Milestones controls ordinary game events and automatic price changes for every product in that group. Prices of unrelated products are excluded. Hiding a product line does not hide its price changes.

Choose milestone types in the menu and hover a marker for the product name, old and new price, and change time. Saved events in the selected period are shown, including days without sales; grouped events are not duplicated.

Missing data

Known points on either side of missing days are connected in pink. This marks missing data, not calculated sales; no intermediate observations or zeros are added. If DAU is unavailable for a day, its per-player value cannot be calculated: select Total to see Roblox revenue or purchases.

Card synchronization prioritizes revenue, purchases and overall DAU. While the card is open, newly saved data is picked up automatically. Each day uses the same game’s DAU for that day; custom event averages and summed segments do not replace it.

Open a product chart

Click a product row in the revenue ranking, purchase ranking or table. Space for the chart is reserved immediately, before history loads, and stays below the header when it arrives. Its detailed chart scrolls to the top below the fixed header.

Repeated clicks on the same product also scroll; table rows support Enter and Space. Rankings use one shared header: Product, Group, Price, Robux and Units are sortable by selecting the column name.

Milestones

The button beside the chart style opens every recorded milestone type for the game and this product's price changes. All milestones enables them together, while any type can be disabled independently. The filter does not hide sales data, the price line or benchmark bands.

With no milestones for the range, the button is disabled with an explanation.

Price · right axis

Price adds a step line of the recorded base price in Robux on an independent right axis. It does not change the revenue, purchases or per-player scale. A known price is carried forward until the next observation; there is no line before the first observation.

Without history, the button is disabled: today's price is never projected into the past or estimated from revenue.

Price collection and history line

MARPLA polls the Roblox catalog with a target interval of one hour and stores the price, source and observation time. Open Cloud is tried first with developer-product:read and game-pass:read. When creator access is denied, the server reads Roblox's official public storefront without a key.

Its price is labelled separately and does not guarantee any player's personalized or regional price; it grants no product editing rights. Saved products absent from the public list are retained. Every catalog page stores observations and a complete sweep updates the catalog; Roblox limits can add delay.

The open page reads saved prices every 30 seconds. Hover over sync beside the day for errors. Select a product and Price for a stepped history on a separate right Robux axis, including Per player mode.

History starts at the first observation; today's price is never projected backwards. Revenue divided by purchases is not a base price. Change times mean detection; switching sources is not reported as a confirmed owner price change.

Total and Per player in charts

Count charts for plays, impressions, sales, revenue and total playtime offer Total and Per player. The choice is stored separately for each user, game and metric and survives breakdown changes. Per player = value / official whole-game DAU on the same UTC date, matching product analytics.

A category line expresses its contribution per active game player, not an average over that category's members. Daily source data is requested automatically. Week and month sum values and daily DAU within the selected range: sum of values / sum of DAU, i.e. per player-day, not per distinct weekly or monthly person.

Intraday steps are unavailable in this mode because daily DAU is not an hourly audience. Missing DAU leaves a gap; an observed zero sale with known DAU stays zero. Percentages, retention, DAU/MAU, average sessions and already-normalized metrics are not divided again.

Absolute percentiles are hidden in Per player mode because their units differ.

Revenue cards

All time combines completed Roblox months with available daily data for other months, including the current month. Each month is counted once. The current month is marked as partial with the latest available day.

Revenue in available history does not claim a complete lifetime total when earlier records are unavailable. Missing days are never replaced with zero. Average monthly revenue includes partial months.

A detailed revenue chart uses one consistent layout for the current point, average revenue and the total for the selected range. The current-point card shows its actual date directly, without a Latest value label. Every monetary value uses a large, light hexagonal Robux symbol and a large amount.

The coloured percentage trend sits on the same line as the current amount; no separate second amount from the prior period is displayed. Average and range-total cards show the actual Europe/Lisbon date range below their titles.