Portfolio Management Software – Xignite Hit Calculation Examples
First Published Friday, 4th March 2011 11:54 am from Xand : Joel York
The opinions expressed by this blogger and those providing comments are theirs alone, this does not reflect the opinion of Automated Trader or any employee thereof. Automated Trader is not responsible for the accuracy of any of the information supplied by this article.
/>
src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fxignite.web-services-blog.com%2F2011%2F02%2Fportfolio-management-software-xignite-hit-calculation-examples%2F&source=xignite&style=normal&b=2"
height="61" width="50" />
One of the most common financial applications of Xignite
on-demand market data is portfolio management software. Portfolio
management software is used by a wide range of Xignite customers
including asset managers, wealth managers, hedge funds, financial
advisers, broker-dealers and publishers of online portfolio
websites. Each portfolio management software customer has unique
requirements that vary across asset classes and update
frequencies, however, the hit calculation required to select the
right Xignite Web services subscription plans is essentially the
same.
This is the third post in a blog series
on hit calculation that will provide detailed example
calculations for portfolio management software applications. The
href="http://xignite.web-services-blog.com/2011/02/hit-calculation-tutorial-for-xignite-web-services/"
target="_blank">first post and href="http://xignite.web-services-blog.com/2011/02/simplifying-hit-calculations-for-xignite-web-services/"
target="_blank">second post in this series provided
a comprehensive hit calculation tutorial as well as a href="http://xignite.web-services-blog.com/media/xignite-hit-estimation-worksheet.xlsx"
target="_blank">general hit calculation spreadsheet.
The examples in this post are also available in this sample href="http://xignite.web-services-blog.com/media/portfolio-management-software-xignite-hit-estimation-worksheet.xlsx"
target="_blank">portfolio management software hit calculation
spreadsheet.
Single Hit Data Block
for Portfolio Management Software
Every
portfolio management software application
will access a number of Xignite Web
services covering a variety of asset classes ( href="http://www.xignite.com/xquotes.asmx"
target="_blank">XigniteQuotes, href="http://www.xignite.com/xfunds.asmx"
target="_blank">XigniteFunds, href="http://www.xignite.com/xfutures.asmx"
target="_blank">XigniteFutures, href="http://www.xignite.com/xoptions.asmx"
target="_blank">XigniteOptions, href="http://www.xignite.com/xmetals.asmx"
target="_blank">XigniteMetals, etc.) to obtain the
current price of each asset in each portfolio. Because Xignite
Web services count hits uniformly as one hit per price quote, we
can dramatically simplify the hit calculation using the href="http://xignite.web-services-blog.com/2011/02/simplifying-hit-calculations-for-xignite-web-services/"
target="_blank">single symbol, single hit data block
described in the previous blog post in this hit calculation
series, i.e., the number of symbols requested per month is equal
to the number of hits per month.
Update
Frequencies for Portfolio Management Software
As pointed out in the previous post in this series,
href="http://xignite.web-services-blog.com/2011/02/simplifying-hit-calculations-for-xignite-web-services/"
target="_blank">the most important factor in determining usage
is almost always the update frequency, or the number of
requests to refresh the data each month.
Monthly Hits = # Symbols per Request x #
Requests per Month
Therefore, we're
going to break our portfolio management software examples into
three application scenarios according to update
frequency.
- End-of-Day Portfolio
Accounting System
- Real-Time Portfolio
Management Software
- Online Portfolio
Website
Each of these update
scenarios has a unique trigger event: day, cache refresh, and
page view respectively, giving the following hit calculation
formulas for each respective scenario.
Monthly Hits = # Symbols per Day x # Days per
Month
Monthly Hits = #
Symbols per Cache Refresh x # Cache Refreshes per
Month
Monthly Hits = #
Symbols per Page View x # Page Views per
Month
In the sections that follow,
we'll use the formulas above to estimate the usage for each
update frequency scenario above.
End-of-Day
Portfolio Accounting System - Hit
Calculation
The trick to calculating hits for
portfolio management software is estimating the request
population, or number of symbols per request, which for an
end-of-day portfolio accounting system is given by the following
formula.
Request Population = #
Symbols per Day (by Asset Class)
Depending on the particular assets held in each
portfolio, the result looks something like the table
below.
|
Asset
Class |
Total
/>Symbols per Day |
Total
/>Asset Allocation |
Monthly
Hits Estimate |
Plan Max
Monthly Hits |
|---|---|---|---|---|
| Stocks | 3,000 | 60% | 60,000 | 60,000 |
| Funds | 1,000 | 20% | 20,000 | 60,000 |
| Futures | 250 | 5% | 5,000 | 6,000 |
| Options | 250 | 5% | 5,000 | 6,000 |
| Metals | 500 | 10% | 10,000 | 60,000 |
End-of-Day Portfolio Accounting
System Hit Calculation
The table
above is a simple tally of all symbols across all portfolios
managed by the portfolio accounting system. Each symbol requires
one price each day (equal to one hit). In this particular
example, we've assumed that the portfolio accounting system will
run its valuation routine twenty working days each month, hence
the hits are equal to twenty times the number of symbols per
day.
60,000 Monthly Stock Hits =
3,000 Symbols per Day x 20 Days per Month
Xignite subscription plans are generally available in
increments of 600, 6,000, 60,000, and so on, therefore the
subscription plan is determined by rounding up to the maximum
number of hits available in each subscription plan.
Real-Time Portfolio Management Software - Hit
Calculation
The hit calculation for real-time
portfolio management software is essentially similar to that for
the end-of-day portfolio accounting system above with a
straightforward change to the update request frequency. To
minimize response time, it makes sense for real-time portfolio
management software to cache every symbol in every portfolio
using the relevant Xignite Web services, and then serve
individual portfolios from within the software application. Using
the same symbol count as the example above and assuming a cache
refresh rate of 5 updates per minute, the hit calculation for
stocks is as follows.
48,000 Cache
Refreshes per Month
= 5 refreshes/min x 60 mins/hr x 8
hrs/day x 20 days/mo
144,000,000 Monthly Stock Hits
=
3,000 Symbols per Refresh x 48,000 Refreshes per
Month
Extending the calculation
above to the other asset classes gives the table below as the
complete hit calculation for our real-time portfolio management
software.
|
Asset
Class |
Total
/>Symbols per Refresh |
Total
Asset Allocation |
Monthly
Hits Estimate |
Plan Max
Monthly Hits |
|---|---|---|---|---|
| Stocks | 3,000 | 60% | 144,000,000 | Custom |
| Funds | 1,000 | 20% | 20,000 | 60,000 |
| Futures | 250 | 5% | 12,000,000 | 60,000,000 |
| Options | 250 | 5% | 12,000,000 | 60,000,000 |
| Metals | 500 | 10% | 24,000,000 | 60,000,000 |
Real-time Portfolio Management Software Hit
Calculation
As mentioned
previously, the most important factor in determining usage is
almost always the update frequency. Compared to our end-of-day
portfolio accounting system, our real-time portfolio management
software requires several orders of magnitude more hits (With the
exception of funds which only have end-of-day NAV prices,
assuming ETFs are included in stocks). In fact, since most
Xignite standard subscription plans top out at 60 million hits,
this particular application would require a custom quote for the
real-time stock Web service (e.g., XigniteRealTime,
XigniteGlobalRealTime, XigniteBATSLastSale, or
XigniteNASDAQLastSale)
Online Portfolio
Website - Hit Calculation
While
it's possible to architect an online portfolio website to provide
either end-of-day or real-time updates like the respective
portfolio accounting system or portfolio management software
examples above, it is more common to update each website
visitor's portfolio on-demand each time a visitor requests a page
displaying the portfolio. In this case, the relevant trigger
event is a page view, and the associated request population is
given by the following formula.
Request Population = # Symbols per Page View
(By Asset Class)
The number of
symbols per page view is simply the average number of symbols in
a single portfolio. If we use the same total symbol count as in
the two previous examples, and further assume that there are
1,000 registered users of our online portfolio website that view
their portfolios twice a day on average, then the calculation
will look something like the table below.
|
Asset
/>Class |
Average
Symbols />per Page View |
Average
/>Portfolio Asset Allocation |
Monthly
Hits Estimate |
Plan Max
Monthly Hits |
|---|---|---|---|---|
| Stocks | 60 | 60% | 3,600,000 | 6,000,000 |
| Funds | 20 | 20% | 1,200,000 | 6,000,000 |
| Futures | 5 | 5% | 300,000 | 600,000 |
| Options | 5 | 5% | 300,000 | 600,000 |
| Metals | 10 | 10% | 600,000 | 600,000 |
Online Portfolio Website Hit
Calculation
The average number of
symbols per page view (symbols in a single portfolio) would
normally be based on the specific portfolio holdings of the
particular online portfolio website, but for this example we've
used a little sleight of hand to make the calculation for our
online portfolio website example as similar to the earlier
end-of-day portfolio accounting system and real-time portfolio
software examples. Here we've assumed 50% overlap in portfolio
assets across all users, so to get the average symbols per page
view we simply divided the total number of symbols in the
previous examples by 1,000 users and then multiplied by 2 to
adjust for overlapping assets. For example, the average number of
stock symbols per page view = average number of stocks in a
single portfolio = 60 = 2 x 3,000 / 1000.
The
total number of hits is then determined by multiplying the number
of symbols per page view by the total number of page views per
month as in the formula above.
60,000 Page Views per Month
= 1,000
users x 2 views/day/user x 30 days/month
3,600,000 Monthly Stock Hits
= 60
Symbols per Page View x 60,000 Page Views per
Month
It is worth noting that the
number of hits for funds could be significantly reduced by
caching the end-of-day NAVs instead of serving them on-demand.
These three common examples demonstrate a number of recurring
concepts that can be used for similar hit calculations.
- Single Hit, Single Symbol Data Block (one
hit per symbol)
- Average Request Population
(average symbols per portfolio or page view)
- Common Event Triggers
(EOD Updates vs.
Real-time Caching vs. On-Demand Page Views)
In addition, they clearly demonstrate that
update frequency is the most important factor in determining
total hit usage. Future posts in this series will provide more
hit calculation examples for the most common financial
applications.
title="email" alt="email" class="sociable-hovers" />
title="Twitter" alt="Twitter" class="sociable-hovers"
title="Facebook" alt="Facebook" class="sociable-hovers"
title="LinkedIn" alt="LinkedIn" class="sociable-hovers"
title="Digg">
src="http://xignite.web-services-blog.com/wp-content/plugins/sociable/images/digg.png"
title="Digg" alt="Digg" class="sociable-hovers" />
title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers"
title="Technorati" alt="Technorati" class="sociable-hovers"
title="Suggest to Techmeme via Twitter" alt="Suggest to Techmeme
via Twitter" class="sociable-hovers" /> rel="nofollow" target="_blank"
href="http://delicious.com/post?url=http%3A%2F%2Fxignite.web-services-blog.com%2F2011%2F02%2Fportfolio-management-software-xignite-hit-calculation-examples%2F&title=Portfolio%20Management%20Software%20-%20Xignite%20Hit%20Calculation%20Examples¬es=One%20of%20the%20most%20common%20financial%20applications%20of%20Xignite%20on-demand%20market%20data%20is%20portfolio%20management%20software.%20%20"
title="del.icio.us">
src="http://xignite.web-services-blog.com/wp-content/plugins/sociable/images/delicious.png"
title="del.icio.us" alt="del.icio.us" class="sociable-hovers"
title="Google Bookmarks" alt="Google Bookmarks"
title="Live">
src="http://xignite.web-services-blog.com/wp-content/plugins/sociable/images/live.png"
title="Live" alt="Live" class="sociable-hovers" />
title="FriendFeed" alt="FriendFeed" class="sociable-hovers"
src="http://feeds.feedburner.com/~r/Xignite/~4/dyRi6QRVHEg"
height="1" width="1" />



