Spreadsheet functions
Pull Finmagine's Indian and US market data into a spreadsheet with ordinary formulas. Finmagine for Sheets and Finmagine for Excel are both available now.
Finmagine for Sheets — setup
- Install Finmagine for Sheets from the Google Workspace Marketplace. It works only with the spreadsheet you have open.
- Open a spreadsheet. A Finmagine menu appears. Choose Create Sample Sheets to add ready-made tabs (two Indian and two US companies, a company-detail page, a screener and a metric reference). It never overwrites your existing tabs and works before you connect.
- Choose Connect and sign in with your Finmagine account. If you prefer an API key, choose Configure API Key and paste one from the developer portal; it is stored only in your own Google account's script properties, never in a cell.
- Choose Test Connection to confirm. Then Refresh Data loads live values into the sample tabs.
| Menu item | What it does |
|---|---|
| Create Sample Sheets | Adds five tabs: India and US watchlists (two companies each), company detail, screener, metric reference. |
| Connect / Disconnect | Sign in with, or remove, your Finmagine account for this spreadsheet. |
| Configure API Key | Use an API key instead of signing in. |
| Test Connection | Checks your connection and tier. Uses a status check that does not spend a data request. |
| Refresh Data | Clears the local data cache and recalculates every Finmagine formula. Skipped with a message when you have fewer than 10 requests left this hour. |
| Set Workbook Default Market | Lets you type bare symbols (TCS) in this workbook. An explicit prefix always wins. |
| About / Diagnostics | Shows connection, tier, remaining quota and the last error. |
Symbols
Every symbol carries its market prefix, never guessed: NSE: or BSE: for India; NASDAQ:, NYSE: or AMEX: for the US — for example NSE:RELIANCE and NASDAQ:AAPL. One batch or one lookup is always one market. If you set a workbook default market you can omit the prefix.
Function reference
| Formula | Returns | Available on | Notes |
|---|---|---|---|
| =FINMAGINE_DATA(symbol, metric) | One value | All plans | =FINMAGINE_DATA("NSE:TCS","pe"). FINMAGINE() is a permanent alias. |
| =FINMAGINE_BATCH(symbols, metrics) | Table | Higher plans | A whole watchlist in one call. One market per call; every metric must exist for that market, and the error names any that does not. |
| =FINMAGINE_FINANCIALS(symbol, period, count) | Table | India: all US: higher | period is quarterly or annual. |
| =FINMAGINE_MOMENTUM(symbol) | Row | India: all US: higher | Relative-strength and trend readings. |
| =FINMAGINE_INDIA_RATIOS(symbol) | Table | All plans | All 20 India ratios for one company from a single request. India symbols only. |
| =FINMAGINE_US_RATIOS(symbol) | Table | Higher plans | The full US ratio table. US symbols only. |
| =FINMAGINE_SCREEN(market, criteria, limit) | Table | US: higher India: top API plan | Criteria are key=value pairs separated by ;. A plan that cannot screen gets a clear message without spending a request. |
| =FINMAGINE_SCHEMA("metrics") | Table | All plans | Every metric key you can ask for. Works offline; costs no request. |
| =FINMAGINE_QUOTA() | Text | All plans | Your plan and the requests left today and this hour (from your last real lookup). |
The free plan covers a fixed list of large Indian and US companies; other plans cover every company. Request limits depend on your plan — see plans & limits. Creating the sample sheets on a fresh account uses about six requests in total.
India ratios
=FINMAGINE_INDIA_RATIOS("NSE:TCS") returns every India ratio for a company as a table — ratio name, metric key, value and unit — from one request. You can also look a single ratio up with FINMAGINE_DATA using its metric key:
| Metric key | Ratio | Unit | Data set |
|---|---|---|---|
| roce | ROCE | % | Ratios* |
| roe | ROE | % | Profile |
| de | Debt / Equity | x | Profile |
| opm_pct | Operating margin | % | Profile |
| pe | P/E | x | Profile |
| sales_growth_pct | Sales growth | % | Profile |
| revenue_cagr_10y | 10-year revenue CAGR | % | Profile |
| pat_cagr_10y | 10-year profit (PAT) CAGR | % | Profile |
| ebitda_cagr_5y | 5-year EBITDA CAGR | % | Profile |
| ebitda_cagr_3y | 3-year EBITDA CAGR | % | Ratios* |
| fcf_yield | Free cash flow yield | % | Profile |
| fcf_cagr_5y | 5-year free cash flow CAGR | % | Ratios* |
| ocf_to_pat_5y | 5-year average OCF / PAT | x | Ratios* |
| altman_z_score | Altman Z-Score | score | Ratios* |
| profitable_years_10y | Profitable years (of last 10) | years | Ratios* |
| fcf_positive_years_10y | FCF-positive years (of last 10) | years | Ratios* |
| dividend_years_10y | Dividend-paying years (of last 10) | years | Ratios* |
| net_debt_cr | Net debt | ₹ crore | Profile |
| promoter_pct | Promoter holding | % | Profile |
| pledge_pct | Promoter pledge | % | Profile |
* "Ratios" metrics come from a second data set. Looking them up one at a time with FINMAGINE_DATA may use one extra request per company on top of the "Profile" data set most metrics share; FINMAGINE_INDIA_RATIOS needs only one for all of them.
Examples
// One metric, one company =FINMAGINE_DATA("NSE:RELIANCE", "pe") =FINMAGINE_DATA("NASDAQ:AAPL", "market_cap_usd_b") // All India ratios for a company =FINMAGINE_INDIA_RATIOS("NSE:TCS") // A watchlist in one call (higher plans) — India symbols in A2:A20 =FINMAGINE_BATCH(A2:A20, {"company_name";"pe";"roe";"price_cmp"}) // Eight quarters of financials =FINMAGINE_FINANCIALS("NSE:TCS", "quarterly", 8) // Screen the US market (higher plans) =FINMAGINE_SCREEN("us", "min_mcap_b=100", 25)
roce) and some only for the US (for example market_cap_usd_b, pb). Use =FINMAGINE_SCHEMA("metrics") to see which market each key belongs to. A batch must use one market and only keys that exist for it.Keeping data fresh
Custom functions in Sheets reuse their last result when their inputs have not changed. Finmagine → Refresh Data clears the local cache and forces every Finmagine formula to recalculate. Fundamentals are cached for hours, quick-moving values such as momentum for minutes. On a small plan, Refresh Data refuses to run when fewer than 10 requests are left this hour, and your current values stay in place.
Errors
| Message | Meaning |
|---|---|
| Not connected | Choose Finmagine → Connect (or Configure API Key), then Refresh Data. |
| No market prefix on "…" | Add NSE: / NASDAQ: etc., or set a workbook default market. |
| Mixed markets in one batch | Split the call: one for India symbols, one for US symbols. |
| "…" is not available in FINMAGINE_BATCH for <market> | That metric key does not exist for that market. Check FINMAGINE_SCHEMA. |
| Requires a higher plan / need a higher plan | The function is not part of your plan. See plans. |
| Rate limit reached | You used the requests allowed this hour or day. FINMAGINE_QUOTA() shows what is left. |
Hover over an error cell to read the full message, and use About / Diagnostics to see your connection, tier and last error. Wrap a formula in IFERROR to show your own fallback. In FINMAGINE_BATCH, a problem with one symbol shows in that row only, so the rest of the watchlist still loads.
Privacy & permissions
Only the symbols and metric names in your formulas are sent to Finmagine so it can answer them; it does not read the rest of your spreadsheet. The add-on asks Google for three permissions: show its menu and dialogs, connect to finmagine.com, and work with the current spreadsheet only. It has no access to your other Drive files. Signing in uses a Finmagine consent screen, so Finmagine never sees your Google password. See the Privacy Policy. Finmagine provides information and analytical tools for educational and informational purposes only; nothing here is investment advice.
Finmagine for Excel — setup
- Get Finmagine for Excel from Microsoft AppSource, or search for it under Insert → Get Add-ins in Excel. It works in Excel on the web, Windows and Mac.
- Open the Finmagine task pane from the Home tab. Choose Create Sample Sheets to add ready-made tabs (two Indian and two US companies, a company-detail page, a screener and a metric reference). It never overwrites your existing tabs and works before you sign in.
- Choose Sign in to Finmagine and use your Finmagine account. If you prefer an API key, choose Configure API Key and paste one from the developer portal. Need an account? A free one works with usage limits.
- Then Refresh Data loads live values into the sample tabs, and the Connected line in the pane shows your plan and remaining requests.
| Task pane item | What it does |
|---|---|
| Create Sample Sheets | Adds five tabs: India and US watchlists (two companies each), company detail, screener, metric reference. |
| Sign in / Switch account | Sign in with your Finmagine account through a pop-up consent screen. While connected the button reads Switch account. |
| Disconnect | Removes your sign-in from this add-in. |
| Configure API Key | Use an API key instead of signing in. |
| Refresh Data | Clears the local data cache and recalculates every Finmagine formula. Skipped with a message when you have fewer than 10 requests left this hour. |
| Set Default Market | Lets you type bare symbols (TCS) in this workbook. An explicit prefix always wins. |
| About / Diagnostics | Shows connection, plan, remaining quota and the last error. |
Symbols
Every symbol carries its market prefix, never guessed: NSE: or BSE: for India; NASDAQ:, NYSE: or AMEX: for the US — for example NSE:RELIANCE and NASDAQ:AAPL. One batch or one lookup is always one market. If you set a workbook default market you can omit the prefix.
Function reference
| Formula | Returns | Available on | Notes |
|---|---|---|---|
| =FINMAGINE.DATA(symbol, metric) | One value | All plans | =FINMAGINE.DATA("NSE:TCS","pe") |
| =FINMAGINE.BATCH(symbols, metrics) | Table | Higher plans | A whole watchlist in one call. One market per call; every metric must exist for that market, and the error names any that does not. |
| =FINMAGINE.FINANCIALS(symbol, period, count) | Table | India: all US: higher | period is quarterly or annual. |
| =FINMAGINE.MOMENTUM(symbol) | Row | India: all US: higher | Relative-strength and trend readings. |
| =FINMAGINE.US_RATIOS(symbol) | Table | Higher plans | The full US ratio table. US symbols only. |
| =FINMAGINE.SCREEN(market, criteria, limit) | Table | US: higher India: top API plan | Criteria are key=value pairs separated by ;. Up to 50 rows. A plan that cannot screen gets a clear message without spending a request. |
| =FINMAGINE.SCHEMA("metrics") | Table | All plans | Every metric key you can ask for. |
| =FINMAGINE.QUOTA() | Text | All plans | Your plan and the requests left today and this hour. |
The free plan covers a fixed list of large Indian and US companies; other plans cover every company. Request limits depend on your plan — see plans & limits.
India ratios
There is no single India ratio-table formula in Excel yet. Look each India ratio up by its metric key with FINMAGINE.DATA, for example =FINMAGINE.DATA("NSE:TCS","roce"). For US companies, FINMAGINE.US_RATIOS returns the whole table in one formula. The India metric keys:
| Metric key | Ratio | Unit | Data set |
|---|---|---|---|
| roce | ROCE | % | Ratios* |
| roe | ROE | % | Profile |
| de | Debt / Equity | x | Profile |
| opm_pct | Operating margin | % | Profile |
| pe | P/E | x | Profile |
| sales_growth_pct | Sales growth | % | Profile |
| revenue_cagr_10y | 10-year revenue CAGR | % | Profile |
| pat_cagr_10y | 10-year profit (PAT) CAGR | % | Profile |
| ebitda_cagr_5y | 5-year EBITDA CAGR | % | Profile |
| ebitda_cagr_3y | 3-year EBITDA CAGR | % | Ratios* |
| fcf_yield | Free cash flow yield | % | Profile |
| fcf_cagr_5y | 5-year free cash flow CAGR | % | Ratios* |
| ocf_to_pat_5y | 5-year average OCF / PAT | x | Ratios* |
| altman_z_score | Altman Z-Score | score | Ratios* |
| profitable_years_10y | Profitable years (of last 10) | years | Ratios* |
| fcf_positive_years_10y | FCF-positive years (of last 10) | years | Ratios* |
| dividend_years_10y | Dividend-paying years (of last 10) | years | Ratios* |
| net_debt_cr | Net debt | ₹ crore | Profile |
| promoter_pct | Promoter holding | % | Profile |
| pledge_pct | Promoter pledge | % | Profile |
* "Ratios" metrics come from a second data set, so the first one you request for a company may use one extra request on top of the "Profile" data set most metrics share.
Examples
// One metric, one company =FINMAGINE.DATA("NSE:RELIANCE", "pe") =FINMAGINE.DATA("NASDAQ:AAPL", "market_cap_usd_b") // One India ratio =FINMAGINE.DATA("NSE:TCS", "roce") // A watchlist in one call (higher plans) =FINMAGINE.BATCH(A2:A20, {"company_name";"pe";"roe";"price_cmp"}) // Eight quarters of financials =FINMAGINE.FINANCIALS("NSE:TCS", "quarterly", 8) // Screen the US market (higher plans) =FINMAGINE.SCREEN("us", "min_mcap_b=100", 25)
roce) and some only for the US (for example market_cap_usd_b, pb). Use =FINMAGINE.SCHEMA("metrics") to see which market each key belongs to.Keeping data fresh
Excel reuses a formula's last result until it recalculates. Refresh Data in the task pane clears the local cache and recalculates every Finmagine formula. Fundamentals are cached for hours, quick-moving values such as momentum for minutes. On a small plan, Refresh Data refuses to run when fewer than 10 requests are left this hour, and your current values stay in place.
Errors
| Message | Meaning |
|---|---|
| Not connected | Open the Finmagine task pane and sign in (or Configure API Key), then Refresh Data. |
| No market prefix on "…" | Add NSE: / NASDAQ: etc., or set a default market. |
| Mixed markets in one batch | Split the call: one for India symbols, one for US symbols. |
| Requires a higher plan / need a higher plan | The function is not part of your plan. See plans. |
| Rate limit reached | You used the requests allowed this hour or day. FINMAGINE.QUOTA() shows what is left. |
Open About / Diagnostics in the task pane to see your connection, plan and last error. Wrap a formula in IFERROR to show your own fallback.
Privacy & permissions
Only the symbols and metric names in your formulas are sent to Finmagine so it can answer them; no workbook content is read. Signing in uses a pop-up Finmagine consent screen, so the add-in never sees your password, and your sign-in token is stored on the add-in's own site, excel.finmagine.com. The add-in declares Excel's read-write document permission because Excel's custom-functions runtime requires it; the only write it ever makes is Create Sample Sheets, which only adds new tabs. Choose Disconnect in the task pane at any time. See the Privacy Policy. Finmagine provides information and analytical tools for educational and informational purposes only; nothing here is investment advice.
Google Sheets™ is a trademark of Google LLC. Microsoft Excel® is a trademark of Microsoft Corporation. Finmagine for Sheets and Finmagine for Excel are independent products.