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 assignedcategory_primarytextThe one category key used for weighting (always within categories)segments / segments_enjsonbTotal revenue, concentration, segmentsname_ko / countrytextKorean name (for foreign firms) and country codereturns_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-ofupdated_atdateLast updated (home sort key)
vc_edges · Money-flow edges
company_iduuidSource nodedirectiontext'revenue' | 'cost'counterparty_nametextCounterparty namecounterparty_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 referencesstancetext'confirms' | 'mentions' | 'contradicts'as_ofdateObservation datemetricjsonbPer-observation normalized metricexcerpt (+_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 nodebroker (+_en) / analysttextBroker (KO/EN) and analystrating / rating_normtextRaw rating and normalized ('buy'|'hold'|'sell')target_price / currencynum/textTarget price and currencyreport_title (+_en) / report_urltextReport title (KO/EN) and URLsummary_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 slugsfaqjsonbQ&A [{q,a,q_en,a_en}], rendered as FAQPage JSON-LDpositionsjsonbPosition groups (returns live-joined from nodes)changelogjsonbChange log [{date,note,note_en}], newest firstpinned / sort_orderbool/intPin to top (house view) and reading orderpublished_at / updated_atdatePublished and updated dates
vc_roadmap · Update and expansion log
entry_datedateEntry datekindtext'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 pathsitetextSite key. This site is 'valuechain'; other sites log to the same table, so filter on itcategorytextRecord 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 valueuser_agenttextRaw User-Agentcountry / langtextRequest country code and first Accept-Language valuereferertextReferer (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.