Your model. Our numbers. In the cell.
Analysts live in spreadsheets. These functions pull QuantLogix signals, private-market marks and QL Scores, SEC Form D raises, filed charter terms and
public-pension fund returns straight into a cell — the same endpoints the site serves, nothing computed in the sheet. Google Sheets uses an Apps Script library
(=QL_SIGNAL); Excel uses an Office add-in with the same functions under the QL. namespace (=QL.SIGNAL).
Google Sheets
- Open your sheet → Extensions → Apps Script.
- Delete the sample code, paste the library below, Save.
- Reload the sheet. A QuantLogix menu appears → Set API key… (a
ql_key from API keys). - Type
=QL_SIGNAL("NVDA")in any cell.
Your key lives in your Apps Script user properties only. Results are cached for 5 minutes per user. Without a key, only the public functions answer.
Excel
- Download the add-in manifest.
- Excel → Insert → Add-ins → Upload My Add-in (Excel on the web / Mac / Windows), or put it in your organisation's shared add-in folder.
- Open the QuantLogix task pane from the Home tab and save your
ql_key. - Type
=QL.SIGNAL("NVDA")— tables spill:=QL.TABLE("lp-vintages").
The add-in is static and served from quantlogix.ai; your key is stored in the workbook's add-in storage and sent only to quantlogix.ai. AppSource listing is the next step — sideloading works today.
Function reference
| Google Sheets | Excel | Returns | Fields |
|---|---|---|---|
=QL_SIGNAL(ticker, [field]) key | =QL.SIGNAL() | 5-factor signal label (Strong Buy … Strong Sell) or a field | composite_score, confidence, price, scores.technical.score… |
=QL_PRICE(ticker) key | =QL.PRICE() | Last price the engine used | |
=QL_PRICEDIN(ticker, [field]) key | =QL.PRICEDIN() | The growth an S&P 500 price implies | implied_growth_pct, reported_growth_pct, gap_pp, grade |
=QL_PRIVATE(slug, [field]) key | =QL.PRIVATE() | A covered private company's profile field | current_valuation_usd, last_round.amount_usd, last_round.date, sector, hq, total_raised_usd |
=QL_SCORE(slug) key | =QL.SCORE() | QL Score 0–100 | |
=QL_RAISE(slug, [field]) public | =QL.RAISE() | Latest SEC Form D on the Raise Tape | sold_usd, offering_usd, filed_at, first_sale, investors, grade.status |
=QL_CHARTER(slug, [field]) public | =QL.CHARTER() | Filed preference stack from Charter Terms | structure, stack, series.0.liquidation_multiple, file_date, exhibit_url |
=QL_LP(gp, [field]) public | =QL.LP() | Public-pension disclosed returns for a GP from the LP Tape | pooled_tvpi, pooled_dpi, median_net_irr_pct, funds, committed_usd |
=QL_TABLE(dataset) public | =QL.TABLE() | A 2-D range | raise-tape · lp-tape:Thoma Bravo · lp-vintages · charter:clear-street |
Slugs are the ones in QuantLogix URLs (/private-company/<slug>). Errors are explicit: a rejected key, a plan that does not include the dataset, an unknown ticker, or a rate limit — never a silent blank.
Examples
=QL_SIGNAL("NVDA") → Buy
=QL_SIGNAL("NVDA", "composite_score") → 61
=QL_PRIVATE("anthropic", "last_round.date") → 2026-08-15
=QL_RAISE("groq", "sold_usd") → 672155177
=QL_CHARTER("clear-street") → 1x non-participating · pari passu
=QL_LP("Thoma Bravo", "median_net_irr_pct") → 18.4
=QL_TABLE("lp-tape:Thoma Bravo") → every disclosed fund, spilled
The Apps Script library
Loading…