StatPro Revolution Web API
- An additional property
securityAllocationClassifiershas been added to the Portfolio Analysis resource and all other related portfolio analysis resources (except the compliance portfolio analysis for which these are not applicable). This property contains up to 14 security allocation classifiers where each one corresponds to one of the segment measures for AdditionalClassificationXCode and AdditionalClassificationXName.
- Additional properties for Time to Liquidate bands have been added to the UCITS results under the ComplianceTotalResults resource.
- Additional properties
InvestmentStrategyadded to the PortfolioAnalysis resource, the CompliancePortfolioAnalysis resource, the SignedOffPortfolioAnalysis resource and the AwaitingSign-OffPortfolioAnalysis resource.
- Following on from February 2017's changes with respect to batch-mode access using Batch applications (see below), the ability for users to create new batch authorizations via the StatPro Revolution API Authorization Management website has been removed. All new batch authorizations are now created by StatPro Client Services for Data Feed User accounts. Note that existing batch authorizations for normal (aka interactive) users will still work, and they can be reviewed / revoked via the API Authorization Management website. It is recommended that existing batch authorizations be phased out, and replaced with batch authorizations for Data Feed User accounts; please talk to your StatPro Client Services representative for further help.
- New Portfolio Analysis Controller resource added allowing for the triggering of a re-calculation of one or more custom time periods for default, awaiting sign-off and signed-off analyses. This enables clients of the Web API to extract analysis results at any level (total, segment or security level) for any combination of requested dates on-the-fly.
- New Custom Time Period Portfolio Analysis resource added to represent the resulting analysis type produced from the new Portfolio Analysis Controller resource when triggering the calculation of custom time periods.
- New Compliance Backtesting History resource added allowing access to the compliance backtesting history of a particular portfolio.
- New Compliance Validation History resource added allowing access to the compliance validation history of a particular portfolio.
- New Historical Risk Trends resource added allowing access to the historical risk trends of a particular portfolio.
- New Liquidity Risk History resource added allowing access to the liquidity risk history of a particular portfolio.
- New Portfolio Comments resource added allowing access to the portfolio comments for both compliance validation history and compliance backtesting history, for a particular portfolio.
New Segments Tree Measures added:
New Time Series Measures added:
UCITSLeverageFlagadded to the ComplianceTotalResults resource.
stressTestMaximumThresholdadded to the
commitmentLeverageMonitoringsection of the CompliancePortfolioAnalysis resource.
For batch-mode access using Batch applications, it is no longer recommended that users manually create their own "batch authorizations" using the StatPro Revolution API Authorization Management website. Instead, the preferred method is to use Data Feed User accounts for batch access. Data Feed User accounts are long-lived, non-interactive and inherently "batch" in nature. Data Feed User (DFU) accounts are created and administered by StatPro Client Services. Client Services, as opposed to users, create batch authorizations for DFUs, and email the details of these batch authorizations to owners of the tenancies involved.
Following on from point 1:- the previous method of users creating their own batch authorizations is deprecated, and should no longer be used. The ability for users to create their own (new) batch authorizations still exists, but will be removed in the future. Existing batch authorizations for normal users (i.e. non-DFU accounts) will continue to work for the time being, but may become unsupported in the longer-term future. For more details about this change, and how you should plan to migrate existing batch authorizations, see Using Data Feed User accounts for batch access.
New Segments Tree Measures added:
Interactive applications (Server-Side Web apps and Native apps) can now opt-in to a new feature that allows the user to grant access to data in one of his/her alternative tenancies (i.e. a tenancy that the user is a member of, where the tenancy is not the user's home, or primary, tenancy). See the Authorization section's Tenancy Selection page for full details.
New Benchmarks resource added allowing access to all available benchmarks.
New Risk Free Rates resource added allowing access to all available risk free rates.
New Portfolio Share Classes resource added allowing access to all available portfolio share classes.
New Portfolio Return Definitions resource added allowing access to all available portfolio return definitions.
In the Portfolio Analysis resource (and other related portfolio analysis resources) some new properties have been added.
New Interactive Statistics Analysis resource added .
New Segments Tree Measures added:
New Time Series Measures added:
IsBalancedadded to the Classifiers resource.
Added new optional properties to the Portfolios resource for
Added new property to the Portfolio Analysis resource (and other related portfolio analysis resources) for
EarliestDateindicating the earliest date used by the portfolio analysis.
New Classifiers resource added allowing access to all of the available classifiers.
Added support for overriding classifiers in the Interactive Risk Analysis resource.
In the Portfolio Analysis resource (and other related portfolio analysis resources) the classifier 'id' is now also exposed in the resource representation (previously only the classifier names were exposed).
New Segments Tree Measures added:
A new Interactive Risk Analysis resource has been added.
Added new analysis code property to Portfolio Analysis resources.
Added new benchmark code and description properties to Portfolio Analysis resources.
Added new 'portfolioTier' property to Portfolio Analysis resources. This is property supercedes the 'portfolioType' property which is retained for backwards compatibility.
Fixed issue with total level currency overlay not showing results when applying custom time periods in the Mutiple OCP Time Series resource.
Start/End Time Series measures are now compoundable via Time Series and Multiple OCP Time Series resources (57 measures affected - for example, WpEnd, WpStart etc). Previously, they would show no value, now they show the earliest or latest value accordingly over the time period requested.
New Segments Tree Measures added:
Additional portfolio properties for portfolio identifiers, reporting tags, calculation type and calculation context have been added to the Portfolios and Portfolio Reporting Components resources.
A new Portfolio Reporting Tags resource has been introduced to enable the extraction of the available reporting tags within a tenancy.
Results can now be extracted for portfolios that have had specific start and end dates configured in the Portfolio Sign-Off Dashboard within the Revolution website (i.e. ones that have been proposed for sign-off and subsequently signed-off). Awaiting Sign-Off Portfolio Analysis and Signed-Off Portfolio Analysis are new resources very similar in structure to the default Portfolio Analysis allowing clients to extract these signed-off and/or awaiting sign-off analysis results.
Portfolios which have been configured to be reporting component alternative settings portfolios are now no longer extracted from the Portfolios resource and are accessed via a new Portfolio Reporting Components resource from the parent portfolio. This better mirrors the way the Revolution website treats these portfolios and allows client applications to more easily interact with such portfolio configurations.
New Segments Tree measures for classifications :
Parent Segment Name
Additional Classification Level 1 Code
Additional Classification Level 1 Name
Additional Classification Level 2 Code
Additional Classification Level 2 Name
Additional Classification Level 3 Code
Additional Classification Level 3 Name
Additional Classification Level 4 Code
Additional Classification Level 4 Name
Classification 1 Code
Classification 1 Name
Classification 2 Code
Classification 2 Name
Classification 3 Code
Classification 3 Name
- New Segments Tree and Time Series measures for Equity Risk Numbers:
Dividend Yield End
Dividend Yield Start
Earnings Yield End
Earnings Yield Start
Market Cap End
Market Cap Start
PB Ratio End
PB Ratio Start
PCF Ratio End
PCF Ratio Start
PE Ratio End
PE Ratio Start
PS Ratio End
PS Ratio Start
- New Segment Tree and Time Series measures for Currency Overlay:
Benchmark Residual ([CUR])
Benchmark Residual ([CUR]) (Geometric)
Hedged Currency Contribution ([CUR])
Hedged Weight Mean
Hedged Weight Start
Hedged Weight End
Unhedged Currency Contribution ([CUR])
Unhedged Weight Mean
Unhedged Weight Start
Unhedged Weight End
Compliance Portfolio Analysis and Compliance Total Results are new resources that allow calling applications to get information relating to portfolios that have been activated for compliance. For each of these portfolios (only), the Portfolios resource exposes a link to the Compliance Portfolio Analysis resource. From there, depending on the status of the compliance analysis, an additional link is exposed to access the Compliance Total Results resource, which contains a large number of total level, compliance-related analytics. For further details, please see the specific documentation pages for the Compliance Portfolio Analysis's link relation and resource, and also the Compliance Total Results link relation and resource.
Whole Segments Tree is a new resource that allows calling applications to get the whole Segments Tree (all segments and all securities) in one request, as opposed to accessing the tree one node at a time via the Segments Tree Node resource. Unlike other resources, the output representation is in a super-compact CSV format (only); XML and JSON formats are not supported. The Whole Segments Tree also publicly exposes segment identifiers, and these are required for requests to the new Multiple OCP Time Series resource (see below). For further details, please see the specific documentation pages for the Whole Segments Tree's link relation and resource.
Multiple OCP Time Series is a new resource that allows calling applications to get Overall Custom Period compounded time series data for multiple measures, multiple segments and multiple time periods in one request. Generally, this will be more efficient than making multiple, separate requests for the same data from the Time Series resource. Unlike other resources, the query data for a request is too complex to be specified in a few URI query strings. For this reason, the query data is included in the entity body of the request, which - unlike other resources - must be sent to the web service via the HTTPS POST method. A request for data must identify one or more segments from the same finished portfolio analysis. For this reason, a request for Multiple OCP Time Series is typically preceded by a request for the Whole Segments Tree resource, which publicly exposes the segments' identifiers (see above). For further details, please see the specific documentation pages for the Multiple OCP Time Series's link relation, resource and special Fair Usage Policy implications.
New Segments Tree measures:-
Segments Tree measure with identifier
IsinCodehas changed name from
A new Knowledge Base article on how to display measure names correctly has been added.
For the Time Series resource, if the requested start date falls on a weekend or bank holiday, then - providing that at least one raw data point is available - the actual start date of the returned resource will be for the data point before the requested start date, as opposed to after (which was the previous behaviour). For example, if the requested start date falls on a Saturday, then previously the start date of the resource was the following Monday, but now it's the previous Friday (assuming that the Friday and Monday in question aren't bank holidays). This way of dealing with time periods' start dates will be used throughout Web API from now on (e.g. in potential future resources that contain time series).
New Segments Tree Node and Time Series measures:-
Stock Allocation (local)
Stock Currency ([CUR])
Stock Timing and Trading Local
Stock Picking Effect MC
Note that, for compounding time series data, measure
Stock Picking Effect MCrequires the other three as extra measures. All four measures are thus now listed in the table of extra measures required for compounding.
- New Segments Tree Node measures (but not Time Series):-
Net Transactions ([CUR])
Profit & Loss ([CUR])
Web API's extended Beta period has finished, and Web API is now a 1.0, officially released, product.
The Time Series resource's functionality has been greatly extended:-
- 143 measures are now available, up from the previous 7
- Cumulative compounding of measure values is now supported, in addition to Cumulative Indexed
- a variation of Cumulative compounding - Overall Custom Period - gives the final, or overall, values in a compounded time series
- for a Cumulative, Overall Custom Period or Cumulative Indexed time series, requesting measures that cannot be compounded no longer results in a 400 (i.e. Bad Request) error response; instead, null values are returned for such measures.
The new version of the Time Series resource (and its associated
time-series-query link relation) is backwardly compatible with the previous version, meaning that existing applications will work exactly as before.
Although 143 measures are now available in the Time Series resource, the maximum number of measures that can be requested in any one HTTPS request to the Web API for a time series is 10. This limit prevents overly large volumes of data being generated and manipulated in any one request.
For further details about this improvement, please see the revised documentation page for the
time-series-query link relation, as well as the expanded requestable time series measures table. Note also that there is a very small revision to the Time Series resource's XML and JSON representations in that the
seriesType element or member can now have values "Cumulative" and "OverallCustomPeriod", in addition to "CumulativeIndexed" and "Raw".
Results are now made available even if the Risk calculation failed. The execution of a portfolio's default analysis is comprised of two underlying calculations: the Performance calculation and the Risk calculation. The Risk calculation produces values for risk-related measures (for the Segments Tree Node resource), and the Performance calculation produces values for all the other measures. Previously, if either the Performance or the Risk calculation failed, the status of the portfolio analysis would be
FailedWithErrors, and no results data would be made available. Now, if the Risk calculation fails (e.g. because the portfolio doesn't contain any assets that are covered for risk) but the Performance calculation succeeds, the status is
FinishedWithMessagesand results are made available. In this case:-
- one or more messages exposed by the Portfolio Analysis resource will explain why the Risk calculation failed
- requesting risk-related measures for a Segments Tree Node resource will result in null values being returned for those measures.
Measure values returned for the Segments Tree Node resource and the Time Series resource have now been brought into alignment with the values that are displayed in the Revolution desktop website. For certain edge cases, values returned by the Web API used to reflect the raw, unprocessed, underlying data - whereas the website presented a processed, and semantically more correct, view of that data. Processing of the underlying data - where appropriate - is now done in exactly the same way for both the Web API and the website. The most important example of this is in respect to the
Benchmark Returnmeasure (id = Rb). Previously, for a portfolio that does not have a benchmark, Web API would return benchmark returns as zero, which in turn could lead to values being returned for relative measures such as
Relative Return(= the difference between portfolio return and benchmark return). Now, in alignment with the desktop website, Web API returns null values for
Benchmark Returnand thus also null values for relative measures that are derived from
Benchmark Return(to repeat: for a portfolio that doesn't have a benchmark).
End users can now manage the authorizations that allow access to the Web API in the first place, using the newly-introduced StatPro Revolution API Authorization Management website. If a user has granted a client application like the StatPro Revolution Excel Addin or the StatPro Revolution Web API Explorer access to his/her data, it is possible for the application to continue to get access tokens without prompting the user by using a refresh token. Using the new API Authorization Management website, the user can view and revoke their outstanding authorizations. Once an authorization has been revoked, the application in question cannot get an access token from a refresh token, and the app is forced to prompt the user for further access. See the Authorization section's Overview page for more details.
The StatPro Revolution API Authorization Management website also allows end users to view the Fair Usage statistics for the client application that is associated with any one of their outstanding authorizations. Fair Usage stats are displayed for the application in conjunction with the logged-on user's tenancy. This allows users to determine if the application + tenancy is currently blacklisted or throttled, how close it is to being blacklisted, etc.
In addition to Server-Side Web and Native applications, we have added a third type of application that is able to access Web API data via the OAuth2 Server: Batch applications. The authorizations for Server-Side Web and Native applications are interactive (the user is prompted at runtime to grant or deny access) and transient (a granted authorization is not stored in persistent storage, and has a limited lifetime). This is a problem for those applications that run in "batch mode", in that they cannot prompt the user for access at runtime. In order to support such applications, we have introduced the notion of Batch applications and 'batch' authorizations, which are created at setup time (on the API Authorization Management website), and are long-lived. See the Authorization section's Overview page for more details.
We have added a new sample on GitHub to cater for Batch applications.
The Authorization section on this website has been completely revamped to take into account the above changes. In particular, each of the three application types is catered for on its own page, especially with respect to the workflow that is taken to get an access token.
All notion of End User License Agreement (EULA) has been removed from the Web API. I.e. the EULA resource, the
A new Returns measure,
Risk Free Rate Return, is now supported for time series data. Its identifier is Rfr. It is allowed when the series type is Cumulative Indexed. See the full list of time series measures for more details.
New Segments Tree Node measures:-
Adjusted Information Ratio (Rel.)
Adjusted Information Ratio (XS)
Adjusted M-Squared (Ann.)
Appraisal Ratio Ann
Security Currency ISO Code
Custom Security Code
Ex-Post Expected Upside
Ex-Post Potential Upside
Ex-Post Rachev Ratio
Jarque Bera Test
Largest Uninterrupted Drawdown
End Local Price
Mean Absolute Deviation
Risk Free Rate Return
Display Return ([CUR])
Security Currency ISO Code,
Custom Security Codeand
Isinare the first measures to be introduced that are of String data type. They belong to the newly introduced Titles category, and pertain to securities only (their values will be null for segments).
See the full list of Segments Tree Node measures for more details.
Changes to existing Segments Tree Node measures:-
Profit & Loss(id = PandL) is no longer supported
Relative Contribution(id = RelCt) is no longer supported
Relative Contribution (Geometric)(id = RelCtGeom) is no longer supported
Risk Free Return(id = RiskFreeReturnOut) is now called
Statistic Risk Free Return
Bug fix. Previously when requesting measures for a Segments Tree Node resource, if a specified measure identifier was valid but the results data didn't contain values for that measure, it was possible for nothing to be returned in the XML / JSON representation of the resource for that measure. The Web API now does the correct thing, which is to ensure that every requested, valid measure is present in the XML / JSON; if no underlying value is present, then the value in the XML / JSON is null.
Fair Usage Policy updated to allow organizations with Private Wealth, Advisor and/or NAV-only portfolios (in addition to zero or more Professional portfolios) to be able to access the Web API. Previously an organization had to have at least one Professional portfolio in order to access the Web API (this is no longer the case). Full details of the revised policy are given on the Fair Usage Policy documentation page (+ we added a new section to this page on Unblocking).
Introduced the Web API Explorer website.
Added sample code to GitHub showing how to access the Web API.
Last updated: August 2017