{
  "dictionary": {
    "hs_chapters": 96,
    "hs_headings": 145,
    "countries": 69,
    "institution_names": 44,
    "institution_entities": 34,
    "institution_note": "Korean research institutions, normalised to English. One firm can appear under several Korean names across our 2007-2026 archive; group by `entity`. Not all of them are brokerages — credit-rating and IR bodies publish analysis without target prices.",
    "subjects": 2415,
    "subject_coverage_pct": 97.9,
    "subject_note": "Official English names of listed Korean companies. A company sets its own English spelling (SK hynix, NCSOFT, AMOREPACIFIC), so this cannot be transliterated by rule. Names not yet in the dictionary return `subjectEn: null` rather than a guess. Historical Korean names are kept as filed — a 2014 report on Daewoo Shipbuilding is not relabelled with the 2026 corporate name.",
    "note": "HS chapter names follow the WCO Harmonized System. Headings cover the products that dominate Korean trade; codes outside that set resolve to their chapter and return null for the heading rather than a guess."
  },
  "datasets": {
    "nitemtrade": {
      "label": "Exports and imports by HS code and partner country",
      "agency": "Korea Customs Service",
      "licence": "Unrestricted (Korea Public Data Portal)",
      "collected": false,
      "files": 0,
      "days": 0,
      "latest_day": null
    },
    "import-flash-item": {
      "label": "Imports by major product, 10-day provisional",
      "agency": "Korea Customs Service",
      "licence": "Unrestricted (Korea Public Data Portal)",
      "collected": false,
      "files": 0,
      "days": 0,
      "latest_day": null
    },
    "export-flash-item": {
      "label": "Exports by major product, 10-day provisional",
      "agency": "Korea Customs Service",
      "licence": "Unrestricted (Korea Public Data Portal)",
      "collected": false,
      "files": 0,
      "days": 0,
      "latest_day": null
    },
    "research": {
      "label": "Brokerage target prices and ratings",
      "agency": "Naver Finance (aggregator)",
      "licence": "Facts only — no report text, PDF or chart is collected or redistributed.",
      "collected": true,
      "records": 66093,
      "detail_fetched": 66093,
      "with_target_price": 55728,
      "brokers": 44,
      "subjects": 2782,
      "first_day": "2007-12-03",
      "latest_day": "2026-08-03",
      "index_built_kst": "2026-08-03 11:07:23"
    },
    "valuation": {
      "label": "PER, PBR, ROE and debt-to-equity for listed Korean companies",
      "agency": "Financial Supervisory Service (DART) + Korea Public Data Portal",
      "licence": "Unrestricted (Korea Public Data Portal); DART filings are public disclosure.",
      "collected": true,
      "source": "DART (financial statements) + Korea Public Data Portal (daily KRX prices)",
      "price_as_of": "20260909",
      "fiscal_year": 2025,
      "report": "Annual (11011)",
      "built_at": "11 September 2026, 11:43 KST",
      "rows": 2709,
      "with_per": 1588,
      "with_pbr": 2556,
      "with_roe": 2562,
      "not_measured": 139,
      "note": "PER is null when net income is not positive. PBR and ROE are null when total equity is not positive. Consolidated (CFS) is used when available, otherwise separate (OFS); the basis column says which. No sector averages are computed.",
      "how_to_read": "These are trailing annual multiples, not trailing twelve months. The market cap column is a single trading day (priceAsOf) and the earnings and equity columns come from the annual report for fiscalYear. The gap between those two dates is months, so a company whose earnings moved since its last annual filing will read high or low here. That is why both dates ship as columns: the multiple can be recomputed against any other price date."
    },
    "index-tape": {
      "label": "Daily levels for 168 KRX indices, in English",
      "agency": "Korea public data portal + KRX index series",
      "licence": "Unrestricted (Korea Public Data Portal)",
      "collected": true,
      "source": "Korea public data portal + KRX index series",
      "snapshot_date": "20260910",
      "source_file": "archive/raw/indices/20260910.ndjson",
      "built_at": "12 September 2026, 21:39 KST",
      "rows": 168,
      "with_name_en": 168,
      "with_year_low": 6,
      "year_low_not_measured": 162,
      "note": "yearLow (and its date) is null whenever the source reported exactly 0 — in the 20260910.ndjson snapshot, 162 of 168 rows carried a 0 that was paired with a yearLowDate one day after the snapshot date itself, an impossible value. That is a source placeholder, not a real annual low of zero. See yearLowNotMeasured per row.",
      "why_rows_are_kept": "Rows that could not be fully measured are kept, with the reason in the relevant *NotMeasured column. Dropping them would remove the denominator."
    },
    "account-dictionary": {
      "label": "Korean financial-statement account names mapped to standard English",
      "agency": "Financial Supervisory Service (DART), hand-mapped",
      "licence": "Derived work; DART filings are public disclosure.",
      "collected": true,
      "source": "Hand-mapped from DART fnlttSinglAcntAll account_nm to standard K-IFRS English terms",
      "account_count": 414,
      "statement_count": 5,
      "note": "Hand-mapped from standard K-IFRS statement line-item names (계정명, DART fnlttSinglAcntAll account_nm) to standard IFRS English terms. Not machine translation.",
      "coverage": "Core line items shared across most listed companies, built 2026-09-10 from a 9-company sample (Samsung Electronics, KB Financial Group, POSCO Holdings, Lotte Shopping, Hyundai Motor Securities, Shinhan Financial Group, Korean Air) across five statements. Sample of 677 distinct account names found across those 9 filings; this file covers the recurring core, not the long tail of company-specific one-off lines.",
      "unmeasured": "Real coverage (붙은 수/전체 수) cannot be measured until 6번's F1 collector (fnlttSinglAcntAll sweep, target 2026-09-13) runs across all 2,765 listed companies. Expand this file by frequency once that data exists — do not guess ahead of it.",
      "fallback": "Any account_nm not in this file returns \"unmapped:<원문>\" — never a guessed translation."
    },
    "people": {
      "label": "Workforce filings for listed Korean companies — headcount, tenure and pay by gender",
      "agency": "Financial Supervisory Service (FSS) filings + KRX daily closing prices",
      "licence": "Filed disclosure, collected and republished by us as a licensed dataset.",
      "collected": true,
      "source": "Workforce figures that Korean listed companies file with the Financial Supervisory Service (headcount, tenure and pay by gender), joined to KRX daily closing prices. We collect the filings ourselves and publish this as our licensed dataset.",
      "built_at": "13 September 2026, 00:28 KST",
      "source_file": "src/data/full/korea-people-panel-2026-09-11.csv",
      "rows": 2924,
      "with_pay_ratio": 2641,
      "pay_withheld_with_reason": 283,
      "pay_withheld_no_reason": 0,
      "pay_ratio_withheld_reason_note": "payRatioWomenToMen is null either because the filing marked the figure not applicable (payRatioWithheldReason carries the filed reason) or because we could not measure it (payRatioWithheldReason is also null in that case — the two are not the same thing, and this file lets a client tell them apart).",
      "not_this": [
        "Not a claim about discrimination. The filings carry ratios, not reasons: job mix, seniority mix and contract type all sit inside a single number.",
        "Not a benchmark. No company is scored, ranked as good, or compared to a norm.",
        "Not total payroll. Pay fields are annual pay PER PERSON in Korean won.",
        "womenShareRatio and the tenure/pay ratio fields are raw ratios (0-1, roughly), not percentages."
      ]
    },
    "mezzanine": {
      "label": "Convertible bond (CB), bond-with-warrant (BW) and exchangeable bond (EB) filings",
      "agency": "Financial Supervisory Service (DART)",
      "licence": "Public disclosure filings, collected and republished by us as a licensed dataset.",
      "collected": true,
      "source": "DART filings for convertible bonds (CB), bonds with warrants (BW) and exchangeable bonds (EB), collected by us and published as our licensed dataset.",
      "built_at": "13 September 2026, 00:34 KST",
      "source_file": "src/data/full/korea-mezzanine-book-2026-09-11.csv",
      "rows": 5084,
      "by_type": {
        "CB": 4324,
        "BW": 332,
        "EB": 428
      },
      "with_refix_floor": 2034,
      "refix_floor_withheld_with_note": 428,
      "refix_floor_withheld_no_note": 2622,
      "refix_floor_note": "refixFloorPriceKrw is null either because the filing marked the field not applicable (refixFloorNote carries the filed reason — this is the normal case for EB, which structurally has no refixing floor) or because we could not measure it (refixFloorNote is also null in that case). The two are not the same thing.",
      "not_this": [
        "Not a judgement. A zero coupon or a private placement is a fact about a filing, not a criticism of the company.",
        "Not a dilution forecast. We publish the terms as filed and never model what a conversion would do.",
        "Not a complete history. The window is what we have collected.",
        "Not a signal. Nothing here is a view on any security."
      ]
    },
    "ownership": {
      "label": "Substantial-shareholding (5%+) and officer/major-shareholder ownership filings",
      "agency": "Financial Supervisory Service (DART)",
      "licence": "Public disclosure filings, collected and republished by us as a licensed dataset.",
      "collected": true,
      "filings": {
        "source": "DART (Financial Supervisory Service) majorstock — substantial shareholding (5%+) filings, collected by us and published as our licensed dataset.",
        "built_at": "13 September 2026, 09:58 KST",
        "source_file": "src/data/full/korea-ownership-ledger-filings-2026-09-11.csv",
        "rows": 21785,
        "by_kind": {
          "general": 15631,
          "abbreviated": 6154
        },
        "unmapped_kind": 0,
        "with_related_party": 10840,
        "not_this": [
          "Not investment advice or a recommendation.",
          "Not a romanized name list. holder_name is printed exactly as filed — Korean text stays Korean.",
          "Not a full float table. Only holders required to file (5%+ substantial shareholding), not every shareholder.",
          "Not a live feed. Reflects filings collected as of the source file date."
        ]
      },
      "executives": {
        "source": "DART (Financial Supervisory Service) elestock — officer/major-shareholder ownership status filings, collected by us and published as our licensed dataset.",
        "built_at": "13 September 2026, 09:58 KST",
        "source_file": "src/data/full/korea-ownership-ledger-executives-2026-09-11.csv",
        "rows": 32535,
        "by_officer_status": {
          "registered": 8848,
          "unregistered": 17579,
          "not_an_officer": 6108
        },
        "not_this": [
          "Not investment advice or a recommendation.",
          "Not a romanized name list. person_name is printed exactly as filed.",
          "Not a full insider list beyond what DART requires officers and major shareholders to file.",
          "Not a live feed. Reflects filings collected as of the source file date."
        ]
      }
    }
  },
  "tiers": {
    "free": "200 records per request, 60 requests per minute per IP.",
    "pro": "1000 records per request. Quotas are set by your marketplace plan.",
    "enforced_from": "2026-08-17",
    "policy": "Limits are published before they are enforced. Until the date above, requests over the limit are counted and reported in the response headers but never rejected, so you can size your integration before anything breaks."
  },
  "tier_catalog": {
    "free": {
      "name": "Free",
      "monthlyRequestQuota": null,
      "maxPageSize": 200,
      "filesIncluded": false,
      "supportChannel": "community",
      "price": null,
      "status": "available"
    },
    "pro": {
      "name": "Developer",
      "monthlyRequestQuota": null,
      "maxPageSize": 1000,
      "filesIncluded": false,
      "supportChannel": "email",
      "price": null,
      "status": "available"
    },
    "team": {
      "name": "Team",
      "monthlyRequestQuota": null,
      "maxPageSize": null,
      "filesIncluded": true,
      "supportChannel": "email",
      "price": null,
      "status": "coming_soon"
    },
    "enterprise": {
      "name": "Enterprise",
      "monthlyRequestQuota": null,
      "maxPageSize": null,
      "filesIncluded": true,
      "supportChannel": "dedicated",
      "price": null,
      "status": "coming_soon"
    }
  },
  "contract": {
    "policy": "Fields may be added within v1. Fields are never removed or renamed within v1 — a breaking change ships as /v2.",
    "determinism": "The same query returns the same value. Provisional figures are preserved alongside their revisions rather than overwritten."
  },
  "archive": {
    "local_enabled": true,
    "remote_enabled": true,
    "remote_endpoint_host": "07a7e9caa8b34dde31392e3bf107024e.r2.cloudflarestorage.com",
    "remote_bucket": "seoulmarkets-archive",
    "remote_region": "auto",
    "credentials_present": true,
    "warning": null
  },
  "usage_since_restart": {
    "research": 159,
    "ratelimited": 19,
    "trade.exports": 1,
    "institutions": 1,
    "countries": 1,
    "meta": 1
  },
  "generated_at": "2026-09-15T18:34:10.542Z"
}