Run-rate is the annualised earnings growth Upwork Insights measures for an agency or freelancer by reading the lifetime total earned on the public page at two different times, at least 14 days apart, and scaling the difference to a year.
Upwork maintains a lifetime counter of total earned on every public agency page. Read it twice and the difference is money that was actually earned between the two reads. The index takes the newest observation, finds the oldest observation inside the preceding 90 days that is at least 14 days older, and if there is none, the most recent observation older than 14 days, and divides the gain by the days between them, multiplied by 365.25. The result is a per-year figure, shown on the page with the two dates and the length of the observation window, and a monthly equivalent beside it. A counter that went down, which can happen after a refund, measures as zero rather than negative.
Until two observations exist the page says "pending" rather than printing a number. Archived captures count as earlier observations, which is why some agencies show a run-rate on the first day they are indexed, over a long window.
It is not the "MRR" other leaderboards print. Those take the most recently ended contract, or six months of visible contract values, and divide; the public page does not say when money was earned, so that figure is a guess. Run-rate is slower and only ever says what the counter did. It is also not a forecast: a 30-day window that happened to include one large milestone annualises to a large number.
How Upwork Insights uses it
Run-rate is the measured half of the momentum component of the Index Score, set against lifetime pace, and it feeds the valuation tool when one exists. Claimed pages are re-read weekly so the figure appears sooner and stays current; the rest of the 28,921 agencies are re-read on a rolling schedule. Method in methodology, section 2.