Methodology

Every number Teloris shows has a definition you can read.

When two screens show different numbers for the same name, you lose trust in the platform. This page is the single explanation layer — what each metric measures, where the data comes from, and which numbers should not be added together even though they look like they should.

25 canonical metrics, grouped by domain.

Why this page exists

Two screens, one name, two different totals.

In an early audit of the platform, a reviewer found one dashboard tile labeled “Revenue” showing €21,500, while another tile elsewhere — also labeled “Revenue” — showed €89,227 for the same month. Both numbers were correct. They simply measured different things:

  • Sales Revenue — invoices issued, recognized in accounting. One sale of €1,000 contributes €1,000, once.
  • Marketing-Attributed Revenue — the revenue each ad platform claims its pixel drove. If a buyer clicked a Meta ad on Monday and a Google ad on Tuesday before purchasing, both platforms claim that sale. The same €1,000 can appear twice in the platform reports.

The fix wasn’t to pick one and hide the other — both are useful. The fix was to name them distinctly, to disclose the relationship explicitly, and to refuse to cross-sum them on any screen. Every metric below carries that disclosure.

The scale-down model

Bringing platform claims back to reality.

When the sum of ad-platform revenue claims exceeds the actual P&L Sales Revenue for the same period, double-counting is happening — multiple platforms are taking credit for the same conversions. Teloris reconciles this with a simple proportional scale-down:

scale_factor = pnl_revenue / sum_of_platform_claims
scaled_revenue = raw_revenue × scale_factor

When the platforms collectively claim more than the P&L confirms, every campaign’s claim is scaled down proportionally so the totals reconcile — per-campaign rankings are preserved, but the sum no longer overstates reality.

SCALED mode (default)

Platform claims are scaled so their sum matches P&L revenue. Honest totals out of the box; per-campaign proportions kept intact for ranking and attribution analysis.

RAW mode (opt-in)

Each platform’s claim is shown as-is, without normalization. Useful when you have external attribution analytics and want the raw signal — at the cost of cross-platform double-counting.

The mode is a per-tenant setting in your team configuration. The default is SCALED for new tenants.

Sales

What the pipeline looks like — leads, deals, win rate.

Total leads

leads_total

How many leads have ever been recorded for your team.

Source
Lead rows in your sales database
Unit
count
Formula
Every uploaded lead row — no deduplication by email or phone, so the same person uploaded twice is counted twice.
Default window
lifetime
Also available
MTDlast 30 dayslast 90 days

Open deals

deals_open_count

Count of deals currently in motion — anything that has not yet been won or lost.

Source
Deal rows in your sales database
Unit
count
Formula
Stage is one of Prospecting, Qualification, Proposal, or Negotiation. Excludes Closed-Won and Closed-Lost.
Default window
now (state metric)

Pipeline value

deals_open_value

Total euro value of all open deals — the unweighted pipeline.

Source
Deal rows in your sales database
Unit
base currency (€ / RON / …)
Formula
Sum of `amount` for deals in stages Prospecting → Negotiation. No probability weighting.
Default window
now (state metric)
Do not cross-sum with

These metrics share parts of their name with this one but measure a different concept. Adding them together produces a misleading total.

Pipeline value (weighted)

pipeline_value_weighted

Open-pipeline value adjusted for the probability of each deal closing.

Source
Deal rows in your sales database
Unit
base currency (€ / RON / …)
Formula
Sum of `amount × (probabilityPct / 100)` for open deals. Deals without a probability contribute zero (excluded).
Default window
now (state metric)
Do not cross-sum with

These metrics share parts of their name with this one but measure a different concept. Adding them together produces a misleading total.

Close rate (resolved deals)

win_rate

Of the deals that have resolved (won or lost), the share you actually won.

Source
Deal rows in your sales database
Unit
ratio (×)
Formula
closed_won / (closed_won + closed_lost). Open deals are not in the denominator — this is the close rate on resolved deals only.
Default window
now (state metric)
Related

Marketing

Paid advertising performance — spend, attribution, ROAS, budget pacing.

Ad spend

ad_spend

Total euros spent on paid advertising in the window — ACTUAL spend only, planned budgets excluded.

Source
Ad performance rows (Meta / Google / LinkedIn / etc.)
Unit
mixed native currencies
Formula
Sum of `spend`, scenario = ACTUAL, within the window. Reported in the raw row currency — see ad_spend_per_platform for ECB-converted base-currency totals.
Default window
MTD
Also available
last 7 dayslast 14 dayslast 30 dayslast 90 dayslifetimecustom range
Do not cross-sum with

These metrics share parts of their name with this one but measure a different concept. Adding them together produces a misleading total.

Ad spend per platform

ad_spend_per_platform

Ad spend (and attributed revenue) broken down by platform — Meta, Google, LinkedIn, TikTok, etc.

Source
Ad performance rows grouped by platform
Unit
structured (list / map)
Formula
Per-platform sum of `spend` + `revenue`, ACTUAL scenario, each row converted to your base currency via ECB rates on the row date.
Default window
last 30 days
Also available
MTDlast 7 dayslast 14 dayslast 90 dayslifetimecustom range

Ad spend by native currency

ad_spend_per_currency

Raw ad spend per native currency, no conversion. Useful when you want to see your multi-currency exposure.

Source
Ad performance rows grouped by currency
Unit
structured (list / map)
Formula
Per-currency sum of `spend`, ACTUAL scenario. Currencies returned as ISO 4217 codes (EUR, USD, RON, …).
Default window
lifetime
Also available
MTDlast 7 dayslast 14 dayslast 30 dayslast 90 dayscustom range

Top campaigns by ad spend

ad_spend_top_campaigns

Top 5 campaigns ranked by spend in the window — where the budget actually went.

Source
Ad performance rows grouped by (campaign, platform)
Unit
structured (list / map)
Formula
Top 5 by sum of `spend`, ACTUAL scenario, within the window. Native currency.
Default window
last 30 days
Also available
MTDlast 7 dayslast 14 dayslast 90 dayslifetimecustom range

Top campaigns by attributed revenue

ad_revenue_top_campaigns

Top 5 campaigns ranked by the revenue each platform claims it drove.

Source
Ad performance rows grouped by (campaign, platform)
Unit
structured (list / map)
Formula
Top 5 by sum of `revenue`, ACTUAL scenario, within the window. Raw platform claims — caller may apply attribution scaling before display.
Default window
last 30 days
Also available
MTDlast 7 dayslast 14 dayslast 90 dayslifetimecustom range
Do not cross-sum with

These metrics share parts of their name with this one but measure a different concept. Adding them together produces a misleading total.

Marketing-Attributed Revenue

ad_revenue

Marketing-Attributed Revenue — what each ad platform claims its pixel/UTM credit drove. NOT the same as P&L Sales Revenue.

Source
Ad performance rows (the `revenue` column reported by each ad platform)
Unit
mixed native currencies
Formula
Sum of `revenue`, ACTUAL scenario, within the window. In SCALED attribution mode (default), the raw sum is scaled proportionally to match P&L revenue — see "The Scale-Down Model" above. In RAW mode, each platform's claim is shown as-is.
Default window
last 30 days
Also available
MTDlast 7 dayslast 14 dayslast 90 dayslifetimecustom range
Do not cross-sum with

These metrics share parts of their name with this one but measure a different concept. Adding them together produces a misleading total.

Return on ad spend

roas

Return on Ad Spend — attributed revenue divided by spend. 3.0× means every €1 spent returned €3 in claimed revenue.

Source
Derived from ad_revenue and ad_spend
Unit
ratio (×)
Formula
ad_revenue / ad_spend, ACTUAL scenario, within the window. Returns 0 when spend is 0.
Default window
last 30 days
Also available
MTDlast 7 dayslast 14 dayslast 90 dayslifetimecustom range

Active campaigns

ad_active_campaigns

Count of distinct campaigns that had any spend or impressions in the window.

Source
Ad performance rows (distinct campaign names)
Unit
count
Formula
Distinct count of `campaignName`, ACTUAL scenario, within the window.
Default window
last 30 days
Also available
MTDlast 7 dayslast 14 dayslast 90 dayslifetimecustom range

Ad aggregate per campaign

ad_aggregate_per_campaign

Rich per-campaign aggregate (native currency) — DEPRECATED for total-display callers; use ad_aggregate_per_campaign_base instead. Retained for callers that need per-row native amounts.

Source
Ad performance rows grouped by (platform, campaign)
Unit
structured (list / map)
Formula
Sum of spend / impressions / clicks / revenue per (platform, campaign), ACTUAL scenario, within the window. Native row currency — sums across mixed-currency rows are mathematically invalid.
Default window
last 30 days
Also available
MTDlast 7 dayslast 14 dayslast 90 dayslifetimecustom range

Ad aggregate per campaign (base currency)

ad_aggregate_per_campaign_base

Rich per-campaign aggregate with spend + revenue converted to your base currency via ECB — the variant every tile uses.

Source
Ad performance rows grouped by (platform, campaign), each row converted at the FX rate effective on its date
Unit
structured (list / map)
Formula
Sum of spend / impressions / clicks / revenue per (platform, campaign), ACTUAL scenario, within the window. Spend + revenue in base currency. Rows whose currency has no FX rate for their date are skipped (count exposed as `unconvertedRowCount`).
Default window
last 30 days
Also available
MTDlast 7 dayslast 14 dayslast 90 dayslifetimecustom range

Ad budget

ad_budget

Planned ad spend (BUDGET-scenario rows) — what the team committed to spend, separate from what was actually spent.

Source
Ad performance rows with scenario = BUDGET
Unit
mixed native currencies
Formula
Sum of `spend` for BUDGET-scenario rows (parsed from a `planned_spend` column on upload) within the window.
Default window
MTD
Also available
last 7 dayslast 14 dayslast 30 dayslast 90 dayslifetimecustom range
Do not cross-sum with

These metrics share parts of their name with this one but measure a different concept. Adding them together produces a misleading total.

Ad spend variance per campaign

ad_spend_variance_per_campaign

For each campaign, how far ACTUAL spend deviated from BUDGET on the latest ad upload.

Source
Latest marketing.ads upload, both BUDGET and ACTUAL rows
Unit
structured (list / map)
Formula
For each (platform, campaign): actual − budget. Pacing bucket: over (>+10%), on-track (±10%), under (<−10%), or no-budget / no-actual.
Default window
lifetime

Ad spend (internal launches)

ad_spend_internal

Lifetime spend on campaigns launched directly from Teloris (internal Campaign rows, distinct from the ad-platform export).

Source
Campaign rows launched from inside Teloris
Unit
base currency (€ / RON / …)
Formula
Sum of `spend` for Campaign rows with status = LAUNCHED. Lifetime only — Campaign rows lack a robust date filter.
Default window
lifetime
Do not cross-sum with

These metrics share parts of their name with this one but measure a different concept. Adding them together produces a misleading total.

Ad spend per internal campaign

ad_spend_internal_per_campaign

Per-campaign rich shape for internally-launched campaigns — spend, budget, pacing, days live.

Source
Campaign rows launched from inside Teloris
Unit
structured (list / map)
Formula
For each LAUNCHED Campaign: spend, budget (from brief), durationDays, daysLive, pacingPct (spend ÷ expected spend). Lifetime.
Default window
lifetime

Finance

Revenue recognized in accounting, cash position, burn, and runway.

Sales Revenue

revenue_mtd

P&L Sales Revenue — invoices issued / cash recognized in accounting for the window.

Source
P&L entries (the "revenue" rows in your financial export)
Unit
base currency (€ / RON / …)
Formula
category = REVENUE, scenario = ACTUAL, atomic (non-derived) rows only. Period filter follows the chosen window.
Default window
MTD
Also available
last 30 dayslast 90 dayscustom range
Do not cross-sum with

These metrics share parts of their name with this one but measure a different concept. Adding them together produces a misleading total.

Cash on hand

cash_on_hand

Implied running balance: every cash inflow minus every cash outflow you have uploaded.

Source
Cashflow transaction rows
Unit
base currency (€ / RON / …)
Formula
sum(IN amounts) − sum(OUT amounts), ACTUAL scenario, atomic rows only. All currencies converted to your base currency.
Default window
now (state metric)

Monthly burn

monthly_burn

Average monthly net cash bleed over the window — outflow minus inflow, divided by months.

Source
Cashflow transaction rows
Unit
base currency (€ / RON / …)
Formula
(total outflow − total inflow) / months in window, ACTUAL scenario, atomic rows only. Returns 0 when net flow is non-negative (cash-positive).
Default window
last 90 days
Also available
last 30 dayscustom range

Runway

runway_months

Months of operating cash remaining at the current burn rate. The single most important early-stage finance number.

Source
Derived from cash_on_hand and monthly_burn
Unit
count
Formula
cash_on_hand / monthly_burn. Returns ∞ when burn is zero (cash-positive). Burn window adjustable; cash is always point-in-time.
Default window
last 90 days
Also available
last 30 dayscustom range

Cash collections

cash_collections

Actual cash received in the window — answers "how much cash did we collect this month?"

Source
Cashflow transaction rows
Unit
base currency (€ / RON / …)
Formula
Sum of IN amounts, ACTUAL scenario, atomic rows only, within the window. All currencies converted to your base currency.
Default window
MTD
Also available
last 30 dayslast 90 dayscustom range
Do not cross-sum with

These metrics share parts of their name with this one but measure a different concept. Adding them together produces a misleading total.

System

Platform usage and cost metrics.

AI spend MTD

ai_spend_mtd

Month-to-date cost (in USD) of the LLM API calls Teloris made on behalf of your tenant.

Source
UsageRecord rows (one per LLM call)
Unit
USD
Formula
Sum of `costUSD` month-to-date. Denominated in USD because LLM providers bill in USD.
Default window
MTD
Also available
last 30 dayslast 90 days

If two screens disagree on a number with the same name, that is a bug — not a tradeoff. Every metric on this page is computed from a single canonical definition, queried from one shared registry, so the answer to “what is our revenue this month?” is the same on the dashboard, in the morning briefing, and inside the chat.