{
 "as_of": "2026-11-06",
 "cmr": "in-cm-kg/XNSE/INE878B01027",
 "fence": "The page is the record's research on the issuer — no analyst, no rating, no view.",
 "markdown": "The page is the record's research on the issuer — no analyst, no rating, no view.\n\n# KEI Industries Limited (National Stock Exchange of India: INE878B01027) — research page\n\nAs of 2026-11-06 · in-cm-kg · record version 1\n\n## Identity and listing\n\nThe issuer is KEI Industries Limited, listed on the National Stock Exchange of India under ticker INE878B01027 and ISIN INE878B01027. The LEI, security type, segment, sector and jurisdiction are not on the record. The listing status is listed, not halted.\n\n## The disclosure read\n\nThe record holds 0 filings in the window 2025-11-06 to 2026-11-06, on 0 filing days. The median gap between filing days is not on the record, and no latest filing date or type is on the record. The exchange peer set holds 2613 issuers with a median cadence gap not on the record, a median of 0 filings and a median latency not on the record. The sector peer median is not on the record.\n\n## Auditor\n\nThe auditor and its location are not on the record. Auditor changes are not on the record, because no lifecycle type map exists for this register yet.\n\n## Events and halts\n\nListing, delisting, name change, domicile change and segment move are not on the record, because no lifecycle type map exists for this register yet. The halt flag shows listed, not halted.\n\n## Orderability\n\nThe outcome is ACM-200 for the accredited investor, Retail individual investor, Qualified Institutional Buyer and Non-Institutional Investors categories, and it is determinable for each. The rule version is acm-68000/in/sebi-suitability-sebi-investment-advisers-regulations-2013-r/r1, with the chapter as of 2026-11-04.\n\n## Coverage\n\nThe issuer's own investor-relations page was read and names no research houses, so none was found.\n\n## Open research\n\nThe record holds 5 openly published research notes: Jefferies on 2018-01-29, Equirus on 2017-11-14, SBI Capital Securities on 2017-09-14, Anand Rathi Research on 2016-05-24 and PhillipCapital India Research on 2016-02-09.\n\n## Licensed\n\nLicensed research: none loaded. A licensed row is served only to an agent whose firm holds that licence (licensor, entitlement). No licensed row is loaded.\n\n## As-of depth\n\nThe market's vintage is not sealed, so no sealed years hold the issuer, no earliest sealed date is on the record and the live record began date is not on the record.\n\n## Sources\n\n10 source pages are named on this page; every value above carries its own source page and read date in the numbers.\n\n- https://nsearchives.nseindia.com/content/equities/EQUITY_L.csv (identity.exchange)\n- https://mcp.in-cm-kg.ai/events/XNSE/INE878B01027 (the disclosure lines)\n- https://www.nseindia.com/regulations/listing-compliance (the halt flag)\n- https://mcp.in-cm-kg.ai/book/aio.json (the orderability chapter)\n- https://www.kei-ind.com/wp-content/themes/keiind/pdf/research/KEI-Jefferies-IC-29Jan18.pdf (open research)\n- https://www.kei-ind.com/wp-content/themes/keiind/pdf/research/14-11-2017-Equirus-Q2FY17.pdf (open research)\n- https://www.kei-ind.com/wp-content/themes/keiind/pdf/research/KEI-SBICAP-19-Sep17-IC.pdf (open research)\n- https://www.kei-ind.com/wp-content/themes/keiind/pdf/research/KEI%20Industries_RU_24%20May%202016.pdf (open research)\n- https://www.kei-ind.com/wp-content/themes/keiind/pdf/research/PC_-_KEI_Initiating_-_Feb_2016_20160209125340.pdf (open research)\n- https://mcp.in-cm-kg.ai/record/XNSE/INE878B01027 (the record)\n",
 "market": "IN",
 "node": "in-cm-kg",
 "numbers": {
  "as_of_depth": {
   "issuer_years_sealed": [],
   "live_record_began": null,
   "node_history_from": null,
   "node_years_sealed": [],
   "note": "the IN vintage is not sealed; the record is the live record as of 2026-11-06",
   "record_version": 1,
   "sealed": false
  },
  "auditor": {
   "auditor": {
    "market": "IN",
    "state": "not_on_record"
   },
   "auditor_firm_id": {
    "market": "IN",
    "state": "not_on_record"
   },
   "auditor_location": {
    "market": "IN",
    "state": "not_on_record"
   },
   "changes": {
    "market": "IN",
    "reason": "no lifecycle type map for this register yet (SHELF-01: us and ca first)",
    "state": "not_on_record"
   }
  },
  "cmr": "in-cm-kg/XNSE/INE878B01027",
  "coverage": {
   "count": 0,
   "houses": [],
   "pages_checked": [],
   "read_by": "Perplexity sonar (search) · page read by this rail",
   "read_date": "2026-11-12",
   "since": null,
   "state": "none_found"
  },
  "disclosure": {
   "against": {
    "exchange": {
     "issuers": 2613,
     "median_cadence_gap_days": null,
     "median_filings": 0,
     "median_latency_days": null,
     "name": "National Stock Exchange of India"
    },
    "sector": {
     "market": "IN",
     "state": "not_on_record"
    }
   },
   "by_type": {},
   "cadence_median_gap_days": null,
   "filing_days": 0,
   "filings": 0,
   "latency_days": null,
   "latest": [],
   "latest_filing_date": null,
   "note": "no disclosure line on the record for this issuer in the window",
   "read": "the node's event lines (list_events_since), as get_filings serves them",
   "source": "https://mcp.in-cm-kg.ai/events/XNSE/INE878B01027",
   "window": {
    "from": "2025-11-06",
    "to": "2026-11-06"
   }
  },
  "identity": {
   "exchange": {
    "read_by": "NSE EQUITY_L.csv + BSE ListofScripData (Equity, Active, INF* dropped); one row per ISIN, NSE wins; LEI = GLEIF exact ISIN map only; CFI not published (null) — reused from pond drop 2026-10-24 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-25 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-25-2 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-26 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-27 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-28 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-29 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-30 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-31 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-01 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-02 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-03 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-04 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-05 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-06 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-07 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)'))",
    "read_date": "2026-11-06",
    "read_date_basis": "the record version as_of",
    "source": "https://nsearchives.nseindia.com/content/equities/EQUITY_L.csv",
    "state": "sourced",
    "value": "National Stock Exchange of India"
   },
   "isin": {
    "read_by": "NSE EQUITY_L.csv + BSE ListofScripData (Equity, Active, INF* dropped); one row per ISIN, NSE wins; LEI = GLEIF exact ISIN map only; CFI not published (null) — reused from pond drop 2026-10-24 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-25 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-25-2 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-26 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-27 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-28 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-29 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-30 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-31 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-01 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-02 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-03 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-04 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-05 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-06 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-07 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)'))",
    "read_date": "2026-11-06",
    "read_date_basis": "the record version as_of",
    "source": "https://nsearchives.nseindia.com/content/equities/EQUITY_L.csv",
    "state": "sourced",
    "value": "INE878B01027"
   },
   "jurisdiction": {
    "market": "IN",
    "state": "not_on_record"
   },
   "lei": {
    "market": "IN",
    "reason": "the roster carries none",
    "state": "not_on_record"
   },
   "name": {
    "read_by": "NSE EQUITY_L.csv + BSE ListofScripData (Equity, Active, INF* dropped); one row per ISIN, NSE wins; LEI = GLEIF exact ISIN map only; CFI not published (null) — reused from pond drop 2026-10-24 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-25 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-25-2 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-26 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-27 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-28 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-29 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-30 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-31 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-01 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-02 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-03 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-04 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-05 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-06 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-07 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)'))",
    "read_date": "2026-11-06",
    "read_date_basis": "the record version as_of",
    "source": "https://nsearchives.nseindia.com/content/equities/EQUITY_L.csv",
    "state": "sourced",
    "value": "KEI Industries Limited"
   },
   "sector": {
    "market": "IN",
    "state": "not_on_record"
   },
   "security_type": {
    "market": "IN",
    "state": "not_on_record"
   },
   "segment": {
    "market": "IN",
    "state": "not_on_record"
   },
   "ticker": {
    "read_by": "NSE EQUITY_L.csv + BSE ListofScripData (Equity, Active, INF* dropped); one row per ISIN, NSE wins; LEI = GLEIF exact ISIN map only; CFI not published (null) — reused from pond drop 2026-10-24 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-25 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-25-2 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-26 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-27 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-28 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-29 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-30 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-10-31 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-01 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-02 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-03 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-04 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-05 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-06 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)')) — reused from pond drop 2026-11-07 (the exchange refused this read: RuntimeError('BSE ListofScripData did not answer (403)'))",
    "read_date": "2026-11-06",
    "read_date_basis": "the record version as_of",
    "source": "https://nsearchives.nseindia.com/content/equities/EQUITY_L.csv",
    "state": "sourced",
    "value": "INE878B01027"
   },
   "website": {
    "market": "IN",
    "state": "not_on_record"
   }
  },
  "licensed": {
   "columns": [
    "licensor",
    "entitlement",
    "title",
    "date",
    "source"
   ],
   "rows": [],
   "rule": "A licensed row is served only to an agent whose firm holds that licence (licensor, entitlement). No licensed row is loaded."
  },
  "lifecycle": {
   "delisting": {
    "market": "IN",
    "reason": "no lifecycle type map for this register yet (SHELF-01: us and ca first)",
    "state": "not_on_record"
   },
   "domicile_change": {
    "market": "IN",
    "reason": "no lifecycle type map for this register yet (SHELF-01: us and ca first)",
    "state": "not_on_record"
   },
   "listing": {
    "market": "IN",
    "reason": "no lifecycle type map for this register yet (SHELF-01: us and ca first)",
    "state": "not_on_record"
   },
   "name_change": {
    "market": "IN",
    "reason": "no lifecycle type map for this register yet (SHELF-01: us and ca first)",
    "state": "not_on_record"
   },
   "segment_move": {
    "market": "IN",
    "reason": "no lifecycle type map for this register yet (SHELF-01: us and ca first)",
    "state": "not_on_record"
   }
  },
  "market": "IN",
  "node": "in-cm-kg",
  "numbers_hash": "sha256:c1c8a40371e40eb0861044b5ff34cc28c1ed48dfe53e26cfda0eaf811fc2aeea",
  "open_research": {
   "read_date": "2026-11-12",
   "rows": [
    {
     "date": "2018-01-29",
     "kind": "independent",
     "publisher": "Jefferies",
     "read_by": "the note's link answers (200 application/pdf); a document, not read as text",
     "read_date": "2026-11-12",
     "source": "https://www.kei-ind.com/wp-content/themes/keiind/pdf/research/KEI-Jefferies-IC-29Jan18.pdf",
     "state": "sourced",
     "title": "KEI Industries: Initiating Coverage"
    },
    {
     "date": "2017-11-14",
     "kind": "independent",
     "publisher": "Equirus",
     "read_by": "the note's link answers (200 application/pdf); a document, not read as text",
     "read_date": "2026-11-12",
     "source": "https://www.kei-ind.com/wp-content/themes/keiind/pdf/research/14-11-2017-Equirus-Q2FY17.pdf",
     "state": "sourced",
     "title": "Earnings momentum to continue in mid-to-long term – restate LONG"
    },
    {
     "date": "2017-09-14",
     "kind": "independent",
     "publisher": "SBI Capital Securities",
     "read_by": "the note's link answers (200 application/pdf); a document, not read as text",
     "read_date": "2026-11-12",
     "source": "https://www.kei-ind.com/wp-content/themes/keiind/pdf/research/KEI-SBICAP-19-Sep17-IC.pdf",
     "state": "sourced",
     "title": "Towards a stronger franchise"
    },
    {
     "date": "2016-05-24",
     "kind": "independent",
     "publisher": "Anand Rathi Research",
     "read_by": "the note's link answers (200 application/pdf); a document, not read as text",
     "read_date": "2026-11-12",
     "source": "https://www.kei-ind.com/wp-content/themes/keiind/pdf/research/KEI%20Industries_RU_24%20May%202016.pdf",
     "state": "sourced",
     "title": "KEI Industries"
    },
    {
     "date": "2016-02-09",
     "kind": "independent",
     "publisher": "PhillipCapital India Research",
     "read_by": "the note's link answers (200 application/pdf); a document, not read as text",
     "read_date": "2026-11-12",
     "source": "https://www.kei-ind.com/wp-content/themes/keiind/pdf/research/PC_-_KEI_Initiating_-_Feb_2016_20160209125340.pdf",
     "state": "sourced",
     "title": "KEI Industries Ltd (KEII IN): Wired for exponential growth"
    }
   ],
   "state": "found"
  },
  "orderability": {
   "chapter_as_of": "2026-11-04",
   "client_categories": [
    "accredited investor",
    "Retail individual investor",
    "Qualified Institutional Buyer",
    "Non‐Institutional Investors"
   ],
   "outcomes": {
    "Non‐Institutional Investors": {
     "determinable": true,
     "signal": "ACM-200"
    },
    "Qualified Institutional Buyer": {
     "determinable": true,
     "signal": "ACM-200"
    },
    "Retail individual investor": {
     "determinable": true,
     "signal": "ACM-200"
    },
    "accredited investor": {
     "determinable": true,
     "signal": "ACM-200"
    }
   },
   "read": {
    "basis": "one live read per instrument class, halt state and client category on this market; this issuer's group",
    "chapter": "https://mcp.in-cm-kg.ai/book/aio.json",
    "door": "https://mcp.in-cm-kg.ai/mcp",
    "tool": "get_orderability"
   },
   "rule_version": "acm-68000/in/sebi-suitability-sebi-investment-advisers-regulations-2013-r/r1",
   "section": "in.aio.v5"
  },
  "record": {
   "as_of": "2026-11-06",
   "url": "https://mcp.in-cm-kg.ai/record/XNSE/INE878B01027",
   "version": 1
  },
  "schema": "research-numbers v0.1 (USR-01, 2026-11-11)",
  "status": {
   "read_date": "2026-11-09",
   "source": "https://www.nseindia.com/regulations/listing-compliance",
   "value": "listed, not halted"
  }
 },
 "numbers_hash": "sha256:c1c8a40371e40eb0861044b5ff34cc28c1ed48dfe53e26cfda0eaf811fc2aeea",
 "path": "/in/XNSE/INE878B01027",
 "schema": "research-page v0.1 (USR-02, 2026-11-11)",
 "sections": [
  {
   "id": "identity",
   "text": "The issuer is KEI Industries Limited, listed on the National Stock Exchange of India under ticker INE878B01027 and ISIN INE878B01027. The LEI, security type, segment, sector and jurisdiction are not on the record. The listing status is listed, not halted.",
   "title": "Identity and listing"
  },
  {
   "id": "disclosure",
   "text": "The record holds 0 filings in the window 2025-11-06 to 2026-11-06, on 0 filing days. The median gap between filing days is not on the record, and no latest filing date or type is on the record. The exchange peer set holds 2613 issuers with a median cadence gap not on the record, a median of 0 filings and a median latency not on the record. The sector peer median is not on the record.",
   "title": "The disclosure read"
  },
  {
   "id": "auditor",
   "text": "The auditor and its location are not on the record. Auditor changes are not on the record, because no lifecycle type map exists for this register yet.",
   "title": "Auditor"
  },
  {
   "id": "events",
   "text": "Listing, delisting, name change, domicile change and segment move are not on the record, because no lifecycle type map exists for this register yet. The halt flag shows listed, not halted.",
   "title": "Events and halts"
  },
  {
   "id": "orderability",
   "text": "The outcome is ACM-200 for the accredited investor, Retail individual investor, Qualified Institutional Buyer and Non-Institutional Investors categories, and it is determinable for each. The rule version is acm-68000/in/sebi-suitability-sebi-investment-advisers-regulations-2013-r/r1, with the chapter as of 2026-11-04.",
   "title": "Orderability"
  },
  {
   "id": "coverage",
   "text": "The issuer's own investor-relations page was read and names no research houses, so none was found.",
   "title": "Coverage"
  },
  {
   "id": "open_research",
   "text": "The record holds 5 openly published research notes: Jefferies on 2018-01-29, Equirus on 2017-11-14, SBI Capital Securities on 2017-09-14, Anand Rathi Research on 2016-05-24 and PhillipCapital India Research on 2016-02-09.",
   "title": "Open research"
  },
  {
   "id": "licensed",
   "text": "Licensed research: none loaded. A licensed row is served only to an agent whose firm holds that licence (licensor, entitlement). No licensed row is loaded.",
   "title": "Licensed"
  },
  {
   "id": "depth",
   "text": "The market's vintage is not sealed, so no sealed years hold the issuer, no earliest sealed date is on the record and the live record began date is not on the record.",
   "title": "As-of depth"
  },
  {
   "id": "sources",
   "text": "10 source pages are named on this page; every value above carries its own source page and read date in the numbers.",
   "title": "Sources"
  }
 ],
 "sources": [
  {
   "for": "identity.exchange",
   "source": "https://nsearchives.nseindia.com/content/equities/EQUITY_L.csv"
  },
  {
   "for": "the disclosure lines",
   "source": "https://mcp.in-cm-kg.ai/events/XNSE/INE878B01027"
  },
  {
   "for": "the halt flag",
   "source": "https://www.nseindia.com/regulations/listing-compliance"
  },
  {
   "for": "the orderability chapter",
   "source": "https://mcp.in-cm-kg.ai/book/aio.json"
  },
  {
   "for": "open research",
   "source": "https://www.kei-ind.com/wp-content/themes/keiind/pdf/research/KEI-Jefferies-IC-29Jan18.pdf"
  },
  {
   "for": "open research",
   "source": "https://www.kei-ind.com/wp-content/themes/keiind/pdf/research/14-11-2017-Equirus-Q2FY17.pdf"
  },
  {
   "for": "open research",
   "source": "https://www.kei-ind.com/wp-content/themes/keiind/pdf/research/KEI-SBICAP-19-Sep17-IC.pdf"
  },
  {
   "for": "open research",
   "source": "https://www.kei-ind.com/wp-content/themes/keiind/pdf/research/KEI%20Industries_RU_24%20May%202016.pdf"
  },
  {
   "for": "open research",
   "source": "https://www.kei-ind.com/wp-content/themes/keiind/pdf/research/PC_-_KEI_Initiating_-_Feb_2016_20160209125340.pdf"
  },
  {
   "for": "the record",
   "source": "https://mcp.in-cm-kg.ai/record/XNSE/INE878B01027"
  }
 ],
 "title": "KEI Industries Limited (INE878B01027) — research page",
 "writer": {
  "by": "Claude through the platform account, Haiku class; one pass; checked against the numbers",
  "engine": "claude-haiku-5-5"
 }
}