Professional Google Sheets add-on for economic and financial data from 15+ global sources.
DSIQ(seriesId, [freq], [start])β Full time-series array with headers (newest-first)DSIQ_LATEST(seriesId)β Most recent value onlyDSIQ_VALUE(seriesId, date)β Value on or before specified dateDSIQ_YOY(seriesId)β Year-over-year growth rateDSIQ_META(seriesId, field)β Metadata (title, units, frequency, etc.)
Formula Builder Wizard (π§ Builder tab)
- Step-by-step formula creation with guided inputs
- Supports all DSIQ function types
- Preview before inserting into cells
Templates System (π Templates tab)
- Scan current sheet for DSIQ formulas
- Save formula collections as reusable templates
- Load templates into new sheets instantly
- Manage saved templates (view, load, delete)
Multi-Series Insert (Search tab)
- Select multiple series with checkboxes
- Bulk insert with single click
- Saves time on repetitive data pulls
Enhanced Sidebar UI (π Search tab)
- Search across 15 data providers
- Browse by source (FRED, BLS, IMF, OECD, etc.)
- Favorites and Recent tracking
- Live data preview with metadata
- On-demand ingestion for metadata-only datasets
- FRED β Federal Reserve Economic Data
- BLS β Bureau of Labor Statistics
- BEA β Bureau of Economic Analysis
- Census β US Census Bureau
- EIA β Energy Information Administration
- IMF β International Monetary Fund
- OECD β Organisation for Economic Co-operation
- World Bank β Global development data
- ECB β European Central Bank
- Eurostat β European statistics
- BOE β Bank of England
- ONS β UK Office for National Statistics
- StatCan β Statistics Canada
- RBA β Reserve Bank of Australia
- BOJ β Bank of Japan
| Feature | Free (No API Key) | Paid (Valid API Key) |
|---|---|---|
| Custom Functions | β All functions | β All functions |
| Observation Limit | 100 most recent | 1,000 most recent |
| Search & Insert | β Basic search | β Enhanced search |
| Data Preview | β Available | β Available |
| Formula Builder | β Locked | β Unlocked |
| Templates | β Locked | β Unlocked |
| Multi-Insert | β Not available | β Checkboxes visible |
| Favorites/Recent | β Available | β Available |
| Browse by Source | β Available | β Available |
Upgrade Message: When data is truncated at 100 observations, users see:
β οΈ Data limited to 100 most recent observations. Upgrade to a paid plan at datasetiq.com/pricing for up to 1,000 observations per series.
- Install from Google Workspace Marketplace
- Open Google Sheets β Extensions β DataSetIQ β Open Sidebar
- First-time: Extensions β DataSetIQ β Authorize (grants network permissions)
- Visit datasetiq.com/dashboard/api-keys
- Create an API key (free or paid plan)
- In sidebar, enter your API key and click "Connect Account"
- Status shows: β Connected - Premium features unlocked
Basic Usage:
=DSIQ("FRED-GDP")
// Returns full GDP time-series with Date/Value headers
=DSIQ_LATEST("BLS-CPI")
// Returns latest CPI value
=DSIQ_VALUE("IMF-NGDP", "2023-12-31")
// Returns GDP value on or before Dec 31, 2023
=DSIQ_YOY("FRED-UNRATE")
// Returns year-over-year change in unemployment rateAdvanced Options:
=DSIQ("FRED-GDP", "quarterly", "2020-01-01")
// GDP data, quarterly frequency, from 2020 onwards
=DSIQ_META("FRED-GDP", "title")
// Returns metadata field (title, units, frequency, updated, source)Step 1: Choose Function
- Select from DSIQ, DSIQ_LATEST, DSIQ_VALUE, or DSIQ_YOY
- Each function has different parameters
Step 2: Enter Series ID
- Enter the series identifier (e.g., "FRED-GDP")
- Use Search tab to find series IDs
Step 3: Configure Options (DSIQ and DSIQ_VALUE only)
- Frequency: Optional (e.g., "quarterly", "monthly")
- Start Date: Optional (e.g., "2020-01-01")
Step 4: Insert
- Click "Insert Formula" to place in active cell
- Formula appears in cell and updates automatically
Creating a Template:
- Build your sheet with DSIQ formulas
- Click π§ Builder tab β Navigate to Templates section
- Click "π Scan Current Sheet"
- Review found formulas (count shown)
- Enter template name (e.g., "Q4 Report")
- Click "πΎ Save Template"
Loading a Template:
- Open new sheet
- Navigate to Templates tab
- Find saved template in list
- Click "π₯ Load" button
- All formulas inserted at original cell positions
Managing Templates:
- View: See all saved templates with formula count
- Load: Insert template into active sheet
- Delete: Remove template (ποΈ button)
Selecting Series:
- Search for series in Search tab
- Check boxes appear next to results (paid users only)
- Select multiple series by clicking checkboxes
- Counter updates: "Insert X Series" button appears
Bulk Insert:
- Select active cell where you want first series
- Click "Insert X Series" button
- Series inserted vertically (one per row)
- Uses DSIQ_LATEST function by default
- User API key stored in
PropertiesService(user-scoped, never shared) - Sidebar UI communicates with
Code.gsbackend viagoogle.script.run - Single retry with exponential backoff for 429/5xx errors
- Respects
Retry-Afterheaders from API - Date normalization to UTC
YYYY-MM-DDformat
- No Key Leakage: API keys stored per-user, never in spreadsheet
- Shared Files: Each user must connect their own account
- Scopes: Only requests necessary permissions (UrlFetchApp, Properties, Active Sheet)
- No API Key: Sidebar shows "Connect your account" prompt
- Invalid Key: "Invalid API Key. Please reconnect."
- Rate Limited: "Rate limited. Please retry shortly."
- Free Limit: "Free plan limit reached. Upgrade at datasetiq.com/pricing"
- Server Error: "Server unavailable. Please retry."
- All dates normalized to UTC
YYYY-MM-DDformat - Handles MM/DD/YYYY, DD/MM/YYYY, ISO 8601, timestamps
- Frequency and start date parameters also normalized
npm run buildβ bundlesrc/Code.tstoCode.jsforclasp push.npm run lintβ eslint over TS sources/tests.npm run typecheckβ TS no-emit check.npm run testβ vitest unit tests for helper functions.npm run formatβ prettier check.
appsscript.jsonβ manifest + scopes.src/Code.tsβ add-on logic (functions, sidebar handlers, storage).sidebar.htmlβ UI for connect/search.assets/β place store icons/screenshots.
- Add a GitHub Actions workflow to run
lint,typecheck,test, andbuildon push/pull_request.
- Install deps:
npm install. - Build:
npm run build(outputsCode.js). - Deploy with
clasp push(andclasp deploymentsfor prod channels). - Validate scopes/permissions in Apps Script dashboard before submission.
- Anonymous: 24-row cap, sidebar shows connect prompt.
- Invalid key: cells surface βInvalid API Key. Please reconnect.β
- Free limit: caps history to 5 years (server-enforced).
- Quota exceeded: cells show βDaily Quota Exceeded.β; sidebar prompts upgrade.
- Shared file: user B must connect; no key leaks.