Public Tracker v0.7d
tracker_v07d ·
ID 1Vx4NQF2Y17vXTgRJFEbYduJXQAf4OQcR_nVdg9PeKMU ·
Effort to rehab: medium
Purpose
Infrastructure shape
Tabs (16)
| Tab | Status | Purpose | Notes |
|---|---|---|---|
start |
working | Setup wizard - user pastes Universe URL in B6, B7/B8 auto-resolve from named ranges | 8 formulas, all alive logic; depends on Universe IMPORTRANGE being authorized |
DASH |
partial | Macro/markets/indices dashboard with multi-portfolio side-by-side views | 26 formulas; pulls B1:AB from Metrics sheet via DASH!B1 IMPORTRANGE; HYPERLINK columns to WhaleWisdom/SeekingAlpha alive; visible #REF! values in B3/C3/D3 confirm Metrics IMPORTRANGE not authorized |
d |
partial | Daily movers (>=10% in a day) sortable view | 4977 formulas; structure sound, all blanks gated on Universe authorization; HYPERLINK decorations alive |
w |
partial | Weekly movers (>=10% in a week) | Same shape as d; depends on setup data |
$ |
partial | Insider buying tracker against Universe | Same shape as d; depends on Insider Buying sheet IMPORTRANGE |
d (old) |
broken | Legacy daily movers tab | Hidden, 306 formulas - cruft, drop in rehab |
w (old) |
broken | Legacy weekly movers | Hidden, 4216 formulas - cruft |
$ (old) |
broken | Legacy insider tab | Hidden, 1008 formulas - cruft |
$+ |
broken | Enhanced insider buys with per-ticker Yahoo fundamentals overlay | 20,608 formulas, 19,569 are Yahoo IMPORTJSON. CH4 #ERROR is the canonical break. Entire tab non-functional until Yahoo replacement |
custom |
broken | User-configurable per-ticker view with full Yahoo fundamentals fan-out | 47,644 formulas (largest tab), 42,614 IMPORTJSON. Same Yahoo dependency |
industry |
partial | Sector/industry/sub-industry navigator | 370 formulas, 5 hard-broken (#N/A on MATCH/SORT/FILTER cascading from missing Universe data); will heal with data |
toDo |
working | Author's planned-improvements list | 0 formulas; informational |
setup |
broken | Data staging - 5 IMPORTRANGE chokepoints feed everything else | 60 formulas; B3/B5/R5/AG5/AR5 are the master IMPORTRANGE bases. AR5 pulls from Metrics yahoo!B2:AD5050 |
send |
partial | Outbound formatting/staging tab (likely for export) | Only 3 formulas; minimal surface |
admin |
partial | Configuration: data source URLs, menu options, auth state | 11 formulas, 2 hard-broken (BE3/BF3 cascade from industry). AQ3='https://query1.finance.yahoo.com/v10/finance/quoteSummary/' is the dead Yahoo base. AR3 holds the modules query string |
notes |
working | Free-form user notes | 0 formulas |
External dependencies
| URL / endpoint | Status | Purpose | Replacement |
|---|---|---|---|
| https://query1.finance.yahoo.com/v10/finance/quoteSummary/ | ✗ dead | All ~62k fundamentals lookups (EBITDA, EPS, sharesOutstanding, EV, dividendYield, totalCash/Debt, 52w, bookValue, etc.) via IMPORTJSON | VPS endpoint backed by secfsdstools flattening SEC EDGAR XBRL into a master!fundamentals tab; rewrite IMPORTJSON cells to VLOOKUP |
| https://stockcharts.com/h-sc/ui?s= | ✓ alive | Per-ticker chart hyperlinks (16,102 occurrences) | keep as-is |
| http://openinsider.com/search?q= | ✓ alive | Per-ticker insider transaction page hyperlinks (7,264) | keep hyperlinks; structured data via VPS/OpenInsider scraper feeding master!insider |
| https://seekingalpha.com/symbol/ | ✓ alive | News/profile hyperlinks (621) | keep as-is |
| https://whalewisdom.com/stock/ | ✓ alive | Institutional holder hyperlinks (620) | keep as-is |
| https://www.sec.gov/edgar/search/?r=el#/entityName= | ✓ alive | EDGAR filing search hyperlinks (610) | keep as-is |
| https://www.google.com/search?q= | ✓ alive | Google search hyperlinks (610) | keep as-is |
| https://finance.yahoo.com/quote/ | ✗ dead | Yahoo profile page hyperlink (610) - HTTP 500 on landing | swap to https://stockanalysis.com/stocks/ or https://finviz.com/quote.ashx?t= |
Cross-sheet IMPORTRANGE dependencies (out)
| From | Target sheet | Range | Purpose |
|---|---|---|---|
|
? |
? |
Authorize Universe IMPORTRANGE |
|
? |
? |
Authorize Insider Buying IMPORTRANGE |
|
? |
? |
Authorize Metrics IMPORTRANGE |
|
? |
? |
Macro dashboard data |
|
? |
? |
Master ticker metadata pull |
|
? |
? |
Secondary ticker metadata |
|
? |
? |
Tag/sector data |
|
? |
? |
Insider transactions |
|
? |
? |
Bulk fundamentals mirror |
|
? |
? |
Setup-link autopopulation |
|
? |
? |
Tags list for filters |
|
? |
? |
Inventory probe reports 0 IMPORTRANGE edges because all targets are named ranges (universe/insiderBuying/metricsSheet) not literal sheet IDs |
Broken cells — root cause analysis
Total error cells: 8
| Root cause | Count | Example addresses |
|---|---|---|
| Yahoo IMPORTJSON returns ERROR (query1 quoteSummary requires crumb+cookie auth since mid-2023) | 1 | $+!CH4 |
| MATCH against industry!A8:A which is empty until Universe IMPORTRANGE authorized | 4 | industry!AE2, industry!M3, industry!B7, industry!C363 |
| TRANSPOSE/SPLIT against industry!B2:AL6 empty (cascade from same root) | 2 | admin!BE3, admin!BF3 |
| SORT/FILTER on setup!$DG$5:$DQ empty (cascade) | 1 | industry!C369 |
| _silent_iceberg: ~62k formula-bearing-but-empty IMPORTJSON cells in $+ and custom that will fail the moment tickers populate | 62195 | $+!CH4, custom!* |
Rehab strategy
Named ranges
Questions for you
- Confirm the source-of-truth Universe sheet ID. The AW5 sample value points to '1vsb2UfsqPXSfXzH1j-qnK8sDaW37kdKd097MiC7m1PM' (which url_probe lists under universe_v07d). Is that the canonical Universe to wire up, or is there a newer one?
- For the Yahoo IMPORTJSON replacement - prefer option 1 (mass-rewrite to VLOOKUP against pre-flattened master tab) or option 2 (keep IMPORTJSON shape but write an Apps Script wrapper hitting VPS REST API)? Option 1 is cleaner; option 2 preserves the original 62k formulas verbatim if you want minimal sheet-side diffs.
- Drop the (old) tabs entirely, or preserve them for archaeology / historical reference?
- The custom Apps Script function IMPORTJSON() isn't visible in the inventory - was the script payload captured separately, or is that a TODO before rehab?
Full markdown analysis (click to expand)
Public Tracker v0.7d — Analysis
Sheet: Copy of Public Tracker - v0.7d
ID: 1Vx4NQF2Y17vXTgRJFEbYduJXQAf4OQcR_nVdg9PeKMU
Author: u/TheSuperSpy
Tabs: 16 | Total formulas: 89,191 | Unique: 65,527
Hard error cells: 8 (everything else is ISBLANK-gated empty)
Purpose
Per-ticker tracking surface that sits on top of the SuperSpy stack. The user pastes a Universe sheet URL into start!B6, and the tracker pulls everything else (Insider Buying sheet, Metrics sheet) by chained IMPORTRANGE. Layers Yahoo Finance fundamentals (via IMPORTJSON), insider activity, daily/weekly/dollar movers, sector/industry breakdowns, and a custom user-configurable view on top. This was the most-used surface in the 2021-era DFV community stack — the screen people actually opened every day.
Infrastructure shape
- Entry point:
start!B6accepts the Universe sheet URL.start!B7/B8autopopulate the Insider Buying and Metrics sheet links from named rangesinsiderBuyingandmetricsSheet(which themselves IMPORTRANGE from Universeadmin!AA3/admin!M3). - Data fan-in:
setuptab (5,711 rows × 124 cols) is the chokepoint. Five IMPORTRANGE formulas (setup!B3,B5,R5,AG5,AR5) pull Universe metadata, insider buys, and Metrics data into a single staging table. - Data fan-out:
d,w,$,$+,custom,DASH,industryall read fromsetupvia VLOOKUP / QUERY againstsetup!$B$5:$DAandsetup!$B$5:$DFranges. - Fundamentals: 62,195 IMPORTJSON calls, all hitting
admin!AQ3 & ticker & admin!AR3, which resolves tohttps://query1.finance.yahoo.com/v10/finance/quoteSummary/{TICKER}?modules=financialData,balanceSheetHistoryQuarterly,.... 13 unique JSON path patterns extracting EBITDA, shares outstanding, EPS, book value, total cash/debt, 52-week high/low, etc. Concentrated in$+(19,569 calls) andcustom(42,614 calls). - External link decoration: ~26k HYPERLINK formulas to StockCharts, OpenInsider, SeekingAlpha, WhaleWisdom, EDGAR, Google search, Yahoo profile pages — pure URL builders, not data fetches.
- Formula scaffolding: 88,900 ISBLANK guards, 15,500 INDIRECT/ADDRESS/ROW/MATCH navigation — typical defensive sheet engineering.
- No native IMPORTRANGE edges out per the inventory probe (0 cross-sheet edges found at parse time), but runtime edges absolutely exist to Universe / Insider Buying / Metrics; the inventory missed them because they reference named ranges, not literal sheet IDs. See
setup!B3,setup!AG5,setup!AR5,admin!E4,admin!W28,DASH!B1,start!D6:D8.
What works
- All HYPERLINK plumbing (~26k cells) — StockCharts (alive), OpenInsider (alive), SeekingAlpha (alive), WhaleWisdom (alive), SEC EDGAR (alive), Google (alive). These light up the moment Universe
setup!B5IMPORTRANGE returns tickers. - The
startsetup wizard logic and named-range plumbing (29 named ranges) is intact and well-engineered. - VLOOKUP / SORT / QUERY routing from
setupintod/w/$/ DASH is structurally sound. - The
industrysector/sub-industry navigator (small target — 370 formulas, only 5 hard-broken). toDoandnotestabs (informational only).
What's broken (specific cells)
Hard errors (8 total):
- $+!CH4 — #ERROR! from the master Yahoo IMPORTJSON for sharesOutstanding/totalRevenue/52w/EBITDA/EV/dividendYield/totalCash/totalDebt/EPS/bookValue. This is the canonical broken cell — the row 4 template the entire $+ tab inherits.
- industry!AE2, industry!M3 — #N/A from MATCH on labels ("Communication Svcs", "auto components") that don't exist in the current Universe-fed industry!A8:A because the Universe IMPORTRANGE hasn't been authorized in this copy.
- industry!B7 — #N/A from MATCH(B3, sortColumn2, 0) (cascade).
- industry!C363, industry!C369 — #N/A from SORT(FILTER(setup!$DG$5:$DQ, subIndustry = ...)) (cascade).
- admin!BE3, admin!BF3 — #N/A from TRANSPOSE/SPLIT against industry!B2:AL6 which is empty until Universe is wired.
Silent breakage (the iceberg): Per compact.json, 87,916 cells are formula-bearing but empty-valued. Of these:
- ~62k are Yahoo IMPORTJSON calls that will return errors or empties the moment a ticker arrives, because query1.finance.yahoo.com/v10/finance/quoteSummary requires a crumb + cookie auth pair as of mid-2023. The URL probe confirms query2.finance.yahoo.com/v6/finance/quoteSummary returns 404 and finance.yahoo.com/quote returns 500.
- ~25k are setup-fed VLOOKUPs / sorts / per-row decorators that are blank only because the Universe IMPORTRANGE upstream is unauthorized in this fresh copy (gated by setup!C1, D1, AG1 boolean toggles).
Hidden legacy tabs: d (old), w (old), $ (old) — kept hidden, ~5,500 dead formulas. Cruft.
External dependencies
| URL | Alive | Occurrences | Replacement |
|---|---|---|---|
query1.finance.yahoo.com/v10/finance/quoteSummary/ (via admin!AQ3) |
DEAD (auth-gated since 2023) | 62,195 | VPS endpoint backed by secfsdstools (SEC fundamentals) |
stockcharts.com/h-sc/ui?s= |
alive | 16,102 | keep |
openinsider.com/search?q= |
alive | 7,264 | keep (also feed structured data via VPS/OpenInsider) |
seekingalpha.com/symbol/ |
alive | 621 | keep |
whalewisdom.com/stock/ |
alive | 620 | keep |
sec.gov/edgar/search/?r=el#/entityName= |
alive | 610 | keep |
google.com/search?q= |
alive | 610 | keep |
finance.yahoo.com/quote/ (HYPERLINK only — humans) |
dead landing (HTTP 500), link target only | 610 | swap to finviz or stockanalysis.com |
No leaked credentials in this sheet. The apikey=L1TT... in the URL probe belongs to social_tracker, not Tracker v0.7d. Clean.
Cross-sheet dependencies
Tracker v0.7d depends on three other sheets, dynamically resolved:
- Universe (user-pasted into start!B6, e.g. 1vsb2UfsqPXSfXzH1j-qnK8sDaW37kdKd097MiC7m1PM per the AW5 sample value) — supplies tickers, tags, sub-industry, sector, manual notes.
- Insider Buying (auto-resolved from Universe admin!AA3) — supplies universeBuys!C4:M insider transactions.
- Metrics (auto-resolved from Universe admin!M3) — supplies yahoo!B2:AD5050 (per-ticker fundamentals scrape) and DASH!B1:AB (market dashboard data).
The metricsSheet IMPORTRANGE pulls from a yahoo! tab — meaning Tracker doesn't call Yahoo directly for every ticker; the bulk of fundamentals are mirrored via the Metrics sheet, with IMPORTJSON only on per-row $+ / custom expansion. Metrics sheet is therefore the keystone — fix that one, and Tracker mostly heals.
No outbound IMPORTRANGE edges to other DFV-stack sheets beyond Universe / Insider Buying / Metrics.
Rehab strategy
Goal: keep Tracker v0.7d as the user-facing portfolio surface; replace its data plumbing with a single VPS-backed master sheet so the user only authorizes one IMPORTRANGE.
- Stand up
dfv-mastersheet fed by VPS Python service. Tabs:prices(FRED + market data),fundamentals(secfsdstools quarterly/annual XBRL → flattened metrics matching the 13 Yahoo paths in admin!AR3),insider(OpenInsider),dash(Treasury fiscaldata + FRED macro),universe(curated ticker list). - Repoint named ranges in Tracker: change
universe,insiderBuying,metricsSheetto all reference the same master sheet ID. Keeps the existingstart!B6:B8UX but collapses three IMPORTRANGE auth grants into one. - Replace the Yahoo IMPORTJSON layer in
$+andcustomtabs. Two options: - (low effort) Pre-flatten all needed metrics into
master!fundamentalscolumns and rewrite the ~62k IMPORTJSON cells to plain VLOOKUP / INDEX-MATCH against that range. Drops the IMPORTJSON dependency entirely. - (higher effort) Stand up an internal IMPORTJSON-compatible Apps Script wrapper hitting the VPS REST API. Preserves formula shape but reintroduces script complexity. Recommend option 1 — VPS already produces flat tables; sheet-side becomes simple lookups.
- Drop the
(old)tabs entirely. Cruft, hidden, no value. - Keep all HYPERLINK columns as-is. Decorative and all alive.
- Patch
industrycascading errors by ensuring Universe pre-populatesindustry!A8:Awith the canonical sector list (or rebuild as a static enum on the master sheet).
Effort rating
Medium. The bulk-formula horror (89k cells) is misleading — most of it is mechanical decoration that survives a clean Universe authorization and a Metrics sheet swap. Actual rewrite scope:
- ~62k IMPORTJSON cells in $+ and custom → mass find/replace to VLOOKUP against a fixed master range.
- 5 IMPORTRANGE bases in setup → repoint to single master sheet.
- 8 hard-broken cells → trivially heal once data flows.
- One Apps Script IMPORTJSON() custom function may need to be removed/replaced if option 1 is chosen.
No script rewrites, no schema redesign, no chart rebuilds (sheet has 0 charts). One competent half-day plus a Metrics-sheet rebuild.
Raw analysis.json
{
"broken_cells_summary": {
"by_tab": {
"$+": 1,
"admin": 2,
"industry": 5
},
"root_causes": [
{
"cause": "Yahoo IMPORTJSON returns ERROR (query1 quoteSummary requires crumb+cookie auth since mid-2023)",
"count": 1,
"example_addrs": [
"$+!CH4"
]
},
{
"cause": "MATCH against industry!A8:A which is empty until Universe IMPORTRANGE authorized",
"count": 4,
"example_addrs": [
"industry!AE2",
"industry!M3",
"industry!B7",
"industry!C363"
]
},
{
"cause": "TRANSPOSE/SPLIT against industry!B2:AL6 empty (cascade from same root)",
"count": 2,
"example_addrs": [
"admin!BE3",
"admin!BF3"
]
},
{
"cause": "SORT/FILTER on setup!$DG$5:$DQ empty (cascade)",
"count": 1,
"example_addrs": [
"industry!C369"
]
},
{
"cause": "_silent_iceberg: ~62k formula-bearing-but-empty IMPORTJSON cells in $+ and custom that will fail the moment tickers populate",
"count": 62195,
"example_addrs": [
"$+!CH4",
"custom!*"
]
}
],
"total": 8
},
"effort_rating": "medium",
"external_dependencies": [
{
"alive": false,
"purpose": "All ~62k fundamentals lookups (EBITDA, EPS, sharesOutstanding, EV, dividendYield, totalCash/Debt, 52w, bookValue, etc.) via IMPORTJSON",
"replacement": "VPS endpoint backed by secfsdstools flattening SEC EDGAR XBRL into a master!fundamentals tab; rewrite IMPORTJSON cells to VLOOKUP",
"url": "https://query1.finance.yahoo.com/v10/finance/quoteSummary/"
},
{
"alive": true,
"purpose": "Per-ticker chart hyperlinks (16,102 occurrences)",
"replacement": "keep as-is",
"url": "https://stockcharts.com/h-sc/ui?s="
},
{
"alive": true,
"purpose": "Per-ticker insider transaction page hyperlinks (7,264)",
"replacement": "keep hyperlinks; structured data via VPS/OpenInsider scraper feeding master!insider",
"url": "http://openinsider.com/search?q="
},
{
"alive": true,
"purpose": "News/profile hyperlinks (621)",
"replacement": "keep as-is",
"url": "https://seekingalpha.com/symbol/"
},
{
"alive": true,
"purpose": "Institutional holder hyperlinks (620)",
"replacement": "keep as-is",
"url": "https://whalewisdom.com/stock/"
},
{
"alive": true,
"purpose": "EDGAR filing search hyperlinks (610)",
"replacement": "keep as-is",
"url": "https://www.sec.gov/edgar/search/?r=el#/entityName="
},
{
"alive": true,
"purpose": "Google search hyperlinks (610)",
"replacement": "keep as-is",
"url": "https://www.google.com/search?q="
},
{
"alive": false,
"purpose": "Yahoo profile page hyperlink (610) - HTTP 500 on landing",
"replacement": "swap to https://stockanalysis.com/stocks/ or https://finviz.com/quote.ashx?t=",
"url": "https://finance.yahoo.com/quote/"
}
],
"importrange_edges_out": [
{
"purpose": "Authorize Universe IMPORTRANGE",
"source_cell": "start!D6",
"target": "Universe sheet (user-pasted)"
},
{
"purpose": "Authorize Insider Buying IMPORTRANGE",
"source_cell": "start!D7",
"target": "Insider Buying sheet (auto-resolved)"
},
{
"purpose": "Authorize Metrics IMPORTRANGE",
"source_cell": "start!D8",
"target": "Metrics sheet (auto-resolved)"
},
{
"purpose": "Macro dashboard data",
"source_cell": "DASH!B1",
"target": "Metrics!DASH!B1:AB"
},
{
"purpose": "Master ticker metadata pull",
"source_cell": "setup!B3",
"target": "Universe!universe!A4:AE"
},
{
"purpose": "Secondary ticker metadata",
"source_cell": "setup!B5",
"target": "Universe!universe!A4:AE"
},
{
"purpose": "Tag/sector data",
"source_cell": "setup!R5",
"target": "Universe!universe!AF4:AT"
},
{
"purpose": "Insider transactions",
"source_cell": "setup!AG5",
"target": "Insider Buying!universeBuys!C4:M"
},
{
"purpose": "Bulk fundamentals mirror",
"source_cell": "setup!AR5",
"target": "Metrics!yahoo!B2:AD5050"
},
{
"purpose": "Setup-link autopopulation",
"source_cell": "admin!E4",
"target": "Universe!start!B7:F"
},
{
"purpose": "Tags list for filters",
"source_cell": "admin!W28",
"target": "Universe!tagsList"
},
{
"purpose": "Inventory probe reports 0 IMPORTRANGE edges because all targets are named ranges (universe/insiderBuying/metricsSheet) not literal sheet IDs",
"source_cell": "_inventory_note",
"target": "_inventory_note"
}
],
"infrastructure_shape": "Three-tier: (1) start tab is the user setup wizard accepting Universe URL; named ranges universe/insiderBuying/metricsSheet auto-resolve. (2) setup tab (5711x124) is the staging chokepoint - 5 IMPORTRANGE formulas pull all upstream data. (3) Display tabs (d/w/$/$+/custom/DASH/industry) read setup via VLOOKUP/QUERY and decorate with ~26k HYPERLINK builders to external sites. Fundamentals layer is 62,195 IMPORTJSON calls hitting Yahoo query1 quoteSummary endpoint via admin!AQ3 base URL. 29 named ranges, 0 charts, 0 filter views (1 in setup), 8 hard error cells, 87,916 ISBLANK-gated empty formulas. No Apps Script (the IMPORTJSON function implies a custom Apps Script that the inventory didn\u0027t capture; 89k formulas without scripts beyond it).",
"name": "Public Tracker v0.7d",
"named_ranges_assessment": "29 named ranges, all structurally intact. Critical ones: universe/insiderBuying/metricsSheet/pricesLink (4 IMPORTRANGE entry points - rehab repoints these to a single master sheet); SubmitButton/masterFilter/masterNoError/queryFilters1/queryFilters2/sortColumn1/sortColumn2/ascendingDescending/YearsToAnalyze (UI controls on admin tab); tagsList/setupLabels/subIndustry/portLabels (label/lookup data); customSheetName/customFilter/customNoError plus tab-prefixed siblings (\u0027d\u0027!customFilter, \u0027w\u0027!customFilter, \u0027$\u0027!customFilter) for the per-tab custom view system. No broken refs. Drop nothing.",
"purpose": "Per-ticker tracking surface (the most-used screen in the SuperSpy DFV stack). User pastes a Universe sheet URL into start!B6; tracker chains IMPORTRANGE through Universe -\u003e Insider Buying -\u003e Metrics, then layers Yahoo Finance fundamentals via IMPORTJSON, insider activity, and daily/weekly/dollar movers across d/w/$/$+/custom/DASH/industry tabs.",
"questions_for_brad": [
"Confirm the source-of-truth Universe sheet ID. The AW5 sample value points to \u00271vsb2UfsqPXSfXzH1j-qnK8sDaW37kdKd097MiC7m1PM\u0027 (which url_probe lists under universe_v07d). Is that the canonical Universe to wire up, or is there a newer one?",
"For the Yahoo IMPORTJSON replacement - prefer option 1 (mass-rewrite to VLOOKUP against pre-flattened master tab) or option 2 (keep IMPORTJSON shape but write an Apps Script wrapper hitting VPS REST API)? Option 1 is cleaner; option 2 preserves the original 62k formulas verbatim if you want minimal sheet-side diffs.",
"Drop the (old) tabs entirely, or preserve them for archaeology / historical reference?",
"The custom Apps Script function IMPORTJSON() isn\u0027t visible in the inventory - was the script payload captured separately, or is that a TODO before rehab?"
],
"rehab_strategy": "Keep Tracker v0.7d as the user-facing surface; replace plumbing with one VPS-backed master sheet. Steps: (1) build dfv-master sheet with tabs prices/fundamentals/insider/dash/universe fed by VPS Python service (secfsdstools for SEC fundamentals matching the 13 Yahoo JSON paths in admin!AR3, OpenInsider scraper for insider, FRED/fiscaldata for macro). (2) Repoint universe/insiderBuying/metricsSheet/pricesLink named ranges to the same master sheet ID - collapses 3 IMPORTRANGE auth grants into 1. (3) Mass find/replace the ~62k IMPORTJSON cells in $+ and custom to VLOOKUP/INDEX-MATCH against master!fundamentals - drops Yahoo dependency entirely. (4) Delete the three (old) hidden tabs. (5) Pre-populate industry!A8:A with canonical sector enum to heal the 5 cascading #N/A errors. (6) Keep all HYPERLINK columns as-is (all destinations alive except finance.yahoo.com - swap to stockanalysis.com). No script rewrites, no chart rebuilds (zero charts), no schema redesign.",
"slug": "tracker_v07d",
"tabs": [
{
"name": "start",
"notes": "8 formulas, all alive logic; depends on Universe IMPORTRANGE being authorized",
"purpose": "Setup wizard - user pastes Universe URL in B6, B7/B8 auto-resolve from named ranges",
"status": "working"
},
{
"name": "DASH",
"notes": "26 formulas; pulls B1:AB from Metrics sheet via DASH!B1 IMPORTRANGE; HYPERLINK columns to WhaleWisdom/SeekingAlpha alive; visible #REF! values in B3/C3/D3 confirm Metrics IMPORTRANGE not authorized",
"purpose": "Macro/markets/indices dashboard with multi-portfolio side-by-side views",
"status": "partial"
},
{
"name": "d",
"notes": "4977 formulas; structure sound, all blanks gated on Universe authorization; HYPERLINK decorations alive",
"purpose": "Daily movers (\u003e=10% in a day) sortable view",
"status": "partial"
},
{
"name": "w",
"notes": "Same shape as d; depends on setup data",
"purpose": "Weekly movers (\u003e=10% in a week)",
"status": "partial"
},
{
"name": "$",
"notes": "Same shape as d; depends on Insider Buying sheet IMPORTRANGE",
"purpose": "Insider buying tracker against Universe",
"status": "partial"
},
{
"name": "d (old)",
"notes": "Hidden, 306 formulas - cruft, drop in rehab",
"purpose": "Legacy daily movers tab",
"status": "broken"
},
{
"name": "w (old)",
"notes": "Hidden, 4216 formulas - cruft",
"purpose": "Legacy weekly movers",
"status": "broken"
},
{
"name": "$ (old)",
"notes": "Hidden, 1008 formulas - cruft",
"purpose": "Legacy insider tab",
"status": "broken"
},
{
"name": "$+",
"notes": "20,608 formulas, 19,569 are Yahoo IMPORTJSON. CH4 #ERROR is the canonical break. Entire tab non-functional until Yahoo replacement",
"purpose": "Enhanced insider buys with per-ticker Yahoo fundamentals overlay",
"status": "broken"
},
{
"name": "custom",
"notes": "47,644 formulas (largest tab), 42,614 IMPORTJSON. Same Yahoo dependency",
"purpose": "User-configurable per-ticker view with full Yahoo fundamentals fan-out",
"status": "broken"
},
{
"name": "industry",
"notes": "370 formulas, 5 hard-broken (#N/A on MATCH/SORT/FILTER cascading from missing Universe data); will heal with data",
"purpose": "Sector/industry/sub-industry navigator",
"status": "partial"
},
{
"name": "toDo",
"notes": "0 formulas; informational",
"purpose": "Author\u0027s planned-improvements list",
"status": "working"
},
{
"name": "setup",
"notes": "60 formulas; B3/B5/R5/AG5/AR5 are the master IMPORTRANGE bases. AR5 pulls from Metrics yahoo!B2:AD5050",
"purpose": "Data staging - 5 IMPORTRANGE chokepoints feed everything else",
"status": "broken"
},
{
"name": "send",
"notes": "Only 3 formulas; minimal surface",
"purpose": "Outbound formatting/staging tab (likely for export)",
"status": "partial"
},
{
"name": "admin",
"notes": "11 formulas, 2 hard-broken (BE3/BF3 cascade from industry). AQ3=\u0027https://query1.finance.yahoo.com/v10/finance/quoteSummary/\u0027 is the dead Yahoo base. AR3 holds the modules query string",
"purpose": "Configuration: data source URLs, menu options, auth state",
"status": "partial"
},
{
"name": "notes",
"notes": "0 formulas",
"purpose": "Free-form user notes",
"status": "working"
}
]
}