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.