Excel add-in
TradePolaris for Excel
Seven formulas that pull the TradePolaris DB into a worksheet: an end-of-day close, daily history, a fundamentals value, dividends, splits, any dataset your key can see, and a catalog search. Tables come back as dynamic arrays with a header row, so a single formula fills a range. Everything is keyed by your own Data API key, so the add-in works only with a TradePolaris account.
What you need
- Excel for Microsoft 365 on Windows. The add-in is built and documented for that host; see the note on Excel on the web and Mac below.
- A TradePolaris account whose plan includes the Data API. Access comes with the Aegis and Closed Beta plans. Fund and vendor arrangements carry their own grant, so ask us if your account is one of those and your console shows no key controls.
- A Data API key without a source-IP restriction. Excel talks to the TradePolaris DB through a relay on tradepolaris.com, so the DB sees the relay's address, not your PC's. A key restricted to your office network will be refused, and the add-in tells you so.
- Network access from Excel to tradepolaris.com and to appsforoffice.microsoft.com, where Microsoft serves the Office JavaScript library.
Install on your own PC
- Save the manifest from
https://tradepolaris.com/excel/manifest.xmlto your PC (the button above downloads it). - In Excel choose Home, then Add-ins, then More Add-ins. In older ribbons it is Insert, then Get Add-ins. Open the My Add-ins tab and click Upload My Add-in, then pick the saved manifest.
- A TradePolaris group appears on the Home ribbon. Click Open TradePolaris, paste your key into the taskpane and press Save key. The key is stored by Office on that computer only.
- Press Test connection. A green message means the key can read the catalog.
- Type
=TP.PRICE("AAPL")in a cell, or use Insert example in the taskpane. Formulas may take a few seconds on the first call while Office starts the add-in runtime.
A sideloaded add-in is tied to the Windows account that uploaded it. To remove it, delete the manifest entry under My Add-ins and clear the Office cache if Excel still lists it.
Deploy across a team
Shared folder catalog. Put the manifest in a network share, then on each PC open File, Options, Trust Center, Trust Center Settings, Trusted Add-in Catalogs, add the share's UNC path and tick Show in Menu. After restarting Excel the add-in is listed under My Add-ins, Shared Folder. Updates are a matter of replacing the file in the share.
Microsoft 365 admin center. An administrator can publish the add-in to chosen users or the whole tenant from Settings, Integrated apps, Upload custom apps, choosing Office Add-in and giving the manifest URL https://tradepolaris.com/excel/manifest.xml. Users then find it under My Add-ins, Admin Managed. Each user still signs in with their own key.
Excel on the web and Mac
The add-in uses Office's shared runtime, which Excel on the web and Excel for Mac also support. On the web, Upload My Add-in lives in the same Office Add-ins dialog. On a Mac the manifest goes into ~/Library/Containers/com.microsoft.Excel/Data/Documents/wef. Both are best effort: we build and check the add-in on Windows, and we have not run it on the other hosts.
The functions
Optional arguments are shown in brackets. Dates can be a date cell or text such as 2024-01-31. Tickers are US equities such as AAPL or BRK.B.
=TP.PRICE(symbol)
Latest end-of-day close for a US equity from the TradePolaris DB.
=TP.PRICE("AAPL")
End-of-day only. The Data API key surface carries daily bars, not quotes.
=TP.HIST(symbol, [start], [end], [columns])
Daily OHLCV history as a table with a header row, newest 5,000 rows when no start is given.
=TP.HIST("AAPL","2024-01-01","2024-12-31","date,close")
Rows above 5,000 are cut and a #TRUNCATED row says how many matched.
=TP.FUND(symbol, field, [period])
One fundamentals value for the newest filing period in the TradePolaris DB.
=TP.FUND("AAPL","revenues")
Concept names are the fundamentals lane's own; the error message lists them.
=TP.DIVIDENDS(symbol, [start])
Cash dividend history for a US equity with a header row.
=TP.DIVIDENDS("MSFT","2020-01-01")
Columns are ticker, ex_dividend_date and cash_amount.
=TP.SPLITS(symbol)
Stock split history for a US equity with a header row.
=TP.SPLITS("NVDA")
Columns are ticker, execution_date, split_from and split_to.
=TP.DATASET(name, [start], [end], [symbol], [columns], [limit])
Rows from any TradePolaris DB dataset your key can see, with a header row.
=TP.DATASET("us-equities-eod",,,"AAPL","date,close",250)
Newest rows first when no start is given, oldest first otherwise.
=TP.SEARCH(query)
Find dataset names and labels in the TradePolaris DB catalog.
=TP.SEARCH("apple")
Up to 50 matches; a #TRUNCATED row means more exist, so narrow the query.
Limits and behaviour
- Values are end-of-day. The Data API key surface carries daily bars, filings and corporate actions, not quotes, and the add-in never claims otherwise.
- One call returns at most 5,000 rows, the Data API's page ceiling. A table that was cut ends with a
#TRUNCATEDrow stating how many rows matched, so narrow the dates or columns. - Each key has a request budget (120 requests per minute by default). Excel recalculates every =TP cell on its own, so a sheet with hundreds of formulas can spend it; the cell then shows
#N/Awith a retry time. - Dates arrive as text in
YYYY-MM-DDform. Wrap them inDATEVALUEwhen you need Excel dates. Missing values are blank cells. - Errors show as
#N/A(sign-in, plan, budget or connection problems) or#VALUE!(a bad argument), each with a message when you hover the cell. =TP.FUNDreads the fundamentals lane's own concept names. An unknown name returns#VALUE!listing the names available for that symbol.
Where your key goes
Office stores the key on your computer in the add-in's own storage. Every request is sent over HTTPS to tradepolaris.com, whose relay forwards it to the TradePolaris DB with your key and nothing else: no cookies, no session, no address. No third party is involved. You can revoke the key at any time from the Data API console, and the add-in's Sign out removes it from the computer. The full API contract is in the Data API documentation.