Data model · Schema

The data model behind the money-flow graph and the machine endpoints for agents. A reference for integrating the data directly.

Machine endpoints

  • /<slug>.md — Company node as LLM-reasoning markdown. Supports ?lang=en.
  • /<slug>.json — Structured JSON. Lossless bilingual (both ko and en fields).
  • /<slug>/customers.md — Question-shaped doc: who pays this company (customers and investors). Supports ?lang=en.
  • /<slug>/suppliers.md — Question-shaped doc: who this company pays (suppliers and investees). Supports ?lang=en.
  • /<slug>/ripple.md — Question-shaped doc: value-chain ripple (leading demand chain, benefiting supply chain). Supports ?lang=en.
  • /<slug>/consensus.md — Question-shaped doc: broker ratings and price-target consensus. Supports ?lang=en.
  • /analysis/<slug>.md — Analysis article as LLM-reasoning markdown. Supports ?lang=en.
  • /llms.txt — Agent discovery index (all companies + .md links).

Tables

vc_companies · Company nodes

  • slugtextURL identifier (unique)
  • name / name_entextCompany name (KO/EN)
  • tickertextTicker (e.g. NVDA, 000660.KS)
  • kicker / lead (+_en)textFree-text category and summary (KO/EN)
  • categoriestext[]1-3 business category keys (controlled vocabulary vc_vocab_categories, themes in vc_vocab_themes). Null on nodes not yet assigned
  • category_primarytextThe one category key used for weighting (always within categories)
  • segments / segments_enjsonbTotal revenue, concentration, segments
  • name_ko / countrytextKorean name (for foreign firms) and country code
  • returns_yearly / return_asofjsonb/dateYearly returns {year:%} and as-of date (heatmap)
  • price / price_currency / price_asofnum/text/dateCurrent price, currency, as-of (shown beside ratings)
  • analysis_ko / analysis_en / analysis_asoftext/dateValue-chain verification note (KO/EN) and as-of
  • updated_atdateLast updated (home sort key)

vc_edges · Money-flow edges

  • company_iduuidSource node
  • directiontext'revenue' | 'cost'
  • counterparty_nametextCounterparty name
  • counterparty_iduuidCounterparty node (links the graph when present)
  • confidencetext'high' | 'mid' | 'low'
  • metricjsonbNormalized metric {type,value,unit,period,basis,qualifier}
  • note (+_en)textNote (KO/EN)

vc_edge_sources · Observations (edge × source)

  • edge_id / source_iduuidEdge and source references
  • stancetext'confirms' | 'mentions' | 'contradicts'
  • as_ofdateObservation date
  • metricjsonbPer-observation normalized metric
  • excerpt (+_en)textSource excerpt (KO/EN)

vc_sources · Sources

  • urltextSource URL (unique)
  • title (+_en)textTitle (KO/EN)
  • publisher (+_en)textPublisher (KO/EN)
  • kindtext'filing' | 'news' | 'ir' | 'research'
  • published_at / langdate/textPublished date and language (ko/en)

vc_analyst_ratings · Broker analyst ratings

  • company_iduuidRated node
  • broker (+_en) / analysttextBroker (KO/EN) and analyst
  • rating / rating_normtextRaw rating and normalized ('buy'|'hold'|'sell')
  • target_price / currencynum/textTarget price and currency
  • report_title (+_en) / report_urltextReport title (KO/EN) and URL
  • summary_ko / summary_entextSummary (KO/EN)
  • published_at / accessed_atdateReport date and access date

vc_articles · Analysis articles

  • slugtextURL identifier (unique)
  • title / summary (+_en)textTitle and summary (KO/EN)
  • body_ko / body_entextBody markdown (bilingual)
  • tags (+_en) / related_slugstext[]Tags and related node slugs
  • faqjsonbQ&A [{q,a,q_en,a_en}], rendered as FAQPage JSON-LD
  • positionsjsonbPosition groups (returns live-joined from nodes)
  • changelogjsonbChange log [{date,note,note_en}], newest first
  • pinned / sort_orderbool/intPin to top (house view) and reading order
  • published_at / updated_atdatePublished and updated dates

vc_roadmap · Update and expansion log

  • entry_datedateEntry date
  • kindtext'update' (done) | 'planned'
  • statustext'done' | 'in_progress' | 'planned'
  • title (+_en) / detail (+_en)textTitle and detail (KO/EN)
  • sort_orderintSort order (unique)

vc_crawl_log · AI crawl and citation log

  • ts / pathtimestamp/textCrawl time and requested path
  • sitetextSite key. This site is 'valuechain'; other sites log to the same table, so filter on it
  • categorytextRecord kind: 'ai' (AI crawler) | 'search' (search or link preview) | 'attack' (blocked secret probe) | 'referral' (person arriving from an AI answer) | 'referral_nav' (their browsing over the next 30 min) | 'panel_nav' (chain panel opened) | 'cta_portle' (Portle prompt clicked) | 'cta_lang_en' (read-in-English prompt clicked)
  • bottextBot name matched in the User-Agent for ai, search and attack (scanner if attack has none), answer engine name for referral and referral_nav, panel-revenue|panel-cost for panel_nav, cta-portle|cta-portle-top for cta_portle, cta-lang-en for cta_lang_en. Train, index and cite stages are not stored; they are derived from this value
  • user_agenttextRaw User-Agent
  • country / langtextRequest country code and first Accept-Language value
  • referertextReferer (source node path for panel_nav and cta_portle, absent for cta_lang_en)
  • querytextRequest query string (absent for panel_nav, cta_portle and cta_lang_en)

All tables are public read-only via PostgREST. A versioned, authenticated API is planned.

For information only, not investment advice. Content on this site is generated by AI from verified, cross-checked sources and may contain errors.

© 2026 Willow Investments, Inc.Company value-chain data · contact@willowinvt.com
Schema · ValueChain.wiki