Skip to content

Portfolio Optimization

An optimization is a proposal of budget changes for the contents of a portfolio, generated by Nexoya's optimization engine. It compares a baseline (current budget allocation) against a predicted outcome (proposed reallocation) for each funnel step. Learn more about how portfolio optimization works, optimization types, and understanding optimization uplift.

Prerequisites

Optimization must be enabled and an active optimization period must exist for the portfolio. If there is no active optimization, the field returns null.

Get the active optimization

Apollo Studio

graphql
query PortfolioOptimization($teamId: Int!, $portfolioId: Int!) {
  portfolioV2(teamId: $teamId, portfolioId: $portfolioId) {
    activeOptimization {
      optimizationId
      start
      end
      totalBudget

      performance {
        total {
          budget {
            spent
            proposed
            changePercent
          }
          funnelSteps {
            metric {
              baseline
              predicted
              changePercent
            }
            costPer {
              baseline
              predicted
              changePercent
            }
          }
        }
      }
    }
  }
}

Variables

json
{
  "teamId": 123,
  "portfolioId": 456
}

Understanding the response

The funnelSteps array in performance.total corresponds index-for-index to the portfolio's funnel steps (retrieved via the portfolio funnel steps query).

FieldDescription
totalBudgetThe total budget amount allocated for the optimization period (scalar)
budget.spentBudget already spent in the current optimization period
budget.proposedTotal budget proposed by the optimization
budget.changePercentPercentage change between proposed and spent budgets
metric.baselineExpected metric value with the current budget allocation
metric.predictedExpected metric value after applying the proposed reallocation
metric.changePercentPercentage improvement in metric: ((predicted - baseline) / baseline) * 100
costPer.baselineCost-per-conversion with the current allocation
costPer.predictedCost-per-conversion with the proposed allocation
costPer.changePercentPercentage change in cost-per: negative means lower cost (improvement)