RoboSystems
RoboSystems v1.1.0
Publisher description
From the marketplace listing
RoboSystems turns public-company financial filings into a knowledge graph ChatGPT can query directly. SEC EDGAR: every public company's XBRL filings as one queryable graph. Pull a company's financial statements by ticker or CIK, pivot reported facts across companies, periods and dimensions, resolve a concept like "revenue" to its XBRL element, and run full-text search across filing narratives, then read the exact section. Read a filing the way it was filed: list the statements and notes in a 10-K or 10-Q, then open one section whole, with its rows, breakdowns and the calculations that tie it together. The graph also exposes read-only Cypher, so a conversation can move from a question ("show me NVIDIA's latest income statement") to a raw traversal ("which 2025 10-Ks mention goodwill impairment?") without leaving ChatGPT. Authorization is OAuth 2.1 with PKCE. This plugin connects only to the SEC EDGAR repository, which is read-only, and you can revoke access at any time. Open source (Apache-2.0): github.com/RoboFinSystems/robosystems
Language: English · Automatically detected from descriptions.
Files & skills
File archives
Skill instructions
sec-filing-analysis5.69 KB
---
name: sec-filing-analysis
description: >-
Analyze a public company from its SEC EDGAR XBRL filings on the RoboSystems `sec`
graph — statements by ticker or CIK, cross-period and cross-company metric
comparisons, concept-to-element resolution, and full-text search over 10-K/10-Q
narrative. Use for questions like "show me NVIDIA's income statement", "compare
gross margin across the last eight quarters", "which filers mention goodwill
impairment", or any request that names a ticker, CIK, 10-K, 10-Q, or XBRL concept.
---
# SEC filing analysis on the `sec` graph
The `sec` graph is a curated, read-only knowledge graph of public-company XBRL
filings. There is no general ledger here and nothing to write; every tool is an
analytical read. Rate limits apply per plan, so prefer one well-chosen call over
many exploratory ones.
## The ladder — cheapest tool that answers
1. **`financial-statement-analysis`** — a whole statement for one company.
`ticker` is required on `sec`; `statement_type` is `income_statement`,
`balance_sheet`, `cash_flow_statement` or `equity_statement`. Without
`report_id` it auto-resolves the latest matching filing (`period_type`
`annual` → 10-K/20-F/40-F; `quarterly` → 10-Q; `instant` for balance-sheet
facts). Returns deduplicated consolidated facts ordered by period, plus the
`resolved_report`. Start here for "show me X's statement".
2. **`build-fact-grid`** — *specific* elements across any mix of periods and
entities. Use `canonical_concepts` (`revenue`, `net_income`, `total_assets`,
…) rather than raw qnames so cross-filer tagging differences collapse
(`us-gaap:Revenues` vs `us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax`).
Set `period_type` for duration concepts, `entities` for multi-company
comparisons, and raise `limit` when `truncated` comes back true. This is the
tool for "compare A and B" and "trend over N periods".
3. **`resolve-element`** — map a concept in words to the qnames actually used,
with fact counts and a ready-to-run `query_hint`. Call it before writing
Cypher that filters on an element.
4. **`search-documents`** — BM25 keyword search across filing narrative and
iXBRL disclosure sections; `semantic: true` adds vector ranking. Filter with
`entity`, `form_type`, `fiscal_year`, `section` (`item_1a`, `item_7`, …) or
`element` (find disclosures carrying a given XBRL fact). Follow a hit with
**`get-document-section`** for the full text; iXBRL hits carry
`xbrl_elements` you can hand to `resolve-element` — the bridge from narrative
back to numbers.
5. **`read-graph-cypher`** — when the shaped tools don't fit. Always run
`get-example-queries` first; the patterns below are the ones that matter.
## Cypher patterns that work here
Consolidated revenue for one company, cross-filer robust:
```cypher
MATCH (f:Fact {has_dimensions: false})-[:FACT_HAS_ELEMENT]->(e:Element),
(f)-[:FACT_HAS_ENTITY]->(ent:Entity {ticker: 'NVDA'}),
(f)-[:FACT_HAS_PERIOD]->(p:Period {duration_type: 'annual'})
WHERE e.canonical_concept = 'revenue' AND f.numeric_value IS NOT NULL
RETURN ent.ticker, e.qname, p.end_date, f.numeric_value AS revenue
ORDER BY p.end_date DESC LIMIT 10
```
A whole statement via the presentation structure — anchor on the entity, reach
`Structure` last:
```cypher
MATCH (ent:Entity {ticker: 'NVDA'})<-[:FACT_HAS_ENTITY]-(f:Fact {has_dimensions: false})-[:FACT_HAS_ELEMENT]->(e:Element),
(f)-[:FACT_HAS_PERIOD]->(p:Period {duration_type: 'annual'}),
(fs:FactSet)-[:FACT_SET_CONTAINS_FACT]->(f),
(s:Structure {canonical_type: 'income_statement'})-[:STRUCTURE_HAS_FACT_SET]->(fs)
WHERE f.numeric_value IS NOT NULL
RETURN DISTINCT e.qname, f.numeric_value AS value, p.end_date
ORDER BY p.end_date DESC LIMIT 40
```
Segment breakdowns — flip the dimension flag:
```cypher
MATCH (f:Fact {has_dimensions: true})-[:FACT_HAS_ELEMENT]->(e:Element),
(f)-[:FACT_HAS_DIMENSION]->(d:Dimension)
WHERE e.qname = 'us-gaap:Revenues' AND f.numeric_value IS NOT NULL
RETURN d.axis_uri, d.member_uri, f.numeric_value LIMIT 10
```
## Rules of the road
- **Consolidated vs dimensional.** `has_dimensions: false` is the consolidated
total; `true` is a segment/geography/member breakdown. Mixing them double-counts.
- **Canonical concepts over qnames.** `Element.canonical_concept` normalizes the
tag zoo; `resolve-element` tells you which qnames map to it for a given filer.
- **Periods.** Income-statement and cash-flow facts are `duration` with a
`duration_type`; balance-sheet facts are `instant`. Filter accordingly or you
get an empty or mixed result.
- **Anchor selectively.** Lead every `MATCH` with an `Entity` or `Report`; never
with `Structure`, `Element` or `Period` alone. Always `LIMIT`.
- **One `MATCH`, comma-separated patterns** for multiple relationships from the
same node.
- **Numbers vs prose.** Cypher and the shaped tools answer with numbers;
`search-documents` answers with prose. A complete analysis usually needs both:
the figure, then the disclosure that explains it.
- **Fiscal calendars vary.** NVIDIA's fiscal 2026 ended 2026-01-25. Use
`fiscal_year` / `fiscal_period` filters from the report's own focus rather
than calendar assumptions.
## Worked shape
"Compare NVIDIA's gross margin across its last eight quarters":
1. `build-fact-grid` with `entity: NVDA`, `canonical_concepts:
[revenue, cost_of_revenue]`, `period_type: quarterly`, `limit: 40`.
2. Compute margin per period from the returned pairs; note any period where a
10-K annual fact stands in for a quarter (annual filers report Q4 implicitly).
3. If the trend needs explanation, `search-documents` with `entity: NVDA`,
`section: item_7`, query "gross margin" — and cite the section.
Package details
Publisher declarations from the archived package. These are separate from our research and the live service's terms.
- Package author
- RoboSystems
Package observed Sep 30, 2026.
Technical details
- First seen
- Sep 30, 2026 · 22:02 UTC
- Last seen
- Oct 2, 2026 · 00:00 UTC
- Collection status
- Collected
plugin_asdk_app_6a8f6d7d50d081918787990d4cab45ca
Download plugin data (JSON)