Get a performance report (stored expectation plus live actuals)
GET/api/v1/performance/profiles/:objectType/:objectId/report
Pure read. Returns the stored Monte-Carlo expectation (summary metrics, equity confidence bands sliced to the live track length with a 20-step render floor, and max-drawdown percentiles) for the requested basis, joined with live actuals computed fresh from trade data on every request. No Monte-Carlo runs on this path; the actual side reuses the shared performance service (analysis-table BasicStats plus the realised equity-curve builder) so there is no parallel recompute. The response also carries the tracking verdict: an Eq score (where realised growth sits in the p01..p99 cone at the current step), a DD score (realised drawdown against the simulated MDD99), and a headline verdict with a one-sided drawdown veto applied, all on the actual.counts sample sizes the renderer gates on. The verdict lives here so the web report and the email summary share one source. When the profile has no usable back-test yet (status other than ready) the response is actual-only with noBacktest true, expected null, and assessment null, still a 200. Backs both the web report and the email summary. For an account on a day-basis read the response also carries a distribution block for the CDF statistical composite: the folded back-test day-basis return array (read from the stored return distribution), the live folded day-basis return array, and three empirical goodness-of-fit results (a two-sample Kolmogorov-Smirnov test, a chi-squared goodness-of-fit test, and the Pearson correlation of the Q-Q quantiles), each with a plain-English interpretation. The block is null for a strategy profile, for any trade-basis read, for an account with no stored back-test distribution, and for an account with no live day-basis track. On a short or degenerate live track the goodness-of-fit legs degrade to a null statistic with an annotation rather than erroring, so the endpoint stays a 200.
Request
Responses
- 200
- 400
- 404
The report: profile metadata, status, noBacktest flag, the stored expected side (null when noBacktest), the live actual side (with sample-sufficiency counts plus actualTradeCount, the open + closed + partialClose set that drives the headline Total Trades), and the tracking assessment (Eq / DD scores plus the verdict; null when noBacktest or no live track), and the distribution block (account day-basis only: back-test and live day-basis return arrays plus the K-S, chi-squared, and Pearson goodness-of-fit stats; null otherwise).
objectType is not strategy or account.
No performance profile exists for the object under this user.