{ "cells": [ { "cell_type": "markdown", "id": "q3yveykr7wr", "metadata": {}, "source": [ "# 01 — PDF Processing & Chunking with Docling\n", "## Morningstar RAG Pipeline\n", "\n", "This notebook walks through **every preprocessing and chunking step** applied to a PDF before it enters the RAG pipeline.\n", "\n", "### Why does preprocessing matter?\n", "A RAG system is only as good as the text it retrieves. If the text is garbled (broken tables, mixed columns, missing headers), the LLM will produce wrong or hallucinated answers.\n", "\n", "### Documents we are processing\n", "| File | Type | Pages |\n", "|---|---|---|\n", "| `ptc01302411420.pdf` | Morningstar equity research report on PTC Inc. | 24 |\n", "| `a-wide-moat-focus-provides-differentiation.pdf` | Morningstar Wide Moat Index methodology | 14 |\n", "\n", "### All steps in this notebook\n", "```\n", "── PHASE 2: PDF PROCESSING ──────────────────────────────────────\n", "STEP 1 — Imports & Paths\n", "STEP 2 — Configure Docling (which AI models to run and why)\n", "STEP 3 — Parse the PDF (layout understanding, table detection)\n", "STEP 4 — Inspect raw output (what Docling gives us)\n", "STEP 5 — Extract Sections (text blocks with heading hierarchy)\n", "STEP 5b — Filter Noise Pages (cover, TOC, disclaimers)\n", "STEP 6 — Clean Text (fix hyphenation, whitespace, encoding noise)\n", "STEP 7 — Extract Tables (structured rows/columns, kept atomic)\n", "STEP 8 — Attach Metadata (source, page, section, doc type)\n", "STEP 9 — Save Structured JSON (output ready for chunking phase)\n", "STEP 10 — Process all PDFs (batch run using the PDFProcessor class)\n", "\n", "── PHASE 3: CHUNKING ────────────────────────────────────────────\n", "STEP 11 — Why HybridChunker, Not LangChain SemanticChunker\n", "STEP 12 — HybridChunker on the DoclingDocument\n", "STEP 13 — Build Text Chunks from HybridChunker Output\n", "STEP 14 — Build Table Chunks: Atomic Markdown Pass-Through\n", "STEP 15 — Assign Chunk IDs + Save\n", "STEP 16 — Batch Process All Documents\n", "```" ] }, { "cell_type": "markdown", "id": "ga67fqmicog", "metadata": {}, "source": [ "## STEP 1 — Imports & Paths\n", "\n", "We import only what is needed. Paths are defined relative to this notebook so the code works on any machine regardless of where the project is cloned." ] }, { "cell_type": "code", "execution_count": 1, "id": "0ysqag0dz01", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Project root : /home/pushkardeshpand/Documents/Morningstar RAG Pipeline\n", "Raw PDFs : /home/pushkardeshpand/Documents/Morningstar RAG Pipeline/data/raw/morningstar\n", "Output dir : /home/pushkardeshpand/Documents/Morningstar RAG Pipeline/data/processed/morningstar\n", "\n", "PDFs found: 2\n", " a-wide-moat-focus-provides-differentiation.pdf (468 KB)\n", " ptc01302411420.pdf (508 KB)\n" ] } ], "source": [ "import re\n", "import json\n", "import sys\n", "import warnings\n", "from pathlib import Path\n", "from datetime import datetime, timezone\n", "\n", "warnings.filterwarnings(\"ignore\")\n", "\n", "# ── Project paths ──────────────────────────────────────────────────────────────\n", "# This notebook lives in: notebooks/\n", "# Project root is one level up\n", "NOTEBOOK_DIR = Path().resolve()\n", "PROJECT_ROOT = NOTEBOOK_DIR.parent\n", "SRC_DIR = PROJECT_ROOT / \"src\"\n", "RAW_DIR = PROJECT_ROOT / \"data\" / \"raw\" / \"morningstar\"\n", "PROCESSED_DIR = PROJECT_ROOT / \"data\" / \"processed\" / \"morningstar\"\n", "\n", "# Add src/ to path so we can import pdf_processor.py\n", "sys.path.insert(0, str(SRC_DIR))\n", "\n", "# Verify paths exist\n", "print(f\"Project root : {PROJECT_ROOT}\")\n", "print(f\"Raw PDFs : {RAW_DIR}\")\n", "print(f\"Output dir : {PROCESSED_DIR}\")\n", "print()\n", "\n", "# List available PDFs\n", "pdfs = sorted(RAW_DIR.glob(\"*.pdf\"))\n", "print(f\"PDFs found: {len(pdfs)}\")\n", "for p in pdfs:\n", " size_kb = p.stat().st_size / 1024\n", " print(f\" {p.name} ({size_kb:.0f} KB)\")" ] }, { "cell_type": "markdown", "id": "lwwcccw1px", "metadata": {}, "source": [ "## STEP 2 — Configure Docling\n", "\n", "Docling is not just a PDF text extractor. It runs **AI models** on each page to understand the visual layout.\n", "\n", "### What happens inside Docling when it parses a PDF?\n", "\n", "```\n", "Page image\n", " ↓\n", "DocLayNet Layout Model ← detects: text blocks, tables, figures, headings\n", " ↓\n", "TableFormer Model ← reconstructs table rows and columns\n", " ↓\n", "Reading Order Detection ← determines correct left-to-right, top-to-bottom order\n", " ↓\n", "Structured Document ← sections, tables, headings with hierarchy\n", "```\n", "\n", "### Pipeline options we set and why\n", "\n", "| Option | Value | Reason |\n", "|---|---|---|\n", "| `do_table_structure` | `True` | Run TableFormer to reconstruct rows/cols — critical for financial tables |\n", "| `do_ocr` | `False` | These are digital PDFs, not scanned — OCR would add noise |\n", "| `generate_picture_images` | `False` | We don't need chart images — skipping speeds up parsing |" ] }, { "cell_type": "code", "execution_count": 2, "id": "w9knjr0ox2l", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n", "I0000 00:00:1781938937.922274 2735016 port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n", "I0000 00:00:1781938937.956633 2735016 cpu_feature_guard.cc:227] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", "To enable the following instructions: AVX2 AVX_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n", "I0000 00:00:1781938938.726280 2735016 port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Docling converter ready.\n", " Table structure : True\n", " OCR enabled : False\n", " Picture images : False\n" ] } ], "source": [ "from docling.document_converter import DocumentConverter, PdfFormatOption\n", "from docling.datamodel.pipeline_options import PdfPipelineOptions\n", "from docling.datamodel.base_models import InputFormat\n", "\n", "# Configure the pipeline\n", "pipeline_opts = PdfPipelineOptions()\n", "pipeline_opts.do_table_structure = True # reconstruct table rows/columns\n", "pipeline_opts.do_ocr = False # digital PDFs — no OCR needed\n", "pipeline_opts.generate_picture_images = False # skip figure images\n", "\n", "# Build the converter with our options\n", "converter = DocumentConverter(\n", " format_options={\n", " InputFormat.PDF: PdfFormatOption(pipeline_options=pipeline_opts)\n", " }\n", ")\n", "\n", "print(\"Docling converter ready.\")\n", "print(f\" Table structure : {pipeline_opts.do_table_structure}\")\n", "print(f\" OCR enabled : {pipeline_opts.do_ocr}\")\n", "print(f\" Picture images : {pipeline_opts.generate_picture_images}\")" ] }, { "cell_type": "markdown", "id": "b9q7qzvkzi5", "metadata": {}, "source": [ "## STEP 3 — Parse the PDF\n", "\n", "We pass the PDF to Docling's converter. This is the most time-consuming step because Docling runs the layout AI model on every page.\n", "\n", "**What Docling returns:** A `DoclingDocument` object — a structured tree of elements (headings, text blocks, tables, figures) with page positions and hierarchy information." ] }, { "cell_type": "code", "execution_count": 3, "id": "59f3gufwvp7", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Parsing: ptc01302411420.pdf (508 KB)\n", "\n", "Parsing complete in 37.7s\n", "Document type : DoclingDocument\n", "Pages detected: 24\n", "Tables found : 13\n", "\n", "Docling document object: schema_name='DoclingDocument' version='1.10.0' name='ptc01302411420' origin=DocumentOrigin(mimetype='application/pdf', binary_hash=14155179985701160451, filename='ptc01302411420.pdf', uri=None) furniture=GroupItem(self_ref='#/furniture', parent=None, children=[], content_layer=, meta=None, name='_root_', label=) body=GroupItem(self_ref='#/body', parent=None, children=[RefItem(cref='#/pictures/0'), RefItem(cref='#/texts/0'), RefItem(cref='#/pictures/1'), RefItem(cref='#/texts/1'), RefItem(cref='#/texts/2'), RefItem(cref='#/texts/3'), RefItem(cref='#/tables/0'), RefItem(cref='#/pictures/2'), RefItem(cref='#/texts/4'), RefItem(cref='#/texts/5'), RefItem(cref='#/texts/6'), RefItem(cref='#/texts/7'), RefItem(cref='#/texts/8'), RefItem(cref='#/texts/9'), RefItem(cref='#/texts/10'), RefItem(cref='#/texts/11'), RefItem(cref='#/texts/12'), RefItem(cref='#/tables/1'), RefItem(cref='#/texts/13'), RefItem(cref='#/texts/14'), RefItem(cref='#/texts/15'), RefItem(cref='#/texts/16'), RefItem(cref='#/texts/17'), RefItem(cref='#/pictures/3'), RefItem(cref='#/texts/18'), RefItem(cref='#/texts/19'), RefItem(cref='#/texts/20'), RefItem(cref='#/texts/21'), RefItem(cref='#/tables/2'), RefItem(cref='#/texts/22'), RefItem(cref='#/texts/23'), RefItem(cref='#/texts/24'), RefItem(cref='#/texts/25'), RefItem(cref='#/texts/26'), RefItem(cref='#/texts/27'), RefItem(cref='#/texts/28'), RefItem(cref='#/texts/29'), RefItem(cref='#/texts/30'), RefItem(cref='#/texts/31'), RefItem(cref='#/texts/32'), RefItem(cref='#/texts/33'), RefItem(cref='#/tables/3'), RefItem(cref='#/texts/34'), RefItem(cref='#/pictures/4'), RefItem(cref='#/texts/35'), RefItem(cref='#/texts/36'), RefItem(cref='#/texts/37'), RefItem(cref='#/texts/38'), RefItem(cref='#/texts/39'), RefItem(cref='#/texts/40'), RefItem(cref='#/texts/41'), RefItem(cref='#/texts/42'), RefItem(cref='#/texts/43'), RefItem(cref='#/texts/44'), RefItem(cref='#/texts/45'), RefItem(cref='#/texts/46'), RefItem(cref='#/texts/47'), RefItem(cref='#/texts/48'), RefItem(cref='#/texts/49'), RefItem(cref='#/tables/4'), RefItem(cref='#/texts/50'), RefItem(cref='#/texts/51'), RefItem(cref='#/pictures/5'), RefItem(cref='#/texts/52'), RefItem(cref='#/texts/53'), RefItem(cref='#/texts/54'), RefItem(cref='#/texts/55'), RefItem(cref='#/texts/56'), RefItem(cref='#/texts/57'), RefItem(cref='#/texts/58'), RefItem(cref='#/texts/59'), RefItem(cref='#/texts/60'), RefItem(cref='#/texts/61'), RefItem(cref='#/texts/62'), RefItem(cref='#/texts/63'), RefItem(cref='#/texts/64'), RefItem(cref='#/texts/65'), RefItem(cref='#/texts/66'), RefItem(cref='#/texts/67'), RefItem(cref='#/texts/68'), RefItem(cref='#/texts/69'), RefItem(cref='#/texts/70'), RefItem(cref='#/pictures/6'), RefItem(cref='#/texts/71'), RefItem(cref='#/texts/72'), RefItem(cref='#/texts/73'), RefItem(cref='#/texts/74'), RefItem(cref='#/texts/75'), RefItem(cref='#/texts/76'), RefItem(cref='#/texts/77'), RefItem(cref='#/texts/78'), RefItem(cref='#/texts/79'), RefItem(cref='#/texts/80'), RefItem(cref='#/texts/81'), RefItem(cref='#/texts/82'), RefItem(cref='#/texts/83'), RefItem(cref='#/texts/84'), RefItem(cref='#/texts/85'), RefItem(cref='#/texts/86'), RefItem(cref='#/texts/87'), RefItem(cref='#/texts/88'), RefItem(cref='#/texts/89'), RefItem(cref='#/texts/90'), RefItem(cref='#/texts/91'), RefItem(cref='#/pictures/7'), RefItem(cref='#/texts/92'), RefItem(cref='#/texts/93'), RefItem(cref='#/texts/94'), RefItem(cref='#/texts/95'), RefItem(cref='#/texts/96'), RefItem(cref='#/texts/97'), RefItem(cref='#/texts/98'), RefItem(cref='#/texts/99'), RefItem(cref='#/texts/100'), RefItem(cref='#/texts/101'), RefItem(cref='#/texts/102'), RefItem(cref='#/texts/103'), RefItem(cref='#/texts/104'), RefItem(cref='#/texts/105'), RefItem(cref='#/texts/106'), RefItem(cref='#/texts/107'), RefItem(cref='#/texts/108'), RefItem(cref='#/texts/109'), RefItem(cref='#/texts/110'), RefItem(cref='#/texts/111'), RefItem(cref='#/texts/112'), RefItem(cref='#/texts/113'), RefItem(cref='#/texts/114'), RefItem(cref='#/pictures/8'), RefItem(cref='#/texts/115'), RefItem(cref='#/texts/116'), RefItem(cref='#/texts/117'), RefItem(cref='#/texts/118'), RefItem(cref='#/texts/119'), RefItem(cref='#/texts/120'), RefItem(cref='#/texts/121'), RefItem(cref='#/texts/122'), RefItem(cref='#/texts/123'), RefItem(cref='#/texts/124'), RefItem(cref='#/texts/125'), RefItem(cref='#/texts/126'), RefItem(cref='#/texts/127'), RefItem(cref='#/texts/128'), RefItem(cref='#/groups/0'), RefItem(cref='#/pictures/9'), RefItem(cref='#/texts/139'), RefItem(cref='#/texts/140'), RefItem(cref='#/texts/141'), RefItem(cref='#/texts/142'), RefItem(cref='#/texts/143'), RefItem(cref='#/texts/144'), RefItem(cref='#/texts/145'), RefItem(cref='#/tables/5'), RefItem(cref='#/texts/146'), RefItem(cref='#/texts/147'), RefItem(cref='#/texts/148'), RefItem(cref='#/texts/149'), RefItem(cref='#/texts/150'), RefItem(cref='#/texts/151'), RefItem(cref='#/texts/152'), RefItem(cref='#/texts/153'), RefItem(cref='#/texts/154'), RefItem(cref='#/texts/155'), RefItem(cref='#/groups/1'), RefItem(cref='#/pictures/10'), RefItem(cref='#/texts/157'), RefItem(cref='#/texts/158'), RefItem(cref='#/texts/159'), RefItem(cref='#/texts/160'), RefItem(cref='#/texts/161'), RefItem(cref='#/texts/162'), RefItem(cref='#/pictures/11'), RefItem(cref='#/texts/163'), RefItem(cref='#/texts/164'), RefItem(cref='#/texts/165'), RefItem(cref='#/texts/166'), RefItem(cref='#/texts/167'), RefItem(cref='#/texts/168'), RefItem(cref='#/texts/169'), RefItem(cref='#/texts/170'), RefItem(cref='#/texts/171'), RefItem(cref='#/texts/172'), RefItem(cref='#/texts/173'), RefItem(cref='#/texts/174'), RefItem(cref='#/texts/175'), RefItem(cref='#/texts/176'), RefItem(cref='#/texts/177'), RefItem(cref='#/groups/2'), RefItem(cref='#/texts/182'), RefItem(cref='#/texts/183'), RefItem(cref='#/texts/184'), RefItem(cref='#/texts/185'), RefItem(cref='#/texts/186'), RefItem(cref='#/pictures/12'), RefItem(cref='#/texts/187'), RefItem(cref='#/texts/188'), RefItem(cref='#/texts/189'), RefItem(cref='#/texts/190'), RefItem(cref='#/texts/191'), RefItem(cref='#/texts/192'), RefItem(cref='#/texts/193'), RefItem(cref='#/texts/194'), RefItem(cref='#/texts/195'), RefItem(cref='#/texts/196'), RefItem(cref='#/texts/197'), RefItem(cref='#/texts/198'), RefItem(cref='#/texts/199'), RefItem(cref='#/tables/6'), RefItem(cref='#/texts/200'), RefItem(cref='#/texts/201'), RefItem(cref='#/texts/202'), RefItem(cref='#/pictures/13'), RefItem(cref='#/texts/203'), RefItem(cref='#/texts/204'), RefItem(cref='#/texts/205'), RefItem(cref='#/texts/206'), RefItem(cref='#/groups/3'), RefItem(cref='#/pictures/14'), RefItem(cref='#/texts/212'), RefItem(cref='#/texts/213'), RefItem(cref='#/texts/214'), RefItem(cref='#/texts/215'), RefItem(cref='#/texts/216'), RefItem(cref='#/texts/217'), RefItem(cref='#/texts/218'), RefItem(cref='#/texts/219'), RefItem(cref='#/texts/220'), RefItem(cref='#/texts/221'), RefItem(cref='#/texts/222'), RefItem(cref='#/texts/223'), RefItem(cref='#/texts/224'), RefItem(cref='#/texts/225'), RefItem(cref='#/pictures/15'), RefItem(cref='#/texts/226'), RefItem(cref='#/texts/227'), RefItem(cref='#/texts/228'), RefItem(cref='#/texts/229'), RefItem(cref='#/texts/230'), RefItem(cref='#/texts/231'), RefItem(cref='#/tables/7'), RefItem(cref='#/texts/232'), RefItem(cref='#/texts/233'), RefItem(cref='#/texts/234'), RefItem(cref='#/pictures/16'), RefItem(cref='#/texts/235'), RefItem(cref='#/texts/236'), RefItem(cref='#/texts/237'), RefItem(cref='#/texts/238'), RefItem(cref='#/texts/239'), RefItem(cref='#/texts/240'), RefItem(cref='#/texts/241'), RefItem(cref='#/texts/242'), RefItem(cref='#/texts/243'), RefItem(cref='#/texts/244'), RefItem(cref='#/texts/245'), RefItem(cref='#/texts/246'), RefItem(cref='#/tables/8'), RefItem(cref='#/pictures/17'), RefItem(cref='#/texts/249'), RefItem(cref='#/texts/250'), RefItem(cref='#/texts/251'), RefItem(cref='#/texts/252'), RefItem(cref='#/tables/9'), RefItem(cref='#/texts/253'), RefItem(cref='#/texts/254'), RefItem(cref='#/texts/255'), RefItem(cref='#/texts/256'), RefItem(cref='#/texts/257'), RefItem(cref='#/texts/258'), RefItem(cref='#/texts/259'), RefItem(cref='#/tables/10'), RefItem(cref='#/pictures/18'), RefItem(cref='#/texts/260'), RefItem(cref='#/texts/261'), RefItem(cref='#/texts/262'), RefItem(cref='#/texts/263'), RefItem(cref='#/texts/264'), RefItem(cref='#/texts/265'), RefItem(cref='#/pictures/19'), RefItem(cref='#/texts/266'), RefItem(cref='#/texts/267'), RefItem(cref='#/texts/268'), RefItem(cref='#/texts/269'), RefItem(cref='#/texts/270'), RefItem(cref='#/texts/271'), RefItem(cref='#/texts/272'), RefItem(cref='#/texts/273'), RefItem(cref='#/texts/274'), RefItem(cref='#/texts/275'), RefItem(cref='#/texts/276'), RefItem(cref='#/texts/277'), RefItem(cref='#/texts/278'), RefItem(cref='#/texts/279'), RefItem(cref='#/texts/280'), RefItem(cref='#/texts/281'), RefItem(cref='#/texts/282'), RefItem(cref='#/pictures/20'), RefItem(cref='#/texts/283'), RefItem(cref='#/texts/284'), RefItem(cref='#/texts/285'), RefItem(cref='#/texts/286'), RefItem(cref='#/texts/287'), RefItem(cref='#/texts/288'), RefItem(cref='#/texts/289'), RefItem(cref='#/texts/290'), RefItem(cref='#/texts/291'), RefItem(cref='#/texts/292'), RefItem(cref='#/texts/293'), RefItem(cref='#/texts/294'), RefItem(cref='#/texts/295'), RefItem(cref='#/texts/296'), RefItem(cref='#/texts/297'), RefItem(cref='#/pictures/21'), RefItem(cref='#/texts/298'), RefItem(cref='#/pictures/22'), RefItem(cref='#/texts/299'), RefItem(cref='#/texts/300'), RefItem(cref='#/texts/301'), RefItem(cref='#/texts/302'), RefItem(cref='#/texts/303'), RefItem(cref='#/texts/304'), RefItem(cref='#/texts/305'), RefItem(cref='#/texts/306'), RefItem(cref='#/tables/11'), RefItem(cref='#/texts/307'), RefItem(cref='#/texts/308'), RefItem(cref='#/pictures/23'), RefItem(cref='#/texts/309'), RefItem(cref='#/texts/310'), RefItem(cref='#/texts/311'), RefItem(cref='#/texts/312'), RefItem(cref='#/texts/313'), RefItem(cref='#/tables/12'), RefItem(cref='#/pictures/24'), RefItem(cref='#/texts/314'), RefItem(cref='#/texts/315'), RefItem(cref='#/texts/316'), RefItem(cref='#/texts/317'), RefItem(cref='#/texts/318'), RefItem(cref='#/texts/319'), RefItem(cref='#/texts/320'), RefItem(cref='#/texts/321'), RefItem(cref='#/texts/322'), RefItem(cref='#/texts/323'), RefItem(cref='#/texts/324'), RefItem(cref='#/texts/325'), RefItem(cref='#/texts/326'), RefItem(cref='#/texts/327'), RefItem(cref='#/texts/328'), RefItem(cref='#/pictures/25'), RefItem(cref='#/texts/329')], content_layer=, meta=None, name='_root_', label=) groups=[ListGroup(self_ref='#/groups/0', parent=RefItem(cref='#/body'), children=[RefItem(cref='#/texts/129'), RefItem(cref='#/texts/130'), RefItem(cref='#/texts/131'), RefItem(cref='#/texts/132'), RefItem(cref='#/texts/133'), RefItem(cref='#/texts/134'), RefItem(cref='#/texts/135'), RefItem(cref='#/texts/136'), RefItem(cref='#/texts/137'), RefItem(cref='#/texts/138')], content_layer=, meta=None, name='list', label=), ListGroup(self_ref='#/groups/1', parent=RefItem(cref='#/body'), children=[RefItem(cref='#/texts/156')], content_layer=, meta=None, name='list', label=), GroupItem(self_ref='#/groups/2', parent=RefItem(cref='#/body'), children=[RefItem(cref='#/texts/178'), RefItem(cref='#/texts/179'), RefItem(cref='#/texts/180'), RefItem(cref='#/texts/181')], content_layer=, meta=None, name='group', label=), GroupItem(self_ref='#/groups/3', parent=RefItem(cref='#/body'), children=[RefItem(cref='#/texts/207'), RefItem(cref='#/texts/208'), RefItem(cref='#/texts/209'), RefItem(cref='#/texts/210'), RefItem(cref='#/texts/211')], content_layer=, meta=None, name='group', label=)] texts=[SectionHeaderItem(self_ref='#/texts/0', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=1, bbox=BoundingBox(l=69.864, t=620.26, r=496.86, b=542.0922448979592, coord_origin=), charspan=(0, 43))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology', text='Morningstar Indexes Calculation Methodology', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/1', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=1, bbox=BoundingBox(l=339.43, t=57.50400000000002, r=395.47672, b=47.111755102040775, coord_origin=), charspan=(0, 12))], source=[], comments=[], orig='January 2024', text='January 2024', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/2', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=2, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/3', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=2, bbox=BoundingBox(l=72.024, t=724.17, r=120.20072, b=710.9537755102041, coord_origin=), charspan=(0, 8))], source=[], comments=[], orig='Contents', text='Contents', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/4', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=2, bbox=BoundingBox(l=45.36, t=38.190000000000055, r=50.24808, b=31.073571428571427, coord_origin=), charspan=(0, 1))], source=[], comments=[], orig='2', text='2', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/5', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=2, bbox=BoundingBox(l=72.264, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 233))], source=[], comments=[], orig='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/6', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=3, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/7', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=3, bbox=BoundingBox(l=72.024, t=723.6, r=113.62544, b=713.2077551020409, coord_origin=), charspan=(0, 8))], source=[], comments=[], orig='Overview', text='Overview', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/8', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=3, bbox=BoundingBox(l=72.024, t=705.5799999999999, r=573.12832, b=605.1877551020408, coord_origin=), charspan=(0, 785))], source=[], comments=[], orig=\"This document outlines the calculation methodology for the Morningstar Global Equity Indexes. An index level can be calculated using various methods to capture the composite performance of underlying securities while considering the impact of corporate events. Because there are different types of index weighting schemes, these calculations differ depending on how such events influence the price and shares of underlying securities. The Morningstar Global Equity Indexes are calculated using a modified version of the Laspeyres index -also known as a baseweighted index, since constituents' price change is weighted by the quantities (that is, index shares) in the base period. This document outlines the formulas and concepts used in the calculation of Morningstar's equity indexes.\", text=\"This document outlines the calculation methodology for the Morningstar Global Equity Indexes. An index level can be calculated using various methods to capture the composite performance of underlying securities while considering the impact of corporate events. Because there are different types of index weighting schemes, these calculations differ depending on how such events influence the price and shares of underlying securities. The Morningstar Global Equity Indexes are calculated using a modified version of the Laspeyres index -also known as a baseweighted index, since constituents' price change is weighted by the quantities (that is, index shares) in the base period. This document outlines the formulas and concepts used in the calculation of Morningstar's equity indexes.\", formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/9', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=3, bbox=BoundingBox(l=72.024, t=579.5799999999999, r=132.10544, b=569.1877551020408, coord_origin=), charspan=(0, 13))], source=[], comments=[], orig='Index Divisor', text='Index Divisor', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/10', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=3, bbox=BoundingBox(l=72.024, t=561.5799999999999, r=570.2045600000004, b=506.1577551020408, coord_origin=), charspan=(0, 403))], source=[], comments=[], orig='Morningstar Indexes use the concept of an \"index divisor\" to calculate daily index levels. The performance of the index is linked to change in the market value of its constituents. The portfolio market value of the index -which is the sum of its constituents\\' index market valueis adjusted by changing the index divisor to calculate the index levels. The index divisor for a given day (t) is defined as:', text='Morningstar Indexes use the concept of an \"index divisor\" to calculate daily index levels. The performance of the index is linked to change in the market value of its constituents. The portfolio market value of the index -which is the sum of its constituents\\' index market valueis adjusted by changing the index divisor to calculate the index levels. The index divisor for a given day (t) is defined as:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/11', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=3, bbox=BoundingBox(l=90.024, t=489.32511999999997, r=194.4266, b=468.92741124518614, coord_origin=), charspan=(0, 30))], source=[], comments=[], orig='1) 𝐷(𝑡) = 𝐼𝑛𝑖𝑡𝑖𝑎𝑙 𝑀𝑉(𝑡) 𝐼(𝑡-1)', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/12', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=3, bbox=BoundingBox(l=72.024, t=452.10999999999996, r=103.46672000000001, b=441.7177551020408, coord_origin=), charspan=(0, 6))], source=[], comments=[], orig='Where:', text='Where:', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/13', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=3, bbox=BoundingBox(l=72.024, t=357.04999999999995, r=566.3752, b=304.6577551020408, coord_origin=), charspan=(0, 428))], source=[], comments=[], orig='The index divisor remains unchanged unless there is a change in index composition, which can be due to corporate actions, changes in shares outstanding and the float factor, or the addition or deletion of securities from the index. In such cases, the divisor is adjusted to avoid distortions caused by such events and to keep the index level from changing because of factors that are not the result of stock market price action.', text='The index divisor remains unchanged unless there is a change in index composition, which can be due to corporate actions, changes in shares outstanding and the float factor, or the addition or deletion of securities from the index. In such cases, the divisor is adjusted to avoid distortions caused by such events and to keep the index level from changing because of factors that are not the result of stock market price action.', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/14', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=3, bbox=BoundingBox(l=72.024, t=279.28999999999996, r=376.59544, b=268.89775510204083, coord_origin=), charspan=(0, 70))], source=[], comments=[], orig='Market Capitalization and Float Market Capitalization Weighted Indexes', text='Market Capitalization and Float Market Capitalization Weighted Indexes', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/15', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=3, bbox=BoundingBox(l=72.024, t=262.01, r=570.2545600000001, b=181.62775510204085, coord_origin=), charspan=(0, 738))], source=[], comments=[], orig='In market-cap-weighted indexes the weight of each constituent is determined by dividing its market capitalization by the total market capitalization of the index, without accounting for strategic holdings that may not be publicly traded. Float market-capweighted indexes adjust for shares that are not included in the public float in an attempt to better reflect the composition of the market available to investors. These indexes use float market capitalization (Total Shares Outstanding*Investable Weight Factor*Price) in place of total market capitalization. In both market capitalization and float market capitalization weighted indexes, the price movement of a larger security will have a larger impact than that of a small security.', text='In market-cap-weighted indexes the weight of each constituent is determined by dividing its market capitalization by the total market capitalization of the index, without accounting for strategic holdings that may not be publicly traded. Float market-capweighted indexes adjust for shares that are not included in the public float in an attempt to better reflect the composition of the market available to investors. These indexes use float market capitalization (Total Shares Outstanding*Investable Weight Factor*Price) in place of total market capitalization. In both market capitalization and float market capitalization weighted indexes, the price movement of a larger security will have a larger impact than that of a small security.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/16', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=3, bbox=BoundingBox(l=72.024, t=164.05999999999995, r=301.01672, b=153.66775510204081, coord_origin=), charspan=(0, 59))], source=[], comments=[], orig='The following formula is used to calculate the index level:', text='The following formula is used to calculate the index level:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/17', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=3, bbox=BoundingBox(l=90.024, t=139.10144000000003, r=233.02436, b=116.55741124518613, coord_origin=), charspan=(0, 44))], source=[], comments=[], orig='2) 𝐼𝑛𝑑𝑒𝑥 𝐿𝑒𝑣𝑒𝑙 = ∑ 𝑃𝑖 ∗𝑄 𝑖 𝑛 𝑖 𝐼𝑛𝑑𝑒𝑥 𝐷𝑖𝑣𝑖𝑠𝑜𝑟', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/18', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=3, bbox=BoundingBox(l=45.36, t=38.190000000000055, r=50.24808, b=31.073571428571427, coord_origin=), charspan=(0, 1))], source=[], comments=[], orig='3', text='3', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/19', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=3, bbox=BoundingBox(l=72.264, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 233))], source=[], comments=[], orig='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/20', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=4, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/21', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=4, bbox=BoundingBox(l=72.024, t=723.6, r=103.46672000000001, b=713.2077551020409, coord_origin=), charspan=(0, 6))], source=[], comments=[], orig='Where:', text='Where:', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/22', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=4, bbox=BoundingBox(l=72.024, t=645.1, r=568.0667399999999, b=604.7077551020409, coord_origin=), charspan=(0, 364))], source=[], comments=[], orig='If the number of stocks in the index changes because of the addition or deletion of securities, the total market value of the index changes, but the index level should not change on such occasions. This is achieved by adjusting the divisor for the next day. Following similar terminology as stated in the Index Divisor section, we can write the following equation:', text='If the number of stocks in the index changes because of the addition or deletion of securities, the total market value of the index changes, but the index level should not change on such occasions. This is achieved by adjusting the divisor for the next day. Following similar terminology as stated in the Index Divisor section, we can write the following equation:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/23', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=4, bbox=BoundingBox(l=90.024, t=587.87512, r=195.0266, b=567.4774112451861, coord_origin=), charspan=(0, 28))], source=[], comments=[], orig='3) 𝐼(𝑡) = 𝐶𝑙𝑜𝑠𝑖𝑛𝑔 𝑀𝑉(𝑡) 𝐷(𝑡)', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/24', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=4, bbox=BoundingBox(l=72.024, t=549.0699999999999, r=547.3512000000003, b=523.6777551020408, coord_origin=), charspan=(0, 197))], source=[], comments=[], orig='Suppose there are n securities in the index out of which k securities will be deleted and replaced by an equal number of securities the next day. Then Equation (2) can be expanded to the following:', text='Suppose there are n securities in the index out of which k securities will be deleted and replaced by an equal number of securities the next day. Then Equation (2) can be expanded to the following:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/25', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=4, bbox=BoundingBox(l=90.024, t=506.71144000000004, r=246.4988, b=481.52741124518616, coord_origin=), charspan=(0, 48))], source=[], comments=[], orig='4) 𝐼(𝑡) = (∑ 𝑃𝑖 ∗𝑄 𝑖 )+ 𝑛-𝑘 𝑖 (∑ 𝑃𝑑∗𝑄𝑑) 𝑘 𝑑 𝐷(𝑡)', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/26', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=4, bbox=BoundingBox(l=72.024, t=463.15, r=551.04776, b=437.75775510204085, coord_origin=), charspan=(0, 196))], source=[], comments=[], orig='Now, this index should still open at I(t-1) on the next day (t). Assuming no corporate event and constant float and shares outstanding on the current constituents, the equation can be written as:', text='Now, this index should still open at I(t-1) on the next day (t). Assuming no corporate event and constant float and shares outstanding on the current constituents, the equation can be written as:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/27', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=4, bbox=BoundingBox(l=90.024, t=420.79144, r=386.9188, b=395.60741124518614, coord_origin=), charspan=(0, 95))], source=[], comments=[], orig='5) (∑ 𝑃𝑖 ∗𝑄 𝑖 )+ 𝑛-𝑘 𝑖 (∑ 𝑃𝑑∗𝑄𝑑) 𝑘 𝑑 𝐷(𝑡-1) = 𝐼(𝑡 - 1) = (∑ 𝑃𝑖 ∗𝑄 𝑖 )+ 𝑛-𝑘 𝑖 (∑ 𝑃𝑎∗𝑄𝑎) 𝑘 𝑎 𝐷(𝑡)', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/28', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=4, bbox=BoundingBox(l=72.024, t=377.21, r=568.648, b=351.81775510204085, coord_origin=), charspan=(0, 151))], source=[], comments=[], orig='Where P d and Q d represent security price and shares of deleted securities, while P a and Q a represent security price and shares of added securities.', text='Where P d and Q d represent security price and shares of deleted securities, while P a and Q a represent security price and shares of added securities.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/29', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=4, bbox=BoundingBox(l=72.024, t=332.21, r=294.17672, b=321.81775510204085, coord_origin=), charspan=(0, 59))], source=[], comments=[], orig='The index divisor for the day (t) can, thus, be written as:', text='The index divisor for the day (t) can, thus, be written as:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/30', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=4, bbox=BoundingBox(l=90.024, t=306.17144, r=308.6588, b=277.01328667522466, coord_origin=), charspan=(0, 70))], source=[], comments=[], orig='6) 𝐷(𝑡 + 1) = 𝐷(𝑡) ∗ (∑ 𝑃𝑖(𝑡)∗𝑄𝑖(𝑡))+𝛥𝑀𝑉(𝑡+1) 𝑛 𝑖 (∑ 𝑃𝑖(𝑡)∗𝑄𝑖(𝑡)) 𝑛 𝑖', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/31', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=4, bbox=BoundingBox(l=72.024, t=259.73, r=85.95071999999999, b=249.33775510204077, coord_origin=), charspan=(0, 3))], source=[], comments=[], orig='Or:', text='Or:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/32', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=4, bbox=BoundingBox(l=90.024, t=232.50512000000003, r=241.3466, b=212.10741124518609, coord_origin=), charspan=(0, 35))], source=[], comments=[], orig='7) 𝐷(𝑡 + 1) = 𝐷(𝑡) + 𝛥𝑀𝑉(𝑡+1) 𝐼(𝑡)', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/33', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=4, bbox=BoundingBox(l=72.024, t=195.14, r=103.46672000000001, b=184.74775510204086, coord_origin=), charspan=(0, 6))], source=[], comments=[], orig='Where:', text='Where:', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/34', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=4, bbox=BoundingBox(l=72.024, t=79.94399999999996, r=412.27672, b=69.55175510204083, coord_origin=), charspan=(0, 85)), ProvenanceItem(page_no=5, bbox=BoundingBox(l=72.024, t=723.6, r=554.7259199999999, b=653.1877551020408, coord_origin=), charspan=(86, 621))], source=[], comments=[], orig='Δ MV(t+1) = Aggregate change in market value resulting from additions and deletions The above equation can be generalized where ΔMV(t+1) can be computed for every stock in the index along with other corporate action adjustments, and the resulting sum can be used to calculate the index divisor for the next day. These adjustments are made after the market is closed for trading where aggregate market value change is calculated using the portfolios at the market close and the next market opening. As the calculation suggests, this divisor does not change as a result of any market-neutral event, such as a stock split.', text='Δ MV(t+1) = Aggregate change in market value resulting from additions and deletions The above equation can be generalized where ΔMV(t+1) can be computed for every stock in the index along with other corporate action adjustments, and the resulting sum can be used to calculate the index divisor for the next day. These adjustments are made after the market is closed for trading where aggregate market value change is calculated using the portfolios at the market close and the next market opening. As the calculation suggests, this divisor does not change as a result of any market-neutral event, such as a stock split.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/35', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=4, bbox=BoundingBox(l=45.36, t=38.190000000000055, r=50.24808, b=31.073571428571427, coord_origin=), charspan=(0, 1))], source=[], comments=[], orig='4', text='4', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/36', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=4, bbox=BoundingBox(l=72.264, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 233))], source=[], comments=[], orig='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/37', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=5, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/38', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=5, bbox=BoundingBox(l=72.024, t=627.5799999999999, r=176.26543999999998, b=617.1877551020408, coord_origin=), charspan=(0, 22))], source=[], comments=[], orig='Equal Weighted Indexes', text='Equal Weighted Indexes', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/39', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=5, bbox=BoundingBox(l=72.024, t=609.5799999999999, r=563.26672, b=584.1877551020408, coord_origin=), charspan=(0, 245))], source=[], comments=[], orig='Equal weighted indexes assign equal weightings to each constituent at rebalancing. The weights drift from their original assigned weights as the price of underlying stocks changes until the next index rebalance, when it is reset to equal weight.', text='Equal weighted indexes assign equal weightings to each constituent at rebalancing. The weights drift from their original assigned weights as the price of underlying stocks changes until the next index rebalance, when it is reset to equal weight.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/40', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=5, bbox=BoundingBox(l=72.024, t=564.5799999999999, r=440.47672, b=554.1877551020408, coord_origin=), charspan=(0, 90))], source=[], comments=[], orig='Constituent weightings in an equal-weighted index are determined by the following formula:', text='Constituent weightings in an equal-weighted index are determined by the following formula:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/41', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=5, bbox=BoundingBox(l=90.024, t=539.00512, r=144.19796, b=518.9674112451861, coord_origin=), charspan=(0, 12))], source=[], comments=[], orig='8) 𝐼𝑊𝑖 = 1 𝑛', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/42', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=5, bbox=BoundingBox(l=72.024, t=501.90999999999997, r=398.95672, b=491.51775510204084, coord_origin=), charspan=(0, 82))], source=[], comments=[], orig='And the constructed shares for each constituent in the index can be calculated as:', text='And the constructed shares for each constituent in the index can be calculated as:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/43', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=5, bbox=BoundingBox(l=90.024, t=475.63144, r=236.88224, b=443.0074112451862, coord_origin=), charspan=(0, 46))], source=[], comments=[], orig='9) 𝑆𝑖 (𝑡) = ∑ (𝑃𝑗(𝑡)∗𝑄𝑗 (𝑡))∗𝐼𝑊𝑖 ∗𝐶 𝑛 𝑗 𝑃𝑖 (𝑡)', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/44', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=5, bbox=BoundingBox(l=72.024, t=425.10999999999996, r=416.83672, b=414.7177551020408, coord_origin=), charspan=(0, 90))], source=[], comments=[], orig=\"This can be further written in terms of the security's float -adjusted outstanding shares:\", text=\"This can be further written in terms of the security's float -adjusted outstanding shares:\", formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/45', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=5, bbox=BoundingBox(l=90.024, t=399.07144, r=277.32223999999997, b=372.66741124518614, coord_origin=), charspan=(0, 70))], source=[], comments=[], orig='10) 𝑆𝑖 (𝑡) = 𝑄 𝑖 (𝑡) ∗ ∑ 𝑛 𝐹𝑙𝑜𝑎𝑡 𝑀𝑐𝑎𝑝 𝑗 𝑗 (𝑡)∗ 𝐼𝑊 𝑖 ∗𝐶 𝐹𝑙𝑜𝑎𝑡 𝑀𝑐𝑎𝑝𝑖 (𝑡)', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/46', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=5, bbox=BoundingBox(l=72.024, t=354.04999999999995, r=85.95071999999999, b=343.6577551020408, coord_origin=), charspan=(0, 3))], source=[], comments=[], orig='Or:', text='Or:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/47', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=5, bbox=BoundingBox(l=90.024, t=325.91911999999996, r=194.87204, b=312.90741124518615, coord_origin=), charspan=(0, 26))], source=[], comments=[], orig='11) 𝑆𝑖 (𝑡) = 𝑄𝑖 (𝑡) ∗ 𝐴𝐹 𝑖', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/48', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=5, bbox=BoundingBox(l=72.024, t=310.84999999999997, r=103.46672000000001, b=300.45775510204084, coord_origin=), charspan=(0, 6))], source=[], comments=[], orig='Where:', text='Where:', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/49', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=5, bbox=BoundingBox(l=72.024, t=158.89999999999998, r=83.77944, b=147.8202040816327, coord_origin=), charspan=(0, 3))], source=[], comments=[], orig='AFi', text='AFi', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/50', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=5, bbox=BoundingBox(l=124.82, t=158.89999999999998, r=256.49672, b=148.50775510204085, coord_origin=), charspan=(0, 34))], source=[], comments=[], orig='= Adjustment factor of security i', text='= Adjustment factor of security i', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/51', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=5, bbox=BoundingBox(l=72.024, t=128.77999999999997, r=559.96992, b=88.39175510204086, coord_origin=), charspan=(0, 352))], source=[], comments=[], orig='It is important to note that the shares S i (t) for the index constituents are artificial constructs used for calculation purposes. Consequently, the constructed shares are linked to the actual shares of the company in terms of the total dividends paid by the company. Hence, the index-specific constant C can be assigned to normalize the index shares.', text='It is important to note that the shares S i (t) for the index constituents are artificial constructs used for calculation purposes. Consequently, the constructed shares are linked to the actual shares of the company in terms of the total dividends paid by the company. Hence, the index-specific constant C can be assigned to normalize the index shares.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/52', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=5, bbox=BoundingBox(l=45.36, t=38.190000000000055, r=50.24808, b=31.073571428571427, coord_origin=), charspan=(0, 1))], source=[], comments=[], orig='5', text='5', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/53', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=5, bbox=BoundingBox(l=72.264, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 233))], source=[], comments=[], orig='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/54', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=6, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/55', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=6, bbox=BoundingBox(l=72.024, t=723.6, r=218.29543999999999, b=713.2077551020409, coord_origin=), charspan=(0, 32))], source=[], comments=[], orig='Dividend Dollar-Weighted Indexes', text='Dividend Dollar-Weighted Indexes', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/56', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=6, bbox=BoundingBox(l=72.024, t=705.5799999999999, r=567.4433600000002, b=665.1877551020408, coord_origin=), charspan=(0, 302))], source=[], comments=[], orig=\"Dividend dollar-weighted indexes are those where the constituents are weighted according to the total dividends paid by the company to investors. Consequently, the available dividend dollar value is the product of the security's shares outstanding, free float factor, and annualized dividend per share.\", text=\"Dividend dollar-weighted indexes are those where the constituents are weighted according to the total dividends paid by the company to investors. Consequently, the available dividend dollar value is the product of the security's shares outstanding, free float factor, and annualized dividend per share.\", formatting=None, hyperlink=None), TextItem(self_ref='#/texts/57', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=6, bbox=BoundingBox(l=72.024, t=645.5799999999999, r=471.70672, b=635.1877551020408, coord_origin=), charspan=(0, 99))], source=[], comments=[], orig='Constituent weightings in a dividend dollar-weighted index are determined by the following formula:', text='Constituent weightings in a dividend dollar-weighted index are determined by the following formula:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/58', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=6, bbox=BoundingBox(l=90.024, t=618.35512, r=214.3466, b=595.6632866752246, coord_origin=), charspan=(0, 51))], source=[], comments=[], orig='12) 𝐼𝑊𝑖 (𝑡) = 𝑑𝑖 (𝑡)∗𝑄 𝑖 (𝑡) ∑ 𝑑𝑖 (𝑡)∗𝑄 𝑖 (𝑡) 𝑛 𝑖=1', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/59', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=6, bbox=BoundingBox(l=72.024, t=578.38, r=334.51672, b=567.3002040816326, coord_origin=), charspan=(0, 71))], source=[], comments=[], orig='Where d i (t) is the dividend per share of the company (i) at time (t).', text='Where d i (t) is the dividend per share of the company (i) at time (t).', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/60', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=6, bbox=BoundingBox(l=72.024, t=548.35, r=570.6089600000004, b=522.9577551020409, coord_origin=), charspan=(0, 141))], source=[], comments=[], orig='And the constructed shares S i (t) for each constituent in the index calculation formula can be calculated using the equations 9, 10, and 11:', text='And the constructed shares S i (t) for each constituent in the index calculation formula can be calculated using the equations 9, 10, and 11:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/61', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=6, bbox=BoundingBox(l=94.584, t=507.07144, r=238.08224, b=474.4474112451862, coord_origin=), charspan=(0, 46))], source=[], comments=[], orig='9) 𝑆𝑖 (𝑡) = ∑ (𝑃𝑗(𝑡)∗𝑄𝑗 (𝑡))∗𝐼𝑊𝑖 ∗𝐶 𝑛 𝑗 𝑃𝑖 (𝑡)', text='', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/62', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=6, bbox=BoundingBox(l=90.024, t=429.55144, r=278.76223999999996, b=403.16741124518614, coord_origin=), charspan=(0, 69))], source=[], comments=[], orig='10) 𝑆𝑖 (𝑡) = 𝑄𝑖 (𝑡) ∗ ∑ 𝑛 𝐹𝑙𝑜𝑎𝑡 𝑀𝑐𝑎𝑝 𝑗 𝑗 (𝑡)∗ 𝐼𝑊 𝑖 ∗𝐶 𝐹𝑙𝑜𝑎𝑡 𝑀𝑐𝑎𝑝𝑖 (𝑡)', text='', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/63', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=6, bbox=BoundingBox(l=90.024, t=356.39912, r=196.31204, b=343.3874112451862, coord_origin=), charspan=(0, 26))], source=[], comments=[], orig='11) 𝑆𝑖 (𝑡) = 𝑄𝑖 (𝑡) ∗ 𝐴𝐹 𝑖', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/64', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=6, bbox=BoundingBox(l=72.024, t=325.96999999999997, r=422.23672, b=315.57775510204084, coord_origin=), charspan=(0, 89))], source=[], comments=[], orig='The adjustment factor for each security on the rebalancing date (t) can be calculated by:', text='The adjustment factor for each security on the rebalancing date (t) can be calculated by:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/65', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=6, bbox=BoundingBox(l=90.024, t=298.74512, r=162.5966, b=278.3474112451861, coord_origin=), charspan=(0, 24))], source=[], comments=[], orig='13) 𝐴𝐹𝑖 = 𝐼𝑊𝑖 (𝑡) 𝑊𝑖 (𝑡)', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/66', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=6, bbox=BoundingBox(l=72.024, t=261.77, r=103.46672000000001, b=251.37775510204085, coord_origin=), charspan=(0, 6))], source=[], comments=[], orig='Where:', text='Where:', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/67', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=6, bbox=BoundingBox(l=72.024, t=246.76999999999998, r=341.47672, b=235.6902040816326, coord_origin=), charspan=(0, 72))], source=[], comments=[], orig='IWi (t) = Capped weight of security i in index at rebalancing time (t)', text='IWi (t) = Capped weight of security i in index at rebalancing time (t)', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/68', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=6, bbox=BoundingBox(l=72.024, t=230.56999999999994, r=456.58672, b=220.1777551020408, coord_origin=), charspan=(0, 97))], source=[], comments=[], orig='Wi(t) = Uncapped weight of security i in index at rebalancing time (t) based on float market cap', text='Wi(t) = Uncapped weight of security i in index at rebalancing time (t) based on float market cap', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/69', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=6, bbox=BoundingBox(l=72.024, t=455.83, r=85.95071999999999, b=445.43775510204085, coord_origin=), charspan=(0, 3))], source=[], comments=[], orig='Or:', text='Or:', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/70', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=6, bbox=BoundingBox(l=72.024, t=384.53, r=85.95071999999999, b=374.13775510204084, coord_origin=), charspan=(0, 3))], source=[], comments=[], orig='Or:', text='Or:', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/71', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=6, bbox=BoundingBox(l=45.36, t=38.190000000000055, r=50.24808, b=31.073571428571427, coord_origin=), charspan=(0, 1))], source=[], comments=[], orig='6', text='6', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/72', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=6, bbox=BoundingBox(l=72.264, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 233))], source=[], comments=[], orig='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/73', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/74', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=72.024, t=723.6, r=187.66544, b=713.2077551020409, coord_origin=), charspan=(0, 23))], source=[], comments=[], orig='Capped-Weighted Indexes', text='Capped-Weighted Indexes', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/75', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=72.024, t=705.5799999999999, r=561.23824, b=650.1877551020408, coord_origin=), charspan=(0, 404))], source=[], comments=[], orig='Capped-weighted indexes constrain the maximum weight of a single constituent and/or the sum of the weights of all securities representing a defined group. These groups can be defined on parameters like: sectors, industries, countries, and individual securities. Such indexes are often designed to address the constraints imposed by UCITS or the U.S. Internal Revenue Code, and to improve diversification.', text='Capped-weighted indexes constrain the maximum weight of a single constituent and/or the sum of the weights of all securities representing a defined group. These groups can be defined on parameters like: sectors, industries, countries, and individual securities. Such indexes are often designed to address the constraints imposed by UCITS or the U.S. Internal Revenue Code, and to improve diversification.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/76', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=72.024, t=630.5799999999999, r=560.98144, b=575.1877551020408, coord_origin=), charspan=(0, 419))], source=[], comments=[], orig='In such instances, the excess weight is distributed among the remaining constituents with an objective to preserve relative weights for a maximum number of stocks within the index. These weights may drift from their caps between rebalances, as the price of underlying stocks changes. Hence, an adjustment is required at rebalancing to assign appropriate weights to index constituents according to the capping algorithm.', text='In such instances, the excess weight is distributed among the remaining constituents with an objective to preserve relative weights for a maximum number of stocks within the index. These weights may drift from their caps between rebalances, as the price of underlying stocks changes. Hence, an adjustment is required at rebalancing to assign appropriate weights to index constituents according to the capping algorithm.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/77', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=72.024, t=555.5799999999999, r=553.1502400000002, b=530.1577551020408, coord_origin=), charspan=(0, 215))], source=[], comments=[], orig='The index calculation methodology for the capped indexes remains the same as in the float market-capitalization indexes, except that weights of individual stocks differ from those assigned by their float market cap.', text='The index calculation methodology for the capped indexes remains the same as in the float market-capitalization indexes, except that weights of individual stocks differ from those assigned by their float market cap.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/78', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=72.024, t=512.35, r=477.58672, b=501.95775510204084, coord_origin=), charspan=(0, 102))], source=[], comments=[], orig='The equations 9, 10, 11, and 13 can be used again from the previous section to calculate index shares:', text='The equations 9, 10, 11, and 13 can be used again from the previous section to calculate index shares:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/79', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=94.584, t=486.31144, r=238.08224, b=453.6874112451862, coord_origin=), charspan=(0, 46))], source=[], comments=[], orig='9) 𝑆𝑖 (𝑡) = ∑ (𝑃𝑗(𝑡)∗𝑄𝑗 (𝑡))∗𝐼𝑊𝑖 ∗𝐶 𝑛 𝑗 𝑃𝑖 (𝑡)', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/80', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=72.024, t=435.07, r=85.95071999999999, b=424.67775510204086, coord_origin=), charspan=(0, 3))], source=[], comments=[], orig='Or:', text='Or:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/81', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=90.024, t=408.79144, r=278.76223999999996, b=382.40741124518615, coord_origin=), charspan=(0, 69))], source=[], comments=[], orig='10) 𝑆𝑖 (𝑡) = 𝑄𝑖 (𝑡) ∗ ∑ 𝑛 𝐹𝑙𝑜𝑎𝑡 𝑀𝑐𝑎𝑝 𝑗 𝑗 (𝑡)∗ 𝐼𝑊 𝑖 ∗𝐶 𝐹𝑙𝑜𝑎𝑡 𝑀𝑐𝑎𝑝𝑖 (𝑡)', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/82', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=72.024, t=363.77, r=325.51672, b=353.37775510204085, coord_origin=), charspan=(0, 65))], source=[], comments=[], orig='This can be further written in terms of the adjustment factor as:', text='This can be further written in terms of the adjustment factor as:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/83', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=90.024, t=335.63912, r=196.31204, b=322.6274112451862, coord_origin=), charspan=(0, 26))], source=[], comments=[], orig='11) 𝑆𝑖 (𝑡) = 𝑄𝑖 (𝑡) ∗ 𝐴𝐹 𝑖', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/84', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=72.024, t=305.21, r=103.46672000000001, b=294.81775510204085, coord_origin=), charspan=(0, 6))], source=[], comments=[], orig='Where:', text='Where:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/85', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=90.024, t=277.98512000000005, r=164.0366, b=257.5874112451861, coord_origin=), charspan=(0, 24))], source=[], comments=[], orig='13) 𝐴𝐹𝑖 = 𝐼𝑊𝑖 (𝑡) 𝑊𝑖 (𝑡)', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/86', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=72.024, t=232.37, r=211.09544, b=221.97775510204087, coord_origin=), charspan=(0, 28))], source=[], comments=[], orig='Capped-Weighting Adjustments', text='Capped-Weighting Adjustments', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/87', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=72.024, t=214.34000000000003, r=570.0778399999999, b=188.9477551020408, coord_origin=), charspan=(0, 135))], source=[], comments=[], orig='The capped-weight IW i can be calculated with different capping methods, which can be further segregated into the following techniques:', text='The capped-weight IW i can be calculated with different capping methods, which can be further segregated into the following techniques:', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/88', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=72.024, t=169.34000000000003, r=179.90672, b=158.9477551020408, coord_origin=), charspan=(0, 26))], source=[], comments=[], orig='Single Constituent Capping', text='Single Constituent Capping', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/89', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=72.024, t=151.34000000000003, r=426.31672000000003, b=140.9477551020408, coord_origin=), charspan=(0, 84))], source=[], comments=[], orig='This method is applied when a single constituent exceeds the maximum weight allowed.', text='This method is applied when a single constituent exceeds the maximum weight allowed.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/90', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=72.024, t=121.34000000000003, r=222.65672, b=110.94775510204079, coord_origin=), charspan=(0, 36))], source=[], comments=[], orig='Single Constituent and Group Capping', text='Single Constituent and Group Capping', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/91', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=72.024, t=103.34400000000005, r=530.3385600000001, b=77.9517551020408, coord_origin=), charspan=(0, 215))], source=[], comments=[], orig='This method is applied to restrict the weight of a single constituent to a predefined weight, as well as weights of all constituents with a combined weight greater than a certain amount to a predefined group weight.', text='This method is applied to restrict the weight of a single constituent to a predefined weight, as well as weights of all constituents with a combined weight greater than a certain amount to a predefined group weight.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/92', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=45.36, t=38.190000000000055, r=50.24808, b=31.073571428571427, coord_origin=), charspan=(0, 1))], source=[], comments=[], orig='7', text='7', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/93', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=72.264, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 233))], source=[], comments=[], orig='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/94', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/95', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=72.024, t=708.5799999999999, r=568.9280800000001, b=668.1877551020408, coord_origin=), charspan=(0, 286))], source=[], comments=[], orig='Any such capping can be written in terms of B-A-C capping (for example, the 5-20-50 capping rule). This means the maximum weight an individual security can receive is A (20%), and the weights of all securities with weight greater than or equal to B (5%) cannot sum to more than C (50%).', text='Any such capping can be written in terms of B-A-C capping (for example, the 5-20-50 capping rule). This means the maximum weight an individual security can receive is A (20%), and the weights of all securities with weight greater than or equal to B (5%) cannot sum to more than C (50%).', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/96', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=72.024, t=648.5799999999999, r=269.93672, b=638.1877551020408, coord_origin=), charspan=(0, 48))], source=[], comments=[], orig='The procedure to cap weights is explained below.', text='The procedure to cap weights is explained below.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/97', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=72.024, t=618.5799999999999, r=569.86672, b=608.1877551020408, coord_origin=), charspan=(0, 126))], source=[], comments=[], orig='The first step is to assign a weight to each security based on its weighting scheme, which is often based on float market cap.', text='The first step is to assign a weight to each security based on its weighting scheme, which is often based on float market cap.', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/98', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=72.024, t=604.42, r=458.38672, b=570.0314235024824, coord_origin=), charspan=(0, 163))], source=[], comments=[], orig='For a given set of weights, w 1 , w 2 , …, w N , with w 1 \\uf0b3 w2 \\uf0b3 … \\uf0b3 wN, and , we test to see if the B-C rule holds as follows: \\uf0e5 = = N 1 i i w 1', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/99', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=72.024, t=560.62, r=88.95071999999999, b=550.2277551020409, coord_origin=), charspan=(0, 4))], source=[], comments=[], orig='Let:', text='Let:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/100', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=72.024, t=548.8991199999999, r=167.10224000000002, b=524.5422661874197, coord_origin=), charspan=(0, 27))], source=[], comments=[], orig='𝑤𝑖 ∗ = { 𝑤𝑖, 𝑥 ≥ 𝐵 0, 𝑥 < 𝐵', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/101', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=72.024, t=509.24512, r=216.53672, b=494.1274112451862, coord_origin=), charspan=(0, 41))], source=[], comments=[], orig='If ∑ wi ∗ N i=1 ≤ C , the B-C rule holds.', text='If ∑ wi ∗ N i=1 ≤ C , the B-C rule holds.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/102', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=72.024, t=476.83, r=88.95071999999999, b=466.43775510204085, coord_origin=), charspan=(0, 4))], source=[], comments=[], orig='Let:', text='Let:', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/103', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=72.024, t=461.83, r=244.61672000000002, b=451.43775510204085, coord_origin=), charspan=(0, 38))], source=[], comments=[], orig='N = Number of stocks in the portfolio', text='N = Number of stocks in the portfolio', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/104', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=72.024, t=445.51, r=312.53672, b=435.11775510204086, coord_origin=), charspan=(0, 59))], source=[], comments=[], orig='Cap/A = A (that is, maximum weight allowed for any stock)', text='Cap/A = A (that is, maximum weight allowed for any stock)', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/105', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=72.024, t=430.21000000000004, r=380.44264, b=417.99020408163267, coord_origin=), charspan=(0, 84))], source=[], comments=[], orig='x i = Original weight of the i th largest stock in the portfolio, x 1 \\uf03e x 2 … \\uf03e x N', text='x i = Original weight of the i th largest stock in the portfolio, x 1 \\uf03e x 2 … \\uf03e x N', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/106', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=112.885508029486, t=412.9391054955774, r=153.78214769893628, b=383.37142888057537, coord_origin=), charspan=(0, 17))], source=[], comments=[], orig='\\uf0e5 = = N 1 i i x 1', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/107', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=72.024, t=370.25, r=568.1219199999998, b=329.85775510204087, coord_origin=), charspan=(0, 281))], source=[], comments=[], orig='If x 1 ≤cap and the B -C rule holds for x 1 , x 2 , …, x N ,, we do not need any reweighting. If the B-C rule does not hold, the cap should be set to a value less than x 1 and the following algorithm should be tried. If we start with x 1 >cap, we try the algorithm described below.', text='If x 1 ≤cap and the B -C rule holds for x 1 , x 2 , …, x N ,, we do not need any reweighting. If the B-C rule does not hold, the cap should be set to a value less than x 1 and the following algorithm should be tried. If we start with x 1 >cap, we try the algorithm described below.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/108', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=72.024, t=310.25, r=336.31672000000003, b=299.85775510204087, coord_origin=), charspan=(0, 66))], source=[], comments=[], orig='Morningstar reweights using a two-part linear function as follows:', text='Morningstar reweights using a two-part linear function as follows:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/109', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=90.024, t=291.53482276382107, r=249.58242605113605, b=258.48827443484424, coord_origin=), charspan=(0, 67))], source=[], comments=[], orig='14) ( ) K 1 i K i 2 i y x x , if i K y x , if i K +\\uf062 -\\uf0a3 \\uf0ec = \\uf0ed \\uf062 \\uf0b3 \\uf0ee', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/110', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=72.024, t=239.56999999999994, r=569.14096, b=214.1777551020408, coord_origin=), charspan=(0, 168))], source=[], comments=[], orig='Where K is the index of the stock at which the function is kinked. Note that this reweighting preserves the relative weights of all stocks beginning from the Kth stock.', text='Where K is the index of the stock at which the function is kinked. Note that this reweighting preserves the relative weights of all stocks beginning from the Kth stock.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/111', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=72.024, t=194.53999999999996, r=349.75672000000003, b=184.14775510204083, coord_origin=), charspan=(0, 71))], source=[], comments=[], orig='Given K, we need to set à1 and à2. From equation (13), it follows that:', text='Given K, we need to set à1 and à2. From equation (13), it follows that:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/112', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=90.024, t=169.7832906796076, r=161.0082910815618, b=141.99465463896024, coord_origin=), charspan=(0, 28))], source=[], comments=[], orig='15) 1 K 1 1 K y y x x -\\uf062 = -', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/113', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=72.024, t=120.98000000000002, r=92.91072, b=110.58775510204077, coord_origin=), charspan=(0, 4))], source=[], comments=[], orig='And:', text='And:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/114', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=90.024, t=101.60029656376321, r=148.56051956489245, b=73.83366567055134, coord_origin=), charspan=(0, 17))], source=[], comments=[], orig='16) K 2 k y x \\uf062 =', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/115', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=45.36, t=38.190000000000055, r=50.24808, b=31.073571428571427, coord_origin=), charspan=(0, 1))], source=[], comments=[], orig='8', text='8', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/116', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=72.264, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 233))], source=[], comments=[], orig='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/117', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/118', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=72.024, t=723.6, r=104.78672, b=713.2077551020409, coord_origin=), charspan=(0, 7))], source=[], comments=[], orig='We set:', text='We set:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/119', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=90.024, t=693.5799999999999, r=157.6212200420181, b=682.0598757041994, coord_origin=), charspan=(0, 13))], source=[], comments=[], orig='17) 1 y cap =', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/120', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=72.024, t=664.42, r=155.90288, b=653.3402040816327, coord_origin=), charspan=(0, 21))], source=[], comments=[], orig='We need to set y K so', text='We need to set y K so', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/121', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=216.77, t=664.42, r=398.83672, b=654.0277551020408, coord_origin=), charspan=(0, 43))], source=[], comments=[], orig='. Some algebra shows that this occurs when:', text='. Some algebra shows that this occurs when:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/122', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=166.20066735086615, t=664.4646674032174, r=210.45896076234052, b=630.2822735038224, coord_origin=), charspan=(0, 17))], source=[], comments=[], orig='N i i 1 y 1 = = \\uf0e5', text='', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/123', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=90.024, t=613.219686264496, r=219.6885901601471, b=570.442686798037, coord_origin=), charspan=(0, 41))], source=[], comments=[], orig='18) ( ) 1 K K 1 y y 1 z K 1 x -\\uf067 = ---\\uf067 +', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/124', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=72.024, t=550.63, r=110.42671999999999, b=540.2377551020409, coord_origin=), charspan=(0, 6))], source=[], comments=[], orig='Where:', text='Where:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/125', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=90.024, t=533.0005282317239, r=164.6465622620687, b=503.062088125631, coord_origin=), charspan=(0, 24))], source=[], comments=[], orig='19) K 1 i i 1 z x -= = \\uf0e5', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/126', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=72.024, t=479.22999999999996, r=95.31072, b=468.83775510204083, coord_origin=), charspan=(0, 4))], source=[], comments=[], orig='And:', text='And:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/127', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=90.024, t=459.57338957948645, r=193.50277700167277, b=430.02735708915935, coord_origin=), charspan=(0, 33))], source=[], comments=[], orig='20) ( ) K 1 K z K 1 x x x --\\uf067 = -', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/128', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=72.024, t=406.39, r=561.6625599999999, b=380.99775510204086, coord_origin=), charspan=(0, 187))], source=[], comments=[], orig='We chose K to maximize the number of stocks for which relative weights are preserved. This occurs at the lowest value of K for which yK≤y1. Hence, our reweighting algorithm is as follows:', text='We chose K to maximize the number of stocks for which relative weights are preserved. This occurs at the lowest value of K for which yK≤y1. Hence, our reweighting algorithm is as follows:', formatting=None, hyperlink=None), ListItem(self_ref='#/texts/129', parent=RefItem(cref='#/groups/0'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=126.02, t=361.36999999999995, r=247.85672, b=350.9777551020408, coord_origin=), charspan=(0, 27))], source=[], comments=[], orig='1. Set z=0, y1=cap, and K=1', text='Set z=0, y1=cap, and K=1', formatting=None, hyperlink=None, enumerated=True, marker='1.'), ListItem(self_ref='#/texts/130', parent=RefItem(cref='#/groups/0'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=126.02, t=346.36999999999995, r=310.85672, b=335.9777551020408, coord_origin=), charspan=(0, 44))], source=[], comments=[], orig='2. If K, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=126.02, t=331.36999999999995, r=191.39262, b=320.2902040816326, coord_origin=), charspan=(0, 16))], source=[], comments=[], orig='3. Set z=z+x K-1', text='Set z=z+x K-1', formatting=None, hyperlink=None, enumerated=True, marker='3.'), ListItem(self_ref='#/texts/132', parent=RefItem(cref='#/groups/0'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=126.02, t=316.36999999999995, r=359.95672, b=305.2902040816326, coord_origin=), charspan=(0, 59))], source=[], comments=[], orig='4. Set \\uf067 and y K using equations (20) and (18) respectively', text='Set \\uf067 and y K using equations (20) and (18) respectively', formatting=None, hyperlink=None, enumerated=True, marker='4.'), ListItem(self_ref='#/texts/133', parent=RefItem(cref='#/groups/0'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=126.02, t=301.36999999999995, r=246.89672000000002, b=290.2902040816326, coord_origin=), charspan=(0, 33))], source=[], comments=[], orig='5. If y K >y1 , go back to step 2', text='If y K >y1 , go back to step 2', formatting=None, hyperlink=None, enumerated=True, marker='5.'), ListItem(self_ref='#/texts/134', parent=RefItem(cref='#/groups/0'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=126.02, t=286.36999999999995, r=365.83672, b=275.2902040816326, coord_origin=), charspan=(0, 61))], source=[], comments=[], orig='6. Set \\uf062 1 and \\uf062 2 using equations (15) and (16) respectively', text='Set \\uf062 1 and \\uf062 2 using equations (15) and (16) respectively', formatting=None, hyperlink=None, enumerated=True, marker='6.'), ListItem(self_ref='#/texts/135', parent=RefItem(cref='#/groups/0'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=126.02, t=271.3699999999999, r=306.77672, b=260.2902040816326, coord_origin=), charspan=(0, 46))], source=[], comments=[], orig='7. For i = 1,…, N, set y i using equation (14)', text='For i = 1,…, N, set y i using equation (14)', formatting=None, hyperlink=None, enumerated=True, marker='7.'), ListItem(self_ref='#/texts/136', parent=RefItem(cref='#/groups/0'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=126.02, t=256.37, r=524.74672, b=245.97775510204087, coord_origin=), charspan=(0, 104))], source=[], comments=[], orig='8. If the BC rule holds for y1, y2, ,…, yN, this is the solution, so stop . Otherwise go back to step 2.', text='If the BC rule holds for y1, y2, ,…, yN, this is the solution, so stop . Otherwise go back to step 2.', formatting=None, hyperlink=None, enumerated=True, marker='8.'), ListItem(self_ref='#/texts/137', parent=RefItem(cref='#/groups/0'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=126.02, t=241.37, r=475.78672, b=230.97775510204087, coord_origin=), charspan=(0, 86))], source=[], comments=[], orig=\"9. If K=N and BC rule doesn't hold, set y1 = y1-0.0001 and go to step 1 with a new y1.\", text=\"If K=N and BC rule doesn't hold, set y1 = y1-0.0001 and go to step 1 with a new y1.\", formatting=None, hyperlink=None, enumerated=True, marker='9.'), ListItem(self_ref='#/texts/138', parent=RefItem(cref='#/groups/0'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=126.02, t=227.09000000000003, r=370.99672, b=216.6977551020408, coord_origin=), charspan=(0, 62))], source=[], comments=[], orig='10. There is no solution that meets the B-C rule with this cap', text='There is no solution that meets the B-C rule with this cap', formatting=None, hyperlink=None, enumerated=True, marker='10.'), TextItem(self_ref='#/texts/139', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=45.36, t=38.190000000000055, r=50.24808, b=31.073571428571427, coord_origin=), charspan=(0, 1))], source=[], comments=[], orig='9', text='9', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/140', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=72.264, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 233))], source=[], comments=[], orig='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/141', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=10, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/142', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=10, bbox=BoundingBox(l=72.024, t=723.6, r=200.17543999999998, b=713.2077551020409, coord_origin=), charspan=(0, 28))], source=[], comments=[], orig='Liquidity Informed Weighting', text='Liquidity Informed Weighting', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/143', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=10, bbox=BoundingBox(l=72.024, t=705.5799999999999, r=572.7808000000002, b=665.1877551020408, coord_origin=), charspan=(0, 326))], source=[], comments=[], orig=\"The Liquidity Informed Weighting algorithm ensures that a portfolio of stocks can be traded in a specified number of days given the portfolio fund size and a daily trade limit based on the security's average daily traded volume (ADTV), while ensuring that the final security weights are close to their intended target weights.\", text=\"The Liquidity Informed Weighting algorithm ensures that a portfolio of stocks can be traded in a specified number of days given the portfolio fund size and a daily trade limit based on the security's average daily traded volume (ADTV), while ensuring that the final security weights are close to their intended target weights.\", formatting=None, hyperlink=None), TextItem(self_ref='#/texts/144', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=10, bbox=BoundingBox(l=72.024, t=645.5799999999999, r=342.07672, b=635.1877551020408, coord_origin=), charspan=(0, 69))], source=[], comments=[], orig='The security weights are adjusted based on their liquidity such that:', text='The security weights are adjusted based on their liquidity such that:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/145', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=10, bbox=BoundingBox(l=90.024, t=618.36856, r=403.02383999999995, b=596.7709880359434, coord_origin=), charspan=(0, 75))], source=[], comments=[], orig='21) |𝑤𝑖 -𝑐𝑤𝑖| ≤ 𝐷𝑎𝑦𝑠 𝑡𝑜 𝑡𝑟𝑎𝑑𝑒 ∗ 𝐴𝐷𝑇𝑉 𝑖 ∗ % 𝐴𝐷𝑇𝑉 𝑏𝑒𝑖𝑛𝑔 𝑡𝑟𝑎𝑑𝑒𝑑 𝑖𝑛 1 𝑑𝑎𝑦 𝐴𝑈𝑀', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/146', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=10, bbox=BoundingBox(l=72.024, t=446.59, r=533.74672, b=435.51020408163265, coord_origin=), charspan=(0, 123))], source=[], comments=[], orig='For security additions, the current weight in the portfolio cw i is 0. Security deletions are not taken into consideration.', text='For security additions, the current weight in the portfolio cw i is 0. Security deletions are not taken into consideration.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/147', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=10, bbox=BoundingBox(l=72.024, t=410.59, r=239.26904000000002, b=400.19775510204084, coord_origin=), charspan=(0, 38))], source=[], comments=[], orig='Liquidity Informed Weighting Algorithm', text='Liquidity Informed Weighting Algorithm', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/148', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=10, bbox=BoundingBox(l=72.024, t=392.59, r=552.3183200000003, b=367.17775510204086, coord_origin=), charspan=(0, 206))], source=[], comments=[], orig='Step 1 : Assign Target Weight to each security which is equal to the weight of security before applying Liquidity Informed Weighting but after incorporating the weighting scheme as per the index methodology', text='Step 1 : Assign Target Weight to each security which is equal to the weight of security before applying Liquidity Informed Weighting but after incorporating the weighting scheme as per the index methodology', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/149', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=10, bbox=BoundingBox(l=72.024, t=347.57, r=543.6836799999999, b=322.17775510204086, coord_origin=), charspan=(0, 177))], source=[], comments=[], orig='Step 2 : Calculate the Max Trade Limit (MTL) for each security in terms of its weight in the portfolio based on the below formula. Refer to above table for details on each term.', text='Step 2 : Calculate the Max Trade Limit (MTL) for each security in terms of its weight in the portfolio based on the below formula. Refer to above table for details on each term.', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/150', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=10, bbox=BoundingBox(l=90.024, t=305.35856, r=383.94383999999997, b=283.7609880359435, coord_origin=), charspan=(0, 70))], source=[], comments=[], orig='22) 𝑀𝑇𝐿𝑖 = 𝐷𝑎𝑦𝑠 𝑡𝑜 𝑡𝑟𝑎𝑑𝑒 ∗ 𝐴𝐷𝑇𝑉 𝑖 ∗ % 𝐴𝐷𝑇𝑉 𝑏𝑒𝑖𝑛𝑔 𝑡𝑟𝑎𝑑𝑒𝑑 𝑖𝑛 1 𝑑𝑎𝑦 𝐴𝑈𝑀', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/151', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=10, bbox=BoundingBox(l=72.024, t=266.80999999999995, r=549.10672, b=256.4177551020408, coord_origin=), charspan=(0, 118))], source=[], comments=[], orig='Step 3 : Calculate the Max Weight and Min Weight for each security using its MTL calculated in step 2 as shown below:', text='Step 3 : Calculate the Max Weight and Min Weight for each security using its MTL calculated in step 2 as shown below:', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/152', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=10, bbox=BoundingBox(l=72.024, t=253.79888000000005, r=207.45296, b=242.466863465982, coord_origin=), charspan=(0, 28))], source=[], comments=[], orig='𝑀𝑎𝑥 𝑊𝑒𝑖𝑔ℎ𝑡𝑖 = 𝑐𝑤𝑖 + 𝑀𝑇𝐿𝑖', text='𝑀𝑎𝑥 𝑊𝑒𝑖𝑔ℎ𝑡𝑖 = 𝑐𝑤𝑖 + 𝑀𝑇𝐿𝑖', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/153', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=10, bbox=BoundingBox(l=72.024, t=242.03888000000006, r=205.29296, b=230.706863465982, coord_origin=), charspan=(0, 28))], source=[], comments=[], orig='𝑀𝑖𝑛 𝑊𝑒𝑖𝑔ℎ𝑡𝑖 = 𝑐𝑤𝑖 - 𝑀𝑇𝐿𝑖', text='𝑀𝑖𝑛 𝑊𝑒𝑖𝑔ℎ𝑡𝑖 = 𝑐𝑤𝑖 - 𝑀𝑇𝐿𝑖', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/154', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=10, bbox=BoundingBox(l=72.024, t=215.41999999999996, r=567.9366399999997, b=189.3402040816327, coord_origin=), charspan=(0, 143))], source=[], comments=[], orig='Step 4 : For securities with Target weight i between Max Weight i and Min Weight i , the security weight (w i ) is set to the Target weight i .', text='Step 4 : For securities with Target weight i between Max Weight i and Min Weight i , the security weight (w i ) is set to the Target weight i .', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/155', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=10, bbox=BoundingBox(l=72.024, t=170.41999999999996, r=568.7612799999996, b=144.3402040816327, coord_origin=), charspan=(0, 255))], source=[], comments=[], orig=\"Step 5 : For securities with Target Weight i below Min Weight i or above the Max Weight i , the security weight (w i ) is set to Min Weight i or Max Weight i respectively and the sum of residual weights for all such 'n' securities are calculated as below:\", text=\"Step 5 : For securities with Target Weight i below Min Weight i or above the Max Weight i , the security weight (w i ) is set to Min Weight i or Max Weight i respectively and the sum of residual weights for all such 'n' securities are calculated as below:\", formatting=None, hyperlink=None), ListItem(self_ref='#/texts/156', parent=RefItem(cref='#/groups/1'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=10, bbox=BoundingBox(l=90.024, t=127.71488, r=322.4234, b=114.39686346598205, coord_origin=), charspan=(0, 53))], source=[], comments=[], orig='23) 𝑅𝑒𝑠𝑖𝑑𝑢𝑎𝑙 𝑊𝑒𝑖𝑔ℎ𝑡𝑠 = ∑ (𝑇𝑎𝑟𝑔𝑒𝑡 𝑊𝑒𝑖𝑔ℎ𝑡𝑖 - 𝑤𝑖 ) 𝑛 𝑖=1', text='𝑅𝑒𝑠𝑖𝑑𝑢𝑎𝑙 𝑊𝑒𝑖𝑔ℎ𝑡𝑠 = ∑ (𝑇𝑎𝑟𝑔𝑒𝑡 𝑊𝑒𝑖𝑔ℎ𝑡𝑖 - 𝑤𝑖 ) 𝑛 𝑖=1', formatting=None, hyperlink=None, enumerated=True, marker='23)'), TextItem(self_ref='#/texts/157', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=10, bbox=BoundingBox(l=42.0, t=38.190000000000055, r=50.24808, b=31.073571428571427, coord_origin=), charspan=(0, 2))], source=[], comments=[], orig='10', text='10', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/158', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=10, bbox=BoundingBox(l=72.264, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 233))], source=[], comments=[], orig='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/159', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=11, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/160', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=11, bbox=BoundingBox(l=72.024, t=723.6, r=569.13616, b=683.1877551020408, coord_origin=), charspan=(0, 289))], source=[], comments=[], orig='The individual security residual weight is positive for securities where there is shortfall in achieving the target weight and the residual weight is negative for securities where there is excess over the target weight. The sum of all residual weights can be positive or a negative number.', text='The individual security residual weight is positive for securities where there is shortfall in achieving the target weight and the residual weight is negative for securities where there is excess over the target weight. The sum of all residual weights can be positive or a negative number.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/161', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=11, bbox=BoundingBox(l=72.024, t=663.5799999999999, r=562.1752, b=637.5002040816327, coord_origin=), charspan=(0, 234))], source=[], comments=[], orig='Step 6 : The sum of residual weights from step 5 is redistributed to securities in step 4 in proportion of their existing security weights. The new weights after weight redistribution becomes the new Target Weight i of the security i.', text='Step 6 : The sum of residual weights from step 5 is redistributed to securities in step 4 in proportion of their existing security weights. The new weights after weight redistribution becomes the new Target Weight i of the security i.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/162', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=11, bbox=BoundingBox(l=72.024, t=618.5799999999999, r=563.5849600000003, b=593.1877551020408, coord_origin=), charspan=(0, 179))], source=[], comments=[], orig='Step 7 : If the assigned security weight (w i ) is between Max Weight i and Min Weight i for all securities then these will be the final security weights, else repeat steps 4 to 7', text='Step 7 : If the assigned security weight (w i ) is between Max Weight i and Min Weight i for all securities then these will be the final security weights, else repeat steps 4 to 7', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/163', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=11, bbox=BoundingBox(l=42.0, t=38.190000000000055, r=50.24808, b=31.073571428571427, coord_origin=), charspan=(0, 2))], source=[], comments=[], orig='11', text='11', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/164', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=11, bbox=BoundingBox(l=72.264, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 233))], source=[], comments=[], orig='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/165', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/166', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=72.024, t=723.6, r=179.14543999999998, b=713.2077551020409, coord_origin=), charspan=(0, 25))], source=[], comments=[], orig='Target Volatility Indexes', text='Target Volatility Indexes', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/167', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=72.024, t=705.5799999999999, r=573.4667199999999, b=665.1877551020408, coord_origin=), charspan=(0, 379))], source=[], comments=[], orig='Morningstar Target Volatility Indexes are designed to achieve a certain volatility target with variable exposure to the base index. The target exposure to the base index is based on the ratio of the target volatility to the measured historic volatility of the base index. The target exposure is monitored daily and is subject to both an exposure tolerance and a maximum exposure.', text='Morningstar Target Volatility Indexes are designed to achieve a certain volatility target with variable exposure to the base index. The target exposure to the base index is based on the ratio of the target volatility to the measured historic volatility of the base index. The target exposure is monitored daily and is subject to both an exposure tolerance and a maximum exposure.', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/168', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=72.024, t=639.5799999999999, r=212.77543999999997, b=629.1877551020408, coord_origin=), charspan=(0, 31))], source=[], comments=[], orig='Determining the Target Exposure', text='Determining the Target Exposure', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/169', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=72.024, t=621.5799999999999, r=558.9503199999999, b=581.1877551020408, coord_origin=), charspan=(0, 340))], source=[], comments=[], orig='The target exposure of the Morningstar target volatility indexes to the base index is determined by the formula below, with the aim of maintaining a target volatility. It is based on the ratio between the target volatility and the measured historic volatility of the base index and will vary between zero and the maximum allowable exposure.', text='The target exposure of the Morningstar target volatility indexes to the base index is determined by the formula below, with the aim of maintaining a target volatility. It is based on the ratio between the target volatility and the measured historic volatility of the base index and will vary between zero and the maximum allowable exposure.', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/170', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=90.024, t=569.9382605454535, r=364.49837746619033, b=539.9499828312194, coord_origin=), charspan=(0, 92))], source=[], comments=[], orig='24) ( ) \\uf0f7 \\uf0f7 \\uf0f8 \\uf0f6 \\uf0e7 \\uf0e7 \\uf0e8 \\uf0e6 = measured_volatility target_volatility max_exposure, w t Target min', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/171', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=72.024, t=518.11, r=103.46672000000001, b=507.7177551020408, coord_origin=), charspan=(0, 6))], source=[], comments=[], orig='Where:', text='Where:', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/172', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=72.024, t=503.10999999999996, r=161.18672, b=492.7177551020408, coord_origin=), charspan=(0, 19))], source=[], comments=[], orig='max exposure = 150%', text='max exposure = 150%', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/173', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=72.024, t=488.10999999999996, r=287.81672000000003, b=477.7177551020408, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='target volatility = Target volatility chosen for the index', text='target volatility = Target volatility chosen for the index', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/174', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=72.024, t=458.10999999999996, r=570.22672, b=417.7177551020408, coord_origin=), charspan=(0, 291))], source=[], comments=[], orig='To mitigate daily rebalancing of Target Volatility Indexes, the target exposure is updated only when there is a change that is greater than the exposure tolerance percentage. The current exposure of the index on the inception date shall be equal to the target exposure on the inception date.', text='To mitigate daily rebalancing of Target Volatility Indexes, the target exposure is updated only when there is a change that is greater than the exposure tolerance percentage. The current exposure of the index on the inception date shall be equal to the target exposure on the inception date.', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/175', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=90.024, t=398.74816990204977, r=191.6487424551524, b=384.30300230962376, coord_origin=), charspan=(0, 21))], source=[], comments=[], orig='25) Target(0) w w = 0', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/176', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=72.024, t=368.09, r=387.79672, b=357.69775510204084, coord_origin=), charspan=(0, 78))], source=[], comments=[], orig='On any subsequent date t, the current exposure shall be determined as follows:', text='On any subsequent date t, the current exposure shall be determined as follows:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/177', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=90.024, t=340.89516857399036, r=366.2669662966399, b=295.87154368342004, coord_origin=), charspan=(0, 169))], source=[], comments=[], orig='26) ( ) ( ) ( ) ( ) ( ) ( ) \\uf0ef \\uf0fe \\uf0ef \\uf0fd \\uf0fc \\uf0ef \\uf0ee \\uf0ef \\uf0ed \\uf0ec \\uf0d7 -\\uf03c \\uf0d7 + \\uf03e = ---otherwise w tolerance w if w w tolerance w if w w w t t Target t t Target t Target t t Target t 1 1 1 1 1', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/178', parent=RefItem(cref='#/groups/2'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=72.024, t=265.13, r=168.02672, b=254.73775510204086, coord_origin=), charspan=(0, 21))], source=[], comments=[], orig='Where tolerance = 10%', text='Where tolerance = 10%', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/179', parent=RefItem(cref='#/groups/2'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=77.424, t=250.13, r=149.42672000000002, b=239.05020408163261, coord_origin=), charspan=(0, 4))], source=[], comments=[], orig='wt =', text='wt =', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/180', parent=RefItem(cref='#/groups/2'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=154.82, t=250.13, r=315.17672, b=239.73775510204086, coord_origin=), charspan=(0, 40))], source=[], comments=[], orig='Realized exposure of the index on date t', text='Realized exposure of the index on date t', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/181', parent=RefItem(cref='#/groups/2'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=77.424, t=235.13, r=307.37672000000003, b=224.05020408163261, coord_origin=), charspan=(0, 52))], source=[], comments=[], orig='wTarget (t) = Target exposure of the index on date t', text='wTarget (t) = Target exposure of the index on date t', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/182', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=72.024, t=199.10000000000002, r=159.82544, b=188.70775510204078, coord_origin=), charspan=(0, 20))], source=[], comments=[], orig='Measuring Volatility', text='Measuring Volatility', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/183', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=72.024, t=181.10000000000002, r=552.7345600000001, b=155.70775510204078, coord_origin=), charspan=(0, 183))], source=[], comments=[], orig='The measured volatility of the base index is taken as either the trailing 20-business-day historic volatility or the trailing 60business-day historic volatility, whichever is greater.', text='The measured volatility of the base index is taken as either the trailing 20-business-day historic volatility or the trailing 60business-day historic volatility, whichever is greater.', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/184', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=90.024, t=136.17915202633935, r=335.28497311955994, b=123.60872125738729, coord_origin=), charspan=(0, 54))], source=[], comments=[], orig='27) 60 ) , 20 max( _ t t Vol Vol volatility measured =', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/185', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=72.024, t=107.54399999999998, r=103.46672000000001, b=97.15175510204085, coord_origin=), charspan=(0, 6))], source=[], comments=[], orig='Where:', text='Where:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/186', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=90.024, t=89.49002212469554, r=388.0568672642445, b=56.233254941570294, coord_origin=), charspan=(0, 168))], source=[], comments=[], orig='28) \\uf0fa \\uf0fa \\uf0fb \\uf0f9 \\uf0ea \\uf0ea \\uf0eb \\uf0e9 \\uf0f7 \\uf0f7 \\uf0f8 \\uf0f6 \\uf0e7 \\uf0e7 \\uf0e8 \\uf0e6 \\uf0f7 \\uf0f7 \\uf0f8 \\uf0f6 \\uf0e7 \\uf0e7 \\uf0e8 \\uf0e6 \\uf0f7 -\\uf0f7 \\uf0f8 \\uf0f6 \\uf0e7 \\uf0e7 \\uf0e8 \\uf0e6 \\uf0b4 \\uf0b4 = \\uf0e5 \\uf0e5 = ---= ---2 20 1 1 20 1 1 2 t Ln 20 1 Ln 20 1 19 20 252 Vol20 k k t k t k k t k t B B B B', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/187', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=42.0, t=38.190000000000055, r=50.24808, b=31.073571428571427, coord_origin=), charspan=(0, 2))], source=[], comments=[], orig='12', text='12', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/188', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=72.264, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 233))], source=[], comments=[], orig='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/189', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=13, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/190', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=13, bbox=BoundingBox(l=72.024, t=695.74, r=92.91072, b=685.3477551020409, coord_origin=), charspan=(0, 4))], source=[], comments=[], orig='And:', text='And:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/191', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=13, bbox=BoundingBox(l=90.024, t=674.613420054553, r=396.5298715938111, b=641.1506479768082, coord_origin=), charspan=(0, 168))], source=[], comments=[], orig='29) \\uf0fa \\uf0fa \\uf0fb \\uf0f9 \\uf0ea \\uf0ea \\uf0eb \\uf0e9 \\uf0f7 \\uf0f7 \\uf0f8 \\uf0f6 \\uf0e7 \\uf0e7 \\uf0e8 \\uf0e6 \\uf0f7 \\uf0f7 \\uf0f8 \\uf0f6 \\uf0e7 \\uf0e7 \\uf0e8 \\uf0e6 \\uf0f7 -\\uf0f7 \\uf0f8 \\uf0f6 \\uf0e7 \\uf0e7 \\uf0e8 \\uf0e6 \\uf0b4 \\uf0b4 = \\uf0e5 \\uf0e5 = ---= ---2 60 1 1 60 1 1 2 t Ln 60 1 Ln 60 1 59 60 252 Vol60 k k t k t k k t k t B B B B', text='', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/192', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=13, bbox=BoundingBox(l=72.024, t=608.74, r=183.94544, b=598.3477551020409, coord_origin=), charspan=(0, 25))], source=[], comments=[], orig='Excess Return Calculation', text='Excess Return Calculation', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/193', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=13, bbox=BoundingBox(l=72.024, t=591.4599999999999, r=571.8740799999999, b=524.9977551020409, coord_origin=), charspan=(0, 521))], source=[], comments=[], orig=\"The excess return is equal to the total return (described in the Total/Gross and Net Calculations section below) minus the cash borrowing cost associated with holding the base index. The simplest way to explain this is to view it as an opportunity cost of investing in the base index instead of a cash investment. Thus, the total return is 'dragged' by the cash borrowing rate to arrive at the return in excess of the expected return of a pure cash investment. Morningstar uses the SOFR in USD as the cash borrowing rate.\", text=\"The excess return is equal to the total return (described in the Total/Gross and Net Calculations section below) minus the cash borrowing cost associated with holding the base index. The simplest way to explain this is to view it as an opportunity cost of investing in the base index instead of a cash investment. Thus, the total return is 'dragged' by the cash borrowing rate to arrive at the return in excess of the expected return of a pure cash investment. Morningstar uses the SOFR in USD as the cash borrowing rate.\", formatting=None, hyperlink=None), TextItem(self_ref='#/texts/194', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=13, bbox=BoundingBox(l=72.024, t=506.71, r=292.97672, b=496.31775510204085, coord_origin=), charspan=(0, 54))], source=[], comments=[], orig='The Excess return calculation equation is shown below:', text='The Excess return calculation equation is shown below:', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/195', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=13, bbox=BoundingBox(l=72.024, t=477.01912, r=174.62672, b=465.9822661874198, coord_origin=), charspan=(0, 22))], source=[], comments=[], orig='If 𝑤𝑡-1 ≤ 100% then:', text='If 𝑤𝑡-1 ≤ 100% then:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/196', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=13, bbox=BoundingBox(l=90.024, t=449.36512, r=441.25960000000003, b=427.9932866752247, coord_origin=), charspan=(0, 97))], source=[], comments=[], orig='30) 𝐸𝑅𝑡 = 𝐸𝑅𝑡-1 × [2 - ( 𝑆𝑂𝐹𝑅𝑡 𝑆𝑂𝐹𝑅𝑡-1 )] × [𝑤 𝑡-1 ⋅ ( 𝐵𝑡 𝐵𝑡-1 ) + (1 - 𝑤𝑡-1 ) ⋅ ( 𝐹𝐹𝐸𝑡 𝐹𝐹𝐸𝑡-1 )]', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/197', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=13, bbox=BoundingBox(l=72.024, t=412.75, r=92.79072, b=402.35775510204087, coord_origin=), charspan=(0, 5))], source=[], comments=[], orig='Else:', text='Else:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/198', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=13, bbox=BoundingBox(l=90.024, t=385.40511999999995, r=446.7796, b=364.01328667522466, coord_origin=), charspan=(0, 99))], source=[], comments=[], orig='31) 𝐸𝑅𝑡 = 𝐸𝑅𝑡-1 × [2 - ( 𝑆𝑂𝐹𝑅𝑡 𝑆𝑂𝐹𝑅𝑡-1 )] × [𝑤 𝑡-1 ⋅ ( 𝐵𝑡 𝐵𝑡-1 ) + (1 - 𝑤𝑡-1 ) ⋅ ( 𝑆𝑂𝐹𝑅𝑡 𝑆𝑂𝐹𝑅𝑡-1 )]', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/199', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=13, bbox=BoundingBox(l=72.024, t=346.60999999999996, r=101.79072, b=336.2177551020408, coord_origin=), charspan=(0, 6))], source=[], comments=[], orig='where:', text='where:', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/200', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=13, bbox=BoundingBox(l=72.024, t=174.62, r=243.57456000000002, b=164.22775510204087, coord_origin=), charspan=(0, 39))], source=[], comments=[], orig='Trading Cost Adjustment Factor, or TCAF', text='Trading Cost Adjustment Factor, or TCAF', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/201', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=13, bbox=BoundingBox(l=72.024, t=156.62, r=548.86672, b=131.22775510204087, coord_origin=), charspan=(0, 248))], source=[], comments=[], orig='To account for higher transaction and portfolio management costs associated with the target volatility strategy, a flat adjustment factor is applied to the calculated index level to arrive at the final, published index level for volatility indexes.', text='To account for higher transaction and portfolio management costs associated with the target volatility strategy, a flat adjustment factor is applied to the calculated index level to arrive at the final, published index level for volatility indexes.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/202', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=13, bbox=BoundingBox(l=72.024, t=111.62, r=427.03672, b=100.54020408163262, coord_origin=), charspan=(0, 95))], source=[], comments=[], orig='On any index business day, the final adjusted index level I t , shall be calculated as follows:', text='On any index business day, the final adjusted index level I t , shall be calculated as follows:', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/203', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=13, bbox=BoundingBox(l=42.0, t=38.190000000000055, r=50.24808, b=31.073571428571427, coord_origin=), charspan=(0, 2))], source=[], comments=[], orig='13', text='13', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/204', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=13, bbox=BoundingBox(l=72.264, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 233))], source=[], comments=[], orig='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/205', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=14, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/206', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=14, bbox=BoundingBox(l=90.024, t=715.3057843604539, r=313.9072807197847, b=687.1692940157513, coord_origin=), charspan=(0, 89))], source=[], comments=[], orig='32) \\uf0fa \\uf0fb \\uf0f9 \\uf0ea \\uf0eb \\uf0e9 \\uf0f7 \\uf0f8 \\uf0f6 \\uf0e7 \\uf0e8 \\uf0e6 \\uf0b4 -\\uf0f7 \\uf0b4 \\uf0f7 \\uf0f8 \\uf0f6 \\uf0e7 \\uf0e7 \\uf0e8 \\uf0e6 \\uf0b4 = --360 1 1 1 n TCAF ER ER I I t t t t', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/207', parent=RefItem(cref='#/groups/3'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=14, bbox=BoundingBox(l=72.024, t=664.42, r=105.86671999999999, b=654.0277551020408, coord_origin=), charspan=(0, 6))], source=[], comments=[], orig='Where:', text='Where:', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/208', parent=RefItem(cref='#/groups/3'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=14, bbox=BoundingBox(l=77.424, t=649.66, r=117.98671999999999, b=638.5802040816327, coord_origin=), charspan=(0, 5))], source=[], comments=[], orig='ERt =', text='ERt =', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/209', parent=RefItem(cref='#/groups/3'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=14, bbox=BoundingBox(l=123.26, t=649.66, r=249.65672, b=639.2677551020408, coord_origin=), charspan=(0, 31))], source=[], comments=[], orig='Unadjusted index level on day t', text='Unadjusted index level on day t', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/210', parent=RefItem(cref='#/groups/3'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=14, bbox=BoundingBox(l=77.424, t=634.66, r=117.98671999999999, b=624.2677551020408, coord_origin=), charspan=(0, 3))], source=[], comments=[], orig='n =', text='n =', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/211', parent=RefItem(cref='#/groups/3'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=14, bbox=BoundingBox(l=123.26, t=634.66, r=266.69672, b=624.2677551020408, coord_origin=), charspan=(0, 34))], source=[], comments=[], orig='Number of days between t and (t-1)', text='Number of days between t and (t-1)', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/212', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=14, bbox=BoundingBox(l=42.0, t=38.190000000000055, r=50.24808, b=31.073571428571427, coord_origin=), charspan=(0, 2))], source=[], comments=[], orig='14', text='14', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/213', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=14, bbox=BoundingBox(l=72.264, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 233))], source=[], comments=[], orig='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/214', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=15, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/215', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=15, bbox=BoundingBox(l=72.024, t=723.6, r=163.78544, b=713.2077551020409, coord_origin=), charspan=(0, 19))], source=[], comments=[], orig='Exchange-Rate Rules', text='Exchange-Rate Rules', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/216', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=15, bbox=BoundingBox(l=72.024, t=706.42, r=568.4379200000001, b=654.0277551020408, coord_origin=), charspan=(0, 408))], source=[], comments=[], orig='Most exchange rates are quoted against the U.S. dollar, as it is the most traded currency globally. Exchange rates are used to calculate indexes in different currencies other than the local currency and to convert the local prices of securities to a single currency in case of multicurrency exposure indexes. Morningstar Indexes typically computes the index level in U.S. dollars, which is the base currency.', text='Most exchange rates are quoted against the U.S. dollar, as it is the most traded currency globally. Exchange rates are used to calculate indexes in different currencies other than the local currency and to convert the local prices of securities to a single currency in case of multicurrency exposure indexes. Morningstar Indexes typically computes the index level in U.S. dollars, which is the base currency.', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/217', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=15, bbox=BoundingBox(l=72.024, t=643.66, r=194.05543999999998, b=633.2677551020408, coord_origin=), charspan=(0, 25))], source=[], comments=[], orig='Exchange-Rate Data Source', text='Exchange-Rate Data Source', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/218', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=15, bbox=BoundingBox(l=72.024, t=626.38, r=555.4273600000001, b=588.0277551020408, coord_origin=), charspan=(0, 259))], source=[], comments=[], orig='Morningstar sources exchange-rate data from WMR. WMR Closing Spot Rates are used for end-of-day index calculations. WMR Intraday Spot Rates are used for real-time index calculations. WMR Closing Forward Rates are used for end-of-day hedged index calculations.', text='Morningstar sources exchange-rate data from WMR. WMR Closing Spot Rates are used for end-of-day index calculations. WMR Intraday Spot Rates are used for real-time index calculations. WMR Closing Forward Rates are used for end-of-day hedged index calculations.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/219', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=15, bbox=BoundingBox(l=72.024, t=570.3399999999999, r=573.10712, b=517.9177551020408, coord_origin=), charspan=(0, 422))], source=[], comments=[], orig=\"As per WMR's practice, national holidays in the following four financial centers will be monitored: the United States, the United Kingdom, Germany, and Japan, for data service on a particular day. WMR closing spot and forward rates will be produced if two or more of these centers are open. WMR rates will not be produced if only one center is open. This affects the WMR exchange rates that are used in index calculations.\", text=\"As per WMR's practice, national holidays in the following four financial centers will be monitored: the United States, the United Kingdom, Germany, and Japan, for data service on a particular day. WMR closing spot and forward rates will be produced if two or more of these centers are open. WMR rates will not be produced if only one center is open. This affects the WMR exchange rates that are used in index calculations.\", formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/220', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=15, bbox=BoundingBox(l=72.024, t=493.63, r=260.65544, b=483.23775510204086, coord_origin=), charspan=(0, 41))], source=[], comments=[], orig='Standard Exchange-Rate Index Calculations', text='Standard Exchange-Rate Index Calculations', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/221', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=15, bbox=BoundingBox(l=72.024, t=476.34999999999997, r=564.3423999999999, b=423.95775510204084, coord_origin=), charspan=(0, 386))], source=[], comments=[], orig=\"Unless otherwise specified in the index rulebook, Morningstar uses the U.K. 4 p.m. spot rate for most of its standard index calculations. However, in scenarios where the U.K. 4 p.m. rate is not available, Morningstar will use the U.K. 12 p.m. rate for its index calculations. On a typical business day, the rate published for that day will be used for Morningstar Indexes' calculations.\", text=\"Unless otherwise specified in the index rulebook, Morningstar uses the U.K. 4 p.m. spot rate for most of its standard index calculations. However, in scenarios where the U.K. 4 p.m. rate is not available, Morningstar will use the U.K. 12 p.m. rate for its index calculations. On a typical business day, the rate published for that day will be used for Morningstar Indexes' calculations.\", formatting=None, hyperlink=None), TextItem(self_ref='#/texts/222', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=15, bbox=BoundingBox(l=72.024, t=406.39, r=558.5290400000001, b=367.89775510204083, coord_origin=), charspan=(0, 282))], source=[], comments=[], orig=\"On a full no-service day with no WMR rates produced, Morningstar will use the previous day's rate of that specific cutoff time. For example, if Jan. 1 is a no-service day where neither the U.K. 4 p.m. rate nor the U.K. 12 p.m. rate is published, we use the Dec. 31 U.K. 4 p.m. rate.\", text=\"On a full no-service day with no WMR rates produced, Morningstar will use the previous day's rate of that specific cutoff time. For example, if Jan. 1 is a no-service day where neither the U.K. 4 p.m. rate nor the U.K. 12 p.m. rate is published, we use the Dec. 31 U.K. 4 p.m. rate.\", formatting=None, hyperlink=None), TextItem(self_ref='#/texts/223', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=15, bbox=BoundingBox(l=72.024, t=350.33, r=567.1062400000001, b=311.9777551020408, coord_origin=), charspan=(0, 290))], source=[], comments=[], orig=\"On partial-day service, if the specific rate used for index calculations is not published, Morningstar will take the previously available (indicative) rate for that day. If that indicative rate is also not available, Morningstar will use the previous da y's rate that would be the best fit.\", text=\"On partial-day service, if the specific rate used for index calculations is not published, Morningstar will take the previously available (indicative) rate for that day. If that indicative rate is also not available, Morningstar will use the previous da y's rate that would be the best fit.\", formatting=None, hyperlink=None), TextItem(self_ref='#/texts/224', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=15, bbox=BoundingBox(l=72.024, t=294.28999999999996, r=571.78674, b=213.9377551020408, coord_origin=), charspan=(0, 642))], source=[], comments=[], orig=\"For example, assuming Dec. 24 is a day when the foreign exchange market closes early, the rate for that day is published until 1 p.m. only. In this case, the U.K. 4 p.m. rate will not be published for Dec. 24 since it is beyond the service cutoff time (1 p.m.). However, the U.K. 12 p.m. rate would be available because it is within the cutoff for that day. So, Morningstar will use the U.K. 12 p.m. rate for its index calculations since it is the latest available indicative rate for that day. However, in the a bsence of the U.K. 12 p.m. rate on Dec. 24, Morningstar will use the previous day's ratethat is, the U.K. 4 p.m. rate of Dec. 23.\", text=\"For example, assuming Dec. 24 is a day when the foreign exchange market closes early, the rate for that day is published until 1 p.m. only. In this case, the U.K. 4 p.m. rate will not be published for Dec. 24 since it is beyond the service cutoff time (1 p.m.). However, the U.K. 12 p.m. rate would be available because it is within the cutoff for that day. So, Morningstar will use the U.K. 12 p.m. rate for its index calculations since it is the latest available indicative rate for that day. However, in the a bsence of the U.K. 12 p.m. rate on Dec. 24, Morningstar will use the previous day's ratethat is, the U.K. 4 p.m. rate of Dec. 23.\", formatting=None, hyperlink=None), TextItem(self_ref='#/texts/225', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=15, bbox=BoundingBox(l=72.024, t=196.34000000000003, r=571.6060799999997, b=171.90775510204082, coord_origin=), charspan=(0, 243))], source=[], comments=[], orig='The same procedures will be followed for any other customized rate such as Japan 10 a.m., Singapore 5:30 p.m., and so on. In case of an unforeseen event or a service being halted for a few hours, partial-day service treatment will be followed.', text='The same procedures will be followed for any other customized rate such as Japan 10 a.m., Singapore 5:30 p.m., and so on. In case of an unforeseen event or a service being halted for a few hours, partial-day service treatment will be followed.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/226', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=15, bbox=BoundingBox(l=42.0, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 236))], source=[], comments=[], orig='15 ©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='15 ©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/227', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=16, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/228', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=16, bbox=BoundingBox(l=72.024, t=702.5799999999999, r=184.06544, b=692.1877551020408, coord_origin=), charspan=(0, 25))], source=[], comments=[], orig='JST FX Index Calculations', text='JST FX Index Calculations', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/229', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=16, bbox=BoundingBox(l=72.024, t=669.5799999999999, r=556.0537599999999, b=644.1877551020408, coord_origin=), charspan=(0, 182))], source=[], comments=[], orig=\"The JST FX variants of Morningstar indexes are calculated in Japanese yen by applying 10 a.m. Japan Standard Time spot exchange rates 1 on the previous day's underlying index levels.\", text=\"The JST FX variants of Morningstar indexes are calculated in Japanese yen by applying 10 a.m. Japan Standard Time spot exchange rates 1 on the previous day's underlying index levels.\", formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/230', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=16, bbox=BoundingBox(l=90.024, t=618.12856, r=444.01120000000003, b=595.076863465982, coord_origin=), charspan=(0, 101))], source=[], comments=[], orig='33) 𝐼𝑛𝑑𝑒𝑥 𝐿𝑒𝑣𝑒𝑙𝐽𝑃𝑌,𝑡 = 𝐼𝑛𝑑𝑒𝑥 𝐿𝑒𝑣𝑒𝑙𝐽𝑃𝑌,𝑡-1 ∗ 𝐼𝑛𝑑𝑒𝑥 𝐿𝑒𝑣𝑒𝑙𝑈𝑆𝐷,𝑡-1 𝐼𝑛𝑑𝑒𝑥 𝐿𝑒𝑣𝑒𝑙𝑈𝑆𝐷,𝑡-2 ∗ 𝐹𝑋𝑅𝑎𝑡𝑒𝑡 𝐹𝑋𝑅𝑎𝑡𝑒𝑡-1', text='', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/231', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=16, bbox=BoundingBox(l=72.024, t=570.5799999999999, r=103.46672000000001, b=560.1877551020408, coord_origin=), charspan=(0, 6))], source=[], comments=[], orig='Where:', text='Where:', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/232', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=16, bbox=BoundingBox(l=72.024, t=434.53000000000003, r=565.8570400000001, b=408.95775510204084, coord_origin=), charspan=(0, 243))], source=[], comments=[], orig='The source data for exchange rates 2 used in the JST FX index calculation is WMR 10 a.m. JST fixing rates. In the event when 10 a.m. JST rates are not available, Morningstar will use the 4 p.m. London time exchange rates from the previous day.', text='The source data for exchange rates 2 used in the JST FX index calculation is WMR 10 a.m. JST fixing rates. In the event when 10 a.m. JST rates are not available, Morningstar will use the 4 p.m. London time exchange rates from the previous day.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/233', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=16, bbox=BoundingBox(l=72.024, t=85.04399999999998, r=329.42728000000005, b=75.15838775510201, coord_origin=), charspan=(0, 100))], source=[], comments=[], orig='1 Morningstar reserves the right to change the exchange rates for calculating the JST 10 AM indexes.', text='1 Morningstar reserves the right to change the exchange rates for calculating the JST 10 AM indexes.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/234', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=16, bbox=BoundingBox(l=72.024, t=72.80399999999997, r=305.58128000000005, b=62.918387755102, coord_origin=), charspan=(0, 86))], source=[], comments=[], orig='2 WMR 4PM London exchange rates are being used in calculations prior to November 2017.', text='2 WMR 4PM London exchange rates are being used in calculations prior to November 2017.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/235', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=16, bbox=BoundingBox(l=42.0, t=38.190000000000055, r=50.24808, b=31.073571428571427, coord_origin=), charspan=(0, 2))], source=[], comments=[], orig='16', text='16', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/236', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=16, bbox=BoundingBox(l=72.264, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 233))], source=[], comments=[], orig='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/237', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=17, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/238', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=17, bbox=BoundingBox(l=72.024, t=723.6, r=182.74543999999997, b=713.2077551020409, coord_origin=), charspan=(0, 23))], source=[], comments=[], orig='Currency-Hedged Indexes', text='Currency-Hedged Indexes', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/239', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=17, bbox=BoundingBox(l=72.024, t=705.5799999999999, r=567.94264, b=665.1877551020408, coord_origin=), charspan=(0, 332))], source=[], comments=[], orig=\"Currency-hedged indexes are long the benchmark index and short currency forwards whose notional amount is based on the weight of foreign currencies ( ' currency exposure ' ) in the underlying index. The hedge ratio -the proportion of the portfolio's currency exposure that is hedged -can vary as per the Hedged Index specifications.\", text=\"Currency-hedged indexes are long the benchmark index and short currency forwards whose notional amount is based on the weight of foreign currencies ( ' currency exposure ' ) in the underlying index. The hedge ratio -the proportion of the portfolio's currency exposure that is hedged -can vary as per the Hedged Index specifications.\", formatting=None, hyperlink=None), TextItem(self_ref='#/texts/240', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=17, bbox=BoundingBox(l=72.024, t=647.8000000000001, r=565.2152799999999, b=591.2677551020408, coord_origin=), charspan=(0, 464))], source=[], comments=[], orig='The index is rebalanced monthly, usually on the last trading day of the month, 3 using foreign currency weights and corresponding notional amounts determined as of one business day before the rebalance date . This approach ensures that index calculation closely resembles the actual implementation lag investors face. 4 New forward positions are effective at the rebalance effective date, which is at the opening on the next business day after the rebalancing day.', text='The index is rebalanced monthly, usually on the last trading day of the month, 3 using foreign currency weights and corresponding notional amounts determined as of one business day before the rebalance date . This approach ensures that index calculation closely resembles the actual implementation lag investors face. 4 New forward positions are effective at the rebalance effective date, which is at the opening on the next business day after the rebalancing day.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/241', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=17, bbox=BoundingBox(l=72.024, t=572.62, r=571.8202399999998, b=472.19775510204084, coord_origin=), charspan=(0, 735))], source=[], comments=[], orig='To account for the difference in the rebalance date and the date on which the notional amounts are determined, a monthly adjustment factor is applied in the hedge return calculation. The notional amounts hedged remain constant throughout the month and are not modified on account of price movement, corporate action, or rebalance and reconstitution of the underlying index. The daily index calculation marks to market the one-month forward contracts using a linear interpolation of spot and forward prices based on the one-month forwards. All the spot and forward rates are denominated in terms of foreign currency per unit of home currency. The underlying index levels and the hedged index levels are denominated in the home currency.', text='To account for the difference in the rebalance date and the date on which the notional amounts are determined, a monthly adjustment factor is applied in the hedge return calculation. The notional amounts hedged remain constant throughout the month and are not modified on account of price movement, corporate action, or rebalance and reconstitution of the underlying index. The daily index calculation marks to market the one-month forward contracts using a linear interpolation of spot and forward prices based on the one-month forwards. All the spot and forward rates are denominated in terms of foreign currency per unit of home currency. The underlying index levels and the hedged index levels are denominated in the home currency.', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/242', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=17, bbox=BoundingBox(l=72.024, t=447.54999999999995, r=259.33544, b=437.1577551020408, coord_origin=), charspan=(0, 41))], source=[], comments=[], orig='Monthly Currency Hedge Index Calculations', text='Monthly Currency Hedge Index Calculations', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/243', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=17, bbox=BoundingBox(l=72.024, t=429.54999999999995, r=266.81672000000003, b=419.1577551020408, coord_origin=), charspan=(0, 49))], source=[], comments=[], orig='The monthly hedge ratio is calculated as follows:', text='The monthly hedge ratio is calculated as follows:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/244', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=17, bbox=BoundingBox(l=90.024, t=392.00512, r=435.0892, b=371.9474112451862, coord_origin=), charspan=(0, 84))], source=[], comments=[], orig='34) 𝐻𝑅 = 𝑀𝐴𝐹 ∗ ∑ 𝑝 𝑖 ∗ {𝑊 𝑖1-1𝑑 𝑛 𝑖 ∗ 𝐹𝑋𝑅𝑎𝑡𝑒𝑖1-1𝑑 ∗ ( 1 𝐹𝐹𝑅𝑎𝑡𝑒 i1 -1 𝐹𝐹𝑅𝑎𝑡𝑒 i2 ) }', text='', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/245', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=17, bbox=BoundingBox(l=90.024, t=337.98512, r=211.74658, b=316.6132866752247, coord_origin=), charspan=(0, 40))], source=[], comments=[], orig='35) 𝑀𝐴𝐹 = 𝐻𝑒𝑑𝑔𝑒𝑑𝐼𝑛𝑑𝑒𝑥 1-1d 𝐻𝑒𝑑𝑔𝑒𝑑𝐼𝑛𝑑𝑒𝑥1', text='', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/246', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=17, bbox=BoundingBox(l=90.024, t=285.06512, r=385.75960000000003, b=263.6932866752247, coord_origin=), charspan=(0, 72))], source=[], comments=[], orig='36) 𝐻𝑒𝑑𝑔𝑒𝑑𝐼𝑛𝑑𝑒𝑥2 = 𝐻𝑒𝑑𝑔𝑒𝑑𝐼𝑛𝑑𝑒𝑥 1 ∗ ( 𝑈𝑛ℎ𝑒𝑑𝑔𝑒𝑑𝐼𝑛𝑑𝑒𝑥2 𝑈𝑛ℎ𝑒𝑑𝑔𝑒𝑑𝐼𝑛𝑑𝑒𝑥1 +𝐻𝑅)', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/247', parent=RefItem(cref='#/tables/8'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=17, bbox=BoundingBox(l=72.024, t=92.03399999999999, r=570.83776, b=75.73236734693876, coord_origin=), charspan=(0, 267))], source=[], comments=[], orig='3 Some indexes, like the Morningstar Developed Markets ex-US Factor Tilt Hedged Index and Morningstar Emerging Markets Factor Tilt Hedged Index, rebalance at the close of the third Friday of the month, coinciding with the rebalance schedule of the underlying indexes.', text='3 Some indexes, like the Morningstar Developed Markets ex-US Factor Tilt Hedged Index and Morningstar Emerging Markets Factor Tilt Hedged Index, rebalance at the close of the third Friday of the month, coinciding with the rebalance schedule of the underlying indexes.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/248', parent=RefItem(cref='#/tables/8'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=17, bbox=BoundingBox(l=72.024, t=71.99400000000003, r=263.52728, b=64.6923673469388, coord_origin=), charspan=(0, 73))], source=[], comments=[], orig='4 For the purposes of showing back-tested performance, no lag is assumed.', text='4 For the purposes of showing back-tested performance, no lag is assumed.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/249', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=17, bbox=BoundingBox(l=42.0, t=38.190000000000055, r=50.24808, b=31.073571428571427, coord_origin=), charspan=(0, 2))], source=[], comments=[], orig='17', text='17', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/250', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=17, bbox=BoundingBox(l=72.264, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 233))], source=[], comments=[], orig='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/251', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=18, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/252', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=18, bbox=BoundingBox(l=171.02, t=723.6, r=524.4324799999999, b=698.1877551020408, coord_origin=), charspan=(0, 148))], source=[], comments=[], orig='the rebalance effective date (if calculated by Cirrus), or at the open of the rebalance date (rebalance effective date t-1: if calculated by Amber).', text='the rebalance effective date (if calculated by Cirrus), or at the open of the rebalance date (rebalance effective date t-1: if calculated by Amber).', formatting=None, hyperlink=None, level=1), SectionHeaderItem(self_ref='#/texts/253', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=18, bbox=BoundingBox(l=72.024, t=513.67, r=245.29543999999999, b=503.2777551020408, coord_origin=), charspan=(0, 39))], source=[], comments=[], orig='Daily Currency Hedge Index Calculations', text='Daily Currency Hedge Index Calculations', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/254', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=18, bbox=BoundingBox(l=72.024, t=495.66999999999996, r=262.25672000000003, b=485.2777551020408, coord_origin=), charspan=(0, 48))], source=[], comments=[], orig='The daily hedge impact is calculated as follows:', text='The daily hedge impact is calculated as follows:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/255', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=18, bbox=BoundingBox(l=90.024, t=458.12512, r=482.2696, b=436.95020408163265, coord_origin=), charspan=(0, 97))], source=[], comments=[], orig='37) 𝐻𝑅𝑡 = 𝑀𝐴𝐹 ∗ ∑ 𝑝 𝑖 ∗ {𝑊 𝑖1-1𝑑 𝑛 𝑖 ∗ 𝐹𝑋𝑅𝑎𝑡𝑒𝑖1-1𝑑 ∗ ( 1 𝐹𝐹𝑅𝑎𝑡𝑒 i1 -1 𝐹𝐹𝑅𝑎𝑡𝑒𝐼𝑛𝑡𝑒𝑟𝑝𝑜𝑙𝑎𝑡𝑒𝑑 i,t )', text='', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/256', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=18, bbox=BoundingBox(l=90.024, t=404.12512, r=450.48375999999996, b=384.08741124518616, coord_origin=), charspan=(0, 78))], source=[], comments=[], orig='38) 𝐹𝐹𝑅𝑎𝑡𝑒𝐼𝑛𝑡𝑒𝑟𝑝𝑜𝑙𝑎𝑡𝑒𝑑𝑖,𝑡 = 𝐹𝑋𝑅𝑎𝑡𝑒𝑖,𝑡 + ( 𝐷-𝑑𝑡 𝐷 ∗ (𝐹𝐹𝑅𝑎𝑡𝑒𝑖,𝑡 - 𝐹𝑋𝑅𝑎𝑡𝑒 𝑖,𝑡))', text='', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/257', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=18, bbox=BoundingBox(l=90.024, t=350.10512, r=209.34658, b=328.7332866752247, coord_origin=), charspan=(0, 39))], source=[], comments=[], orig='39) 𝑀𝐴𝐹 = 𝐻𝑒𝑑𝑔𝑒𝑑𝐼𝑛𝑑𝑒𝑥 1-1d 𝐻𝑒𝑑𝑔𝑒𝑑𝐼𝑛𝑑𝑒𝑥1', text='', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/258', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=18, bbox=BoundingBox(l=90.024, t=296.10512, r=386.8396, b=274.7332866752247, coord_origin=), charspan=(0, 72))], source=[], comments=[], orig='40) 𝐻𝑒𝑑𝑔𝑒𝑑𝐼𝑛𝑑𝑒𝑥𝑡 = 𝐻𝑒𝑑𝑔𝑒𝑑𝐼𝑛𝑑𝑒𝑥1 ∗ ( 𝑈𝑛ℎ𝑒𝑑𝑔𝑒𝑑𝐼𝑛𝑑𝑒𝑥𝑡 𝑈𝑛ℎ𝑒𝑑𝑔𝑒𝑑𝐼𝑛𝑑𝑒𝑥1 + 𝐻𝑅𝑡)', text='', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/259', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=18, bbox=BoundingBox(l=72.024, t=249.64999999999998, r=103.46672000000001, b=239.25775510204085, coord_origin=), charspan=(0, 6))], source=[], comments=[], orig='Where:', text='Where:', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/260', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=18, bbox=BoundingBox(l=42.0, t=38.190000000000055, r=50.24808, b=31.073571428571427, coord_origin=), charspan=(0, 2))], source=[], comments=[], orig='18', text='18', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/261', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=18, bbox=BoundingBox(l=72.264, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 233))], source=[], comments=[], orig='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/262', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=19, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/263', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=19, bbox=BoundingBox(l=72.024, t=723.6, r=229.49672, b=713.2077551020409, coord_origin=), charspan=(0, 38))], source=[], comments=[], orig='Other notations are the same as above.', text='Other notations are the same as above.', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/264', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=19, bbox=BoundingBox(l=72.024, t=693.5799999999999, r=174.94544, b=683.1877551020408, coord_origin=), charspan=(0, 23))], source=[], comments=[], orig='Data Source for FX Rate', text='Data Source for FX Rate', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/265', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=19, bbox=BoundingBox(l=72.024, t=679.42, r=567.8104, b=640.9477551020408, coord_origin=), charspan=(0, 294))], source=[], comments=[], orig='The source data for forward and spot rates used in this methodology is WMR London 4 p.m. fixing rates. WMR foreign exchange rates are taken daily at 4 p.m. London time and used in the calculation of the indexes. Unless otherwise noted, this is applicable for all sections where FX Rate is used.', text='The source data for forward and spot rates used in this methodology is WMR London 4 p.m. fixing rates. WMR foreign exchange rates are taken daily at 4 p.m. London time and used in the calculation of the indexes. Unless otherwise noted, this is applicable for all sections where FX Rate is used.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/266', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=19, bbox=BoundingBox(l=42.0, t=38.190000000000055, r=50.24808, b=31.073571428571427, coord_origin=), charspan=(0, 2))], source=[], comments=[], orig='19', text='19', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/267', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=19, bbox=BoundingBox(l=72.264, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 233))], source=[], comments=[], orig='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/268', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=20, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/269', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=20, bbox=BoundingBox(l=72.024, t=702.5799999999999, r=240.60175999999996, b=692.1877551020408, coord_origin=), charspan=(0, 39))], source=[], comments=[], orig='Total/Gross and Net Return Calculations', text='Total/Gross and Net Return Calculations', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/270', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=20, bbox=BoundingBox(l=72.024, t=669.5799999999999, r=572.7344800000001, b=599.1877551020408, coord_origin=), charspan=(0, 623))], source=[], comments=[], orig='While price-return indexes gauge the change in prices of index constituents as explained in the previous sections, total-return indexes reflect the changes in both prices and reinvestment of dividends paid by the index constituents. The dividends distributed are reinvested in the index based on the weights of constituents as of the ex-date. Only cash dividends and regular capital repayments are included in the total return calculations but not the price returns. Other dividends, including special dividends and extraordinary capital repayments, are already considered in the calculation of price-return index variants.', text='While price-return indexes gauge the change in prices of index constituents as explained in the previous sections, total-return indexes reflect the changes in both prices and reinvestment of dividends paid by the index constituents. The dividends distributed are reinvested in the index based on the weights of constituents as of the ex-date. Only cash dividends and regular capital repayments are included in the total return calculations but not the price returns. Other dividends, including special dividends and extraordinary capital repayments, are already considered in the calculation of price-return index variants.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/271', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=20, bbox=BoundingBox(l=72.024, t=579.5799999999999, r=543.8334400000001, b=554.1877551020408, coord_origin=), charspan=(0, 177))], source=[], comments=[], orig='For Morningstar Indexes, Total Return (TR) and Gross Return (GR) are used interchangeably. TR is used for U.S.-specific indexes and GR is used for the non-U.S.-specific indexes.', text='For Morningstar Indexes, Total Return (TR) and Gross Return (GR) are used interchangeably. TR is used for U.S.-specific indexes and GR is used for the non-U.S.-specific indexes.', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/272', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=20, bbox=BoundingBox(l=90.024, t=527.00512, r=353.9596, b=505.63328667522467, coord_origin=), charspan=(0, 78))], source=[], comments=[], orig='41) 𝑇𝑅 𝑅𝑒𝑡𝑢𝑟𝑛𝑡 = ( 𝑃𝑅 𝐼𝑛𝑑𝑒𝑥 𝐿𝑒𝑣𝑒𝑙𝑡 + 𝑇𝑅 𝐼𝑛𝑑𝑒𝑥 𝐷𝑖𝑣𝑖𝑑𝑒𝑛𝑑 𝑡 𝑃𝑅 𝐼𝑛𝑑𝑒𝑥 𝐿𝑒𝑣𝑒𝑙𝑡-1 -1)', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/273', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=20, bbox=BoundingBox(l=72.024, t=480.54999999999995, r=103.46672000000001, b=470.1577551020408, coord_origin=), charspan=(0, 6))], source=[], comments=[], orig='Where:', text='Where:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/274', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=20, bbox=BoundingBox(l=90.024, t=445.51144000000005, r=311.0, b=422.96741124518616, coord_origin=), charspan=(0, 55))], source=[], comments=[], orig='42) 𝑇𝑅 𝐼𝑛𝑑𝑒𝑥 𝐷𝑖𝑣𝑖𝑑𝑒𝑛𝑑𝑠𝑡 = ∑ 𝐷𝑖𝑣𝑖𝑑𝑒𝑛𝑑𝑖∗ 𝑆ℎ𝑎𝑟𝑒𝑠𝑖 𝑛 𝑖 𝐷(𝑡)', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/275', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=20, bbox=BoundingBox(l=72.024, t=398.71, r=306.29672, b=388.31775510204085, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='The TR index level can be calculated by the formula below:', text='The TR index level can be calculated by the formula below:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/276', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=20, bbox=BoundingBox(l=90.024, t=357.35911999999996, r=384.3316, b=344.34741124518615, coord_origin=), charspan=(0, 59))], source=[], comments=[], orig='43) 𝑇𝑅 𝐼𝑛𝑑𝑒𝑥 𝐿𝑒𝑣𝑒𝑙𝑡 = 𝑇𝑅 𝐼𝑛𝑑𝑒𝑥 𝐿𝑒𝑣𝑒𝑙𝑡-1 ∗ (1 + 𝑇𝑅 𝑅𝑒𝑡𝑢𝑟𝑛𝑡 )', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/277', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=20, bbox=BoundingBox(l=72.024, t=316.72999999999996, r=558.0072799999999, b=291.33775510204083, coord_origin=), charspan=(0, 240))], source=[], comments=[], orig='The above approach is also used to calculate the net total return (NR) indexes where dividends distributed are adjusted for the withholding tax rate (WTR) applicable to nondomestic investors who do not benefit from double taxation treaties.', text='The above approach is also used to calculate the net total return (NR) indexes where dividends distributed are adjusted for the withholding tax rate (WTR) applicable to nondomestic investors who do not benefit from double taxation treaties.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/278', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=20, bbox=BoundingBox(l=72.024, t=271.73, r=415.03672, b=261.3377551020408, coord_origin=), charspan=(0, 83))], source=[], comments=[], orig='Morningstar Withholding Tax Rates are available on the Morningstar Indexes website.', text='Morningstar Withholding Tax Rates are available on the Morningstar Indexes website.', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/279', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=20, bbox=BoundingBox(l=90.024, t=236.69144000000006, r=357.82, b=214.14741124518616, coord_origin=), charspan=(0, 68))], source=[], comments=[], orig='44) 𝑁𝑅 𝐼𝑛𝑑𝑒𝑥 𝐷𝑖𝑣𝑖𝑑𝑒𝑛𝑑𝑠𝑡 = ∑ 𝐷𝑖𝑣𝑖𝑑𝑒𝑛𝑑𝑖∗ (1- 𝑊𝑇𝑅𝑖 )∗ 𝑆ℎ𝑎𝑟𝑒𝑠 𝑖 𝑛 𝑖 𝐷(𝑡)', text='', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/280', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=20, bbox=BoundingBox(l=90.024, t=180.15512, r=344.2396, b=158.78328667522464, coord_origin=), charspan=(0, 72))], source=[], comments=[], orig='45) 𝑁𝑅 𝑅𝑒𝑡𝑢𝑟𝑛𝑡 = ( 𝐼𝑛𝑑𝑒𝑥 𝐿𝑒𝑣𝑒𝑙𝑡 + 𝑁𝑅 𝐼𝑛𝑑𝑒𝑥 𝐷𝑖𝑣𝑖𝑑𝑒𝑛𝑑 𝑡 𝐼𝑛𝑑𝑒𝑥 𝐿𝑒𝑣𝑒𝑙𝑡-1 -1)', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/281', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=20, bbox=BoundingBox(l=72.024, t=135.26, r=92.91072, b=124.86775510204086, coord_origin=), charspan=(0, 4))], source=[], comments=[], orig='And:', text='And:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/282', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=20, bbox=BoundingBox(l=90.024, t=93.93312000000003, r=388.8916, b=80.92141124518616, coord_origin=), charspan=(0, 59))], source=[], comments=[], orig='46) 𝑁𝑅 𝐼𝑛𝑑𝑒𝑥 𝐿𝑒𝑣𝑒𝑙𝑡 = 𝑁𝑅 𝐼𝑛𝑑𝑒𝑥 𝐿𝑒𝑣𝑒𝑙𝑡-1 ∗ (1 + 𝑁𝑅 𝑅𝑒𝑡𝑢𝑟𝑛𝑡 )', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/283', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=20, bbox=BoundingBox(l=42.0, t=38.190000000000055, r=50.24808, b=31.073571428571427, coord_origin=), charspan=(0, 2))], source=[], comments=[], orig='20', text='20', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/284', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=20, bbox=BoundingBox(l=72.264, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 233))], source=[], comments=[], orig='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/285', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=21, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/286', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=21, bbox=BoundingBox(l=72.024, t=702.5799999999999, r=242.53544, b=692.1877551020408, coord_origin=), charspan=(0, 38))], source=[], comments=[], orig='Index Conversion Into Another Currency', text='Index Conversion Into Another Currency', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/287', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=21, bbox=BoundingBox(l=72.024, t=684.5799999999999, r=385.03672, b=674.1877551020408, coord_origin=), charspan=(0, 77))], source=[], comments=[], orig='Any index can be calculated into another currency by using the formula below:', text='Any index can be calculated into another currency by using the formula below:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/288', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=21, bbox=BoundingBox(l=90.024, t=647.03512, r=470.5156, b=625.6632866752246, coord_origin=), charspan=(0, 122))], source=[], comments=[], orig='47) 𝐼𝑛𝑑𝑒𝑥 𝐿𝑒𝑣𝑒𝑙 𝑖𝑛 𝐶𝑢𝑟𝑟 𝑡 = 𝐼𝑛𝑑𝑒𝑥 𝐿𝑒𝑣𝑒𝑙 𝑖𝑛 𝐶𝑢𝑟𝑟 𝑡-1 ∗ 𝐼𝑛𝑑𝑒𝑥 𝐿𝑒𝑣𝑒𝑙 𝑖𝑛 𝑈𝑆𝐷 𝑡 ∗ 𝐹𝑋𝑅𝑎𝑡𝑒 𝑡 𝐼𝑛𝑑𝑒𝑥 𝐿𝑒𝑣𝑒𝑙 𝑖𝑛 𝑈𝑆𝐷 𝑡-1 ∗ 𝐹𝑋𝑅𝑎𝑡𝑒 𝑡-1', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/289', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=21, bbox=BoundingBox(l=72.024, t=602.14, r=544.9184799999999, b=576.7477551020409, coord_origin=), charspan=(0, 173))], source=[], comments=[], orig='Morningstar index base values are often set to 1,000. If the currency start date falls after the index start date, the index calculation starts from the currency start date.', text='Morningstar index base values are often set to 1,000. If the currency start date falls after the index start date, the index calculation starts from the currency start date.', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/290', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=21, bbox=BoundingBox(l=90.024, t=545.41912, r=462.9976, b=532.767411245186, coord_origin=), charspan=(0, 69))], source=[], comments=[], orig='48) 𝐼𝑛𝑑𝑒𝑥𝑀𝑎𝑟𝑘𝑒𝑡𝑉𝑎𝑙𝑢𝑒𝑖𝑛𝐶𝑢𝑟𝑟𝑒𝑛𝑐𝑦𝑡 = 𝐼𝑛𝑑𝑒𝑥𝑀𝑎𝑟𝑘𝑒𝑡𝑉𝑎𝑙𝑢𝑒𝑖𝑛𝑈𝑆𝐷𝑡 ∗ 𝐹𝑋𝑅𝑎𝑡𝑒𝑡', text='48) 𝐼𝑛𝑑𝑒𝑥𝑀𝑎𝑟𝑘𝑒𝑡𝑉𝑎𝑙𝑢𝑒𝑖𝑛𝐶𝑢𝑟𝑟𝑒𝑛𝑐𝑦𝑡 = 𝐼𝑛𝑑𝑒𝑥𝑀𝑎𝑟𝑘𝑒𝑡𝑉𝑎𝑙𝑢𝑒𝑖𝑛𝑈𝑆𝐷𝑡 ∗ 𝐹𝑋𝑅𝑎𝑡𝑒𝑡', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/291', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=21, bbox=BoundingBox(l=72.024, t=518.11, r=199.37672, b=507.7177551020408, coord_origin=), charspan=(0, 31))], source=[], comments=[], orig='Index Market Value Calculations', text='Index Market Value Calculations', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/292', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=21, bbox=BoundingBox(l=72.024, t=500.10999999999996, r=508.07128, b=489.7177551020408, coord_origin=), charspan=(0, 109))], source=[], comments=[], orig='After Sept. 4, 2023, Morningstar Indexes standardized the index market value formula for any index variant to', text='After Sept. 4, 2023, Morningstar Indexes standardized the index market value formula for any index variant to', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/293', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=21, bbox=BoundingBox(l=90.024, t=473.41911999999996, r=462.9976, b=460.76741124518617, coord_origin=), charspan=(0, 69))], source=[], comments=[], orig='49) 𝐼𝑛𝑑𝑒𝑥𝑀𝑎𝑟𝑘𝑒𝑡𝑉𝑎𝑙𝑢𝑒𝑖𝑛𝐶𝑢𝑟𝑟𝑒𝑛𝑐𝑦𝑡 = 𝐼𝑛𝑑𝑒𝑥𝑀𝑎𝑟𝑘𝑒𝑡𝑉𝑎𝑙𝑢𝑒𝑖𝑛𝑈𝑆𝐷𝑡 ∗ 𝐹𝑋𝑅𝑎𝑡𝑒𝑡', text='49) 𝐼𝑛𝑑𝑒𝑥𝑀𝑎𝑟𝑘𝑒𝑡𝑉𝑎𝑙𝑢𝑒𝑖𝑛𝐶𝑢𝑟𝑟𝑒𝑛𝑐𝑦𝑡 = 𝐼𝑛𝑑𝑒𝑥𝑀𝑎𝑟𝑘𝑒𝑡𝑉𝑎𝑙𝑢𝑒𝑖𝑛𝑈𝑆𝐷𝑡 ∗ 𝐹𝑋𝑅𝑎𝑡𝑒𝑡', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/294', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=21, bbox=BoundingBox(l=72.024, t=444.90999999999997, r=572.5066999999999, b=420.35775510204087, coord_origin=), charspan=(0, 245))], source=[], comments=[], orig='Prior to Sept. 4, 2023, the market value of a non-USD index variant for select (internally calculated) equity indexes is not only a function of the exchange rate on that date, but also a function of the exchange rate on the index inception date.', text='Prior to Sept. 4, 2023, the market value of a non-USD index variant for select (internally calculated) equity indexes is not only a function of the exchange rate on that date, but also a function of the exchange rate on the index inception date.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/295', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=21, bbox=BoundingBox(l=72.024, t=402.78999999999996, r=546.8571999999999, b=378.35775510204087, coord_origin=), charspan=(0, 157))], source=[], comments=[], orig='This is because we started the base index level for the currency variants at 1,000. To do so, we need to adjust either the divisor or the market value, since', text='This is because we started the base index level for the currency variants at 1,000. To do so, we need to adjust either the divisor or the market value, since', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/296', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=21, bbox=BoundingBox(l=90.024, t=364.50512, r=262.67504, b=343.13328667522467, coord_origin=), charspan=(0, 51))], source=[], comments=[], orig='50) 𝐼𝑛𝑑𝑒𝑥𝐿𝑒𝑣𝑒𝑙𝑡 = 𝐼𝑛𝑑𝑒𝑥𝑀𝑎𝑟𝑘𝑒𝑡𝑉𝑎𝑙𝑢𝑒𝑡 𝐼𝑛𝑑𝑒𝑥𝐷𝑖𝑣𝑖𝑠𝑜𝑟 𝑡', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/297', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=21, bbox=BoundingBox(l=72.024, t=331.84999999999997, r=572.85664, b=293.37775510204085, coord_origin=), charspan=(0, 325))], source=[], comments=[], orig='Morningstar Indexes have opted to adjust the market value of the index, to keep the same divisor for all currency variants, and for the index level on the inception date to be 1,000 for all currency and return variants. As such, the index market value is more accurately defined as an adjusted market value, as defined below:', text='Morningstar Indexes have opted to adjust the market value of the index, to keep the same divisor for all currency variants, and for the index level on the inception date to be 1,000 for all currency and return variants. As such, the index market value is more accurately defined as an adjusted market value, as defined below:', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/298', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=21, bbox=BoundingBox(l=90.024, t=279.54512, r=502.26087999999993, b=258.17328667522474, coord_origin=), charspan=(0, 87))], source=[], comments=[], orig='51) 𝐼𝑛𝑑𝑒𝑥𝑀𝑎𝑟𝑘𝑒𝑡𝑉𝑎𝑙𝑢𝑒𝑖𝑛𝐶𝑢𝑟𝑟𝑒𝑛𝑐𝑦𝑡 = 𝐼𝑛𝑑𝑒𝑥𝑀𝑎𝑟𝑘𝑒𝑡𝑉𝑎𝑙𝑢𝑒𝑖𝑛𝑈𝑆𝐷𝑡 ∗ 𝐹𝑋𝑅𝑎𝑡𝑒𝑡 𝐹𝑋𝑅𝑎𝑡𝑒𝐶𝑢𝑟𝑟𝐵𝑎𝑠𝑒𝐷𝑎𝑡𝑒', text='', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/299', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=21, bbox=BoundingBox(l=42.0, t=38.190000000000055, r=50.24808, b=31.073571428571427, coord_origin=), charspan=(0, 2))], source=[], comments=[], orig='21', text='21', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/300', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=21, bbox=BoundingBox(l=72.264, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 233))], source=[], comments=[], orig='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/301', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=22, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/302', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=22, bbox=BoundingBox(l=72.024, t=723.6, r=217.69544, b=713.2077551020409, coord_origin=), charspan=(0, 33))], source=[], comments=[], orig='Local Currency Return Calculation', text='Local Currency Return Calculation', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/303', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=22, bbox=BoundingBox(l=72.024, t=705.5799999999999, r=569.4204799999998, b=650.1877551020408, coord_origin=), charspan=(0, 422))], source=[], comments=[], orig='The local-currency return calculation involves calculation of the weighted percentage change in the price of each constituent, which is further used to compute the index levels. This approach yields the same results as our divisor-based methodology. However, because of its simplicity, the local-currency return approach is preferred over divisor-based methodology when multiple currencies are involved in the calculation.', text='The local-currency return calculation involves calculation of the weighted percentage change in the price of each constituent, which is further used to compute the index levels. This approach yields the same results as our divisor-based methodology. However, because of its simplicity, the local-currency return approach is preferred over divisor-based methodology when multiple currencies are involved in the calculation.', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/304', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=22, bbox=BoundingBox(l=90.024, t=623.39512, r=292.8266, b=600.7032866752246, coord_origin=), charspan=(0, 93))], source=[], comments=[], orig='52) 𝐼𝑊𝑖,𝑡-1 = 𝑃𝑖 (𝑡-1) ∗ 𝑆 𝑖 (𝑡-1) ∗ 𝐹𝑋𝑅𝑎𝑡𝑒𝑖 (𝑡-1) ∑ 𝑃𝑖 (𝑡-1) 𝑛 𝑖 ∗ 𝑆 𝑖 (𝑡-1) ∗ 𝐹𝑋𝑅𝑎𝑡𝑒𝑖 (𝑡-1)', text='', formatting=None, hyperlink=None), FormulaItem(self_ref='#/texts/305', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=22, bbox=BoundingBox(l=90.024, t=575.87512, r=298.6316, b=547.5574112451861, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='53) 𝐼(𝑡) = 𝐼(𝑡 - 1) ∗ ∑ 𝑃𝑖 (𝑡) 𝑃𝑖 (𝑡-1) ∗ 𝐼𝑊 𝑖 (𝑡 - 1) 𝑛 𝑖', text='', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/306', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=22, bbox=BoundingBox(l=72.024, t=526.75, r=103.46672000000001, b=516.3577551020409, coord_origin=), charspan=(0, 6))], source=[], comments=[], orig='Where:', text='Where:', formatting=None, hyperlink=None, level=1), SectionHeaderItem(self_ref='#/texts/307', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=22, bbox=BoundingBox(l=72.024, t=321.40999999999997, r=166.78544, b=311.01775510204084, coord_origin=), charspan=(0, 21))], source=[], comments=[], orig='Real-Time Calculation', text='Real-Time Calculation', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/308', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=22, bbox=BoundingBox(l=72.024, t=304.60999999999996, r=539.62672, b=278.61775510204086, coord_origin=), charspan=(0, 205))], source=[], comments=[], orig='The methodology described above pertains to end-of-day calculations. Refer to the Morningstar Real-Time Calculation Methodology document for additional information about Morningstar real-time calculations.', text='The methodology described above pertains to end-of-day calculations. Refer to the Morningstar Real-Time Calculation Methodology document for additional information about Morningstar real-time calculations.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/309', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=22, bbox=BoundingBox(l=42.0, t=38.190000000000055, r=50.24808, b=31.073571428571427, coord_origin=), charspan=(0, 2))], source=[], comments=[], orig='22', text='22', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/310', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=22, bbox=BoundingBox(l=72.264, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 233))], source=[], comments=[], orig='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/311', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=23, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/312', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=23, bbox=BoundingBox(l=72.024, t=723.6, r=113.98544, b=713.2077551020409, coord_origin=), charspan=(0, 8))], source=[], comments=[], orig='Appendix', text='Appendix', formatting=None, hyperlink=None, level=1), SectionHeaderItem(self_ref='#/texts/313', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=23, bbox=BoundingBox(l=72.024, t=702.5799999999999, r=253.33543999999998, b=692.1877551020408, coord_origin=), charspan=(0, 41))], source=[], comments=[], orig='Appendix 1: Modifications to the Rulebook', text='Appendix 1: Modifications to the Rulebook', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/314', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=23, bbox=BoundingBox(l=42.0, t=38.190000000000055, r=50.24808, b=31.073571428571427, coord_origin=), charspan=(0, 2))], source=[], comments=[], orig='23', text='23', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/315', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=23, bbox=BoundingBox(l=72.264, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 233))], source=[], comments=[], orig='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/316', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=24, bbox=BoundingBox(l=72.024, t=773.07, r=273.332, b=764.5980612244898, coord_origin=), charspan=(0, 58))], source=[], comments=[], orig='Morningstar Indexes Calculation Methodology | January 2024', text='Morningstar Indexes Calculation Methodology | January 2024', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/317', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=24, bbox=BoundingBox(l=72.024, t=723.6, r=189.46544, b=713.2077551020409, coord_origin=), charspan=(0, 25))], source=[], comments=[], orig='About Morningstar Indexes', text='About Morningstar Indexes', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/318', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=24, bbox=BoundingBox(l=72.024, t=706.42, r=569.6113599999998, b=639.9877551020409, coord_origin=), charspan=(0, 574))], source=[], comments=[], orig='Morningstar Indexes was built to keep up with the evolving needs of investors -and to be a leading-edge advocate for them. Our rich heritage as a transparent, investor-focused leader in data and research uniquely equips us to support individuals, institutions, wealth managers, and advisors in navigating investment opportunities across major asset classes, styles, and strategies. From traditional benchmarks and unique IP-driven indexes to index design, calculation, and distribution services, our solutions span an investment landscape as diverse as investors themselves.', text='Morningstar Indexes was built to keep up with the evolving needs of investors -and to be a leading-edge advocate for them. Our rich heritage as a transparent, investor-focused leader in data and research uniquely equips us to support individuals, institutions, wealth managers, and advisors in navigating investment opportunities across major asset classes, styles, and strategies. From traditional benchmarks and unique IP-driven indexes to index design, calculation, and distribution services, our solutions span an investment landscape as diverse as investors themselves.', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/319', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=24, bbox=BoundingBox(l=72.024, t=622.3, r=267.61544, b=611.9077551020408, coord_origin=), charspan=(0, 41))], source=[], comments=[], orig='Morningstar Indexes Methodology Committee', text='Morningstar Indexes Methodology Committee', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/320', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=24, bbox=BoundingBox(l=72.024, t=602.38, r=562.0123200000003, b=535.9177551020408, coord_origin=), charspan=(0, 559))], source=[], comments=[], orig='The Morningstar Indexes Methodology Committee oversees all new index development, index methodology changes, and cessation of indexes for any indexes where Morningstar owns the intellectual property. This committee is also charged with ensuring that indexes align with Morningstar Research principles and values. The group comprises members of the index team with index research, product development, product management, client service, index implementation, and operation expertise who provide the first layer of governance over index design and methodology.', text='The Morningstar Indexes Methodology Committee oversees all new index development, index methodology changes, and cessation of indexes for any indexes where Morningstar owns the intellectual property. This committee is also charged with ensuring that indexes align with Morningstar Research principles and values. The group comprises members of the index team with index research, product development, product management, client service, index implementation, and operation expertise who provide the first layer of governance over index design and methodology.', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/321', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=24, bbox=BoundingBox(l=72.024, t=518.35, r=255.03407999999996, b=507.95775510204084, coord_origin=), charspan=(0, 40))], source=[], comments=[], orig='Morningstar Indexes Operations Committee', text='Morningstar Indexes Operations Committee', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/322', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=24, bbox=BoundingBox(l=72.024, t=498.30999999999995, r=564.1319999999997, b=403.9177551020408, coord_origin=), charspan=(0, 731))], source=[], comments=[], orig='The Morningstar Indexes Operations Committee governs the processes, systems, and exception handling of the day-to-day management of all live indexes, including index rebalancing and reconstitution, restatements, market classification, and contingency management. The committee oversees the annual review of index methodology (as required by U.K. and EU benchmark regulations, or BMR), ensuring that methodologies remain fit for purpose and continue to achieve their stated investment objectives. The group comprises members of the index team with data, operations, corporate actions, product development, index launch, client service, and index management experience who provide the first layer of governance over index operations.', text='The Morningstar Indexes Operations Committee governs the processes, systems, and exception handling of the day-to-day management of all live indexes, including index rebalancing and reconstitution, restatements, market classification, and contingency management. The committee oversees the annual review of index methodology (as required by U.K. and EU benchmark regulations, or BMR), ensuring that methodologies remain fit for purpose and continue to achieve their stated investment objectives. The group comprises members of the index team with data, operations, corporate actions, product development, index launch, client service, and index management experience who provide the first layer of governance over index operations.', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/323', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=24, bbox=BoundingBox(l=72.024, t=384.53, r=252.49543999999997, b=374.13775510204084, coord_origin=), charspan=(0, 39))], source=[], comments=[], orig='Morningstar Indexes Oversight Committee', text='Morningstar Indexes Oversight Committee', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/324', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=24, bbox=BoundingBox(l=72.024, t=364.36999999999995, r=571.5416799999998, b=283.89775510204083, coord_origin=), charspan=(0, 679))], source=[], comments=[], orig='The Morningstar Indexes Oversight Committee is responsible for the index oversight function as per the requirements of the U.K. and European BMR, providing independent oversight of all aspects of the governance of benchmark administration as required by the relevant BMR. Its remit extends to all calculation and administration-related business activities of Morningstar Indexes, including administration of Morningstar-owned benchmarks as well as client-owned benchmarks and index calculation. The oversight function is part of the organizational structure of Morningstar but is separate and independent from the index business, index management, and the other index committees.', text='The Morningstar Indexes Oversight Committee is responsible for the index oversight function as per the requirements of the U.K. and European BMR, providing independent oversight of all aspects of the governance of benchmark administration as required by the relevant BMR. Its remit extends to all calculation and administration-related business activities of Morningstar Indexes, including administration of Morningstar-owned benchmarks as well as client-owned benchmarks and index calculation. The oversight function is part of the organizational structure of Morningstar but is separate and independent from the index business, index management, and the other index committees.', formatting=None, hyperlink=None), SectionHeaderItem(self_ref='#/texts/325', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=24, bbox=BoundingBox(l=72.024, t=266.3299999999999, r=197.69672, b=255.9377551020408, coord_origin=), charspan=(0, 27))], source=[], comments=[], orig='www.indexes.morningstar.com', text='www.indexes.morningstar.com', formatting=None, hyperlink=None, level=1), SectionHeaderItem(self_ref='#/texts/326', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=24, bbox=BoundingBox(l=72.024, t=245.56999999999994, r=120.70544, b=235.1777551020408, coord_origin=), charspan=(0, 10))], source=[], comments=[], orig='Contact Us', text='Contact Us', formatting=None, hyperlink=None, level=1), SectionHeaderItem(self_ref='#/texts/327', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=24, bbox=BoundingBox(l=72.024, t=228.28999999999996, r=180.74672, b=217.89775510204083, coord_origin=), charspan=(0, 23))], source=[], comments=[], orig='indexes@morningstar.com', text='indexes@morningstar.com', formatting=None, hyperlink=None, level=1), TextItem(self_ref='#/texts/328', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=24, bbox=BoundingBox(l=72.024, t=200.45000000000005, r=568.4718400000005, b=159.88173469387755, coord_origin=), charspan=(0, 553))], source=[], comments=[], orig='The information in this document is the property of Morningstar, Inc. Reproduction or transcription by any means, in whole or part, without the prior written consent of Morningstar, Inc., is prohibited. While data contained in this report are gathered from reliable sources, accuracy and completeness cannot be guaranteed. All data, information, and opinions are subject to change without notice. This document may contain back-tested or simulated performances, and the subsequent results achieved by the investment strategy may be materially different.', text='The information in this document is the property of Morningstar, Inc. Reproduction or transcription by any means, in whole or part, without the prior written consent of Morningstar, Inc., is prohibited. While data contained in this report are gathered from reliable sources, accuracy and completeness cannot be guaranteed. All data, information, and opinions are subject to change without notice. This document may contain back-tested or simulated performances, and the subsequent results achieved by the investment strategy may be materially different.', formatting=None, hyperlink=None), TextItem(self_ref='#/texts/329', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=24, bbox=BoundingBox(l=42.0, t=38.789999999999964, r=410.94371999999964, b=22.43357142857144, coord_origin=), charspan=(0, 236))], source=[], comments=[], orig='24 ©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', text='24 ©2024 Morningstar, Inc. All rights reserved. The Morningstar name and logo are registered marks of Morningstar, Inc. Marks used in conjunction with Morningstar products or services are the property of Morningstar or its subsidiaries.', formatting=None, hyperlink=None)] pictures=[PictureItem(self_ref='#/pictures/0', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=1, bbox=BoundingBox(l=338.8067321777344, t=734.1742744445801, r=535.9855346679688, b=701.9634094238281, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/1', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=1, bbox=BoundingBox(l=68.31217193603516, t=424.50469970703125, r=611.3587036132812, b=102.309814453125, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/2', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=2, bbox=BoundingBox(l=499.7444152832031, t=40.46478271484375, r=569.3042602539062, b=24.91473388671875, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/3', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=3, bbox=BoundingBox(l=499.7347717285156, t=40.58544921875, r=569.4917602539062, b=24.86181640625, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/4', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=4, bbox=BoundingBox(l=499.7347106933594, t=40.41876220703125, r=569.4865112304688, b=24.95098876953125, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/5', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=5, bbox=BoundingBox(l=499.7398376464844, t=40.46240234375, r=569.5030517578125, b=24.91497802734375, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/6', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=6, bbox=BoundingBox(l=499.77801513671875, t=40.4989013671875, r=569.5269165039062, b=24.9136962890625, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/7', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=7, bbox=BoundingBox(l=499.699951171875, t=40.588623046875, r=569.5433959960938, b=24.873046875, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/8', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=8, bbox=BoundingBox(l=499.78680419921875, t=40.40118408203125, r=569.4863891601562, b=24.966064453125, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/9', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=9, bbox=BoundingBox(l=499.7939147949219, t=40.474853515625, r=569.5089111328125, b=24.94464111328125, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/10', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=10, bbox=BoundingBox(l=499.7142333984375, t=40.5274658203125, r=569.4658813476562, b=24.91766357421875, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/11', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=11, bbox=BoundingBox(l=499.7491149902344, t=40.5755615234375, r=569.5509643554688, b=24.85302734375, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/12', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=12, bbox=BoundingBox(l=499.7719421386719, t=40.51605224609375, r=569.5294799804688, b=24.92950439453125, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/13', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=13, bbox=BoundingBox(l=499.7611999511719, t=40.46905517578125, r=569.5225830078125, b=24.93280029296875, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/14', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=14, bbox=BoundingBox(l=499.8459167480469, t=40.4678955078125, r=569.5848388671875, b=24.9566650390625, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/15', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=15, bbox=BoundingBox(l=499.615234375, t=41.67962646484375, r=569.934326171875, b=22.78839111328125, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/16', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=16, bbox=BoundingBox(l=499.6527099609375, t=41.00732421875, r=569.70068359375, b=24.4697265625, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/17', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=17, bbox=BoundingBox(l=499.7227783203125, t=40.85400390625, r=569.756103515625, b=24.509765625, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/18', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=18, bbox=BoundingBox(l=499.6603088378906, t=40.55633544921875, r=569.4827270507812, b=24.89752197265625, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/19', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=19, bbox=BoundingBox(l=499.79083251953125, t=40.70086669921875, r=569.56298828125, b=24.795166015625, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/20', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=20, bbox=BoundingBox(l=499.57769775390625, t=40.763671875, r=569.5109252929688, b=24.76593017578125, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/21', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=21, bbox=BoundingBox(l=418.1574401855469, t=280.1687316894531, r=502.99310302734375, b=258.3651123046875, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/22', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=21, bbox=BoundingBox(l=499.6464538574219, t=40.6126708984375, r=569.5679321289062, b=24.83563232421875, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/23', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=22, bbox=BoundingBox(l=499.75274658203125, t=40.55419921875, r=569.5534057617188, b=24.9193115234375, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/24', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=23, bbox=BoundingBox(l=499.80426025390625, t=40.56182861328125, r=569.5324096679688, b=24.927001953125, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[]), PictureItem(self_ref='#/pictures/25', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=24, bbox=BoundingBox(l=499.6964416503906, t=41.83740234375, r=569.9353637695312, b=22.43182373046875, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, annotations=[])] tables=[TableItem(self_ref='#/tables/0', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=2, bbox=BoundingBox(l=70.4630126953125, t=699.1987838745117, r=570.3160400390625, b=99.12603759765625, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, data=TableData(table_cells=[TableCell(bbox=BoundingBox(l=72.024, t=94.22000000000003, r=570.2708799999999, b=104.61224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='Overview ...........................................................................................................................................................................3', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=115.22000000000003, r=570.2708799999999, b=125.61224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='Index Divisor .....................................................................................................................................................................3', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=136.22000000000003, r=570.2708799999999, b=146.61224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='Market Capitalization and Float Market Capitalization Weighted Indexes........................................................................3', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=157.22000000000003, r=570.2708799999999, b=167.61224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='Equal Weighted Indexes....................................................................................................................................................5', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=178.22000000000003, r=570.2708799999999, b=188.61224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=0, end_col_offset_idx=1, text='Dividend Dollar-Weighted Indexes....................................................................................................................................6', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=199.22000000000003, r=570.2708799999999, b=209.61224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=0, end_col_offset_idx=1, text='Capped-Weighted Indexes ................................................................................................................................................7', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=82.824, t=220.22000000000003, r=570.2708799999999, b=230.61224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=0, end_col_offset_idx=1, text='Capped-Weighting Adjustments ...................................................................................................................................7', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=241.25, r=570.15086, b=251.64224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=0, end_col_offset_idx=1, text='Liquidity Informed Weighting..........................................................................................................................................10', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=82.824, t=262.25, r=570.15086, b=272.64224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=8, end_row_offset_idx=9, start_col_offset_idx=0, end_col_offset_idx=1, text='Liquidity Informed Weighting Algorithm.....................................................................................................................10', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=283.25, r=570.15086, b=293.64224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=9, end_row_offset_idx=10, start_col_offset_idx=0, end_col_offset_idx=1, text='Target Volatility Indexes..................................................................................................................................................12', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=82.824, t=304.25, r=570.15086, b=314.64224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=10, end_row_offset_idx=11, start_col_offset_idx=0, end_col_offset_idx=1, text='Determining the Target Exposure................................................................................................................................12', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=82.824, t=325.25, r=570.15086, b=335.64224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=11, end_row_offset_idx=12, start_col_offset_idx=0, end_col_offset_idx=1, text='Measuring Volatility....................................................................................................................................................12', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=82.824, t=346.25, r=570.15086, b=356.64224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=12, end_row_offset_idx=13, start_col_offset_idx=0, end_col_offset_idx=1, text='Excess Return Calculation...........................................................................................................................................13', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=82.824, t=367.25, r=570.15086, b=377.64224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=13, end_row_offset_idx=14, start_col_offset_idx=0, end_col_offset_idx=1, text='Trading Cost Adjustment Factor, or TCAF...................................................................................................................13', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=388.25, r=570.15086, b=398.64224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=14, end_row_offset_idx=15, start_col_offset_idx=0, end_col_offset_idx=1, text='Exchange-Rate Rules ......................................................................................................................................................15', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=82.824, t=409.27000000000004, r=570.15086, b=419.66224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=15, end_row_offset_idx=16, start_col_offset_idx=0, end_col_offset_idx=1, text='Exchange-Rate Data Source........................................................................................................................................15', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=82.824, t=430.27000000000004, r=570.15086, b=440.66224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=16, end_row_offset_idx=17, start_col_offset_idx=0, end_col_offset_idx=1, text='Standard Exchange-Rate Index Calculations...............................................................................................................15', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=82.824, t=451.27000000000004, r=570.15086, b=461.66224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=17, end_row_offset_idx=18, start_col_offset_idx=0, end_col_offset_idx=1, text='JST FX Index Calculations...........................................................................................................................................16', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=472.27000000000004, r=570.15086, b=482.66224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=18, end_row_offset_idx=19, start_col_offset_idx=0, end_col_offset_idx=1, text='Currency-Hedged Indexes ...............................................................................................................................................17', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=82.824, t=493.27000000000004, r=570.15086, b=503.66224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=19, end_row_offset_idx=20, start_col_offset_idx=0, end_col_offset_idx=1, text='Monthly Currency Hedge Index Calculations ..............................................................................................................17', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=82.824, t=514.27, r=570.15086, b=524.6622448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=20, end_row_offset_idx=21, start_col_offset_idx=0, end_col_offset_idx=1, text='Daily Currency Hedge Index Calculations....................................................................................................................18', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=535.27, r=570.15086, b=545.6622448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=21, end_row_offset_idx=22, start_col_offset_idx=0, end_col_offset_idx=1, text='Total/Gross and Net Return Calculations ........................................................................................................................20', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=82.824, t=556.27, r=570.15086, b=566.6622448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=22, end_row_offset_idx=23, start_col_offset_idx=0, end_col_offset_idx=1, text='Index Conversion Into Another Currency.....................................................................................................................21', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=577.3, r=570.15086, b=587.6922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=23, end_row_offset_idx=24, start_col_offset_idx=0, end_col_offset_idx=1, text='Local Currency Return Calculation ..................................................................................................................................22', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=598.3, r=570.15086, b=608.6922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=24, end_row_offset_idx=25, start_col_offset_idx=0, end_col_offset_idx=1, text='Real-Time Calculation .....................................................................................................................................................22', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=619.3, r=570.15086, b=629.6922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=25, end_row_offset_idx=26, start_col_offset_idx=0, end_col_offset_idx=1, text='Appendix .........................................................................................................................................................................23', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=82.824, t=640.3, r=570.15086, b=650.6922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=26, end_row_offset_idx=27, start_col_offset_idx=0, end_col_offset_idx=1, text='Appendix 1: Modifications to the Rulebook ................................................................................................................23', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=82.824, t=661.3, r=570.15086, b=671.6922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=27, end_row_offset_idx=28, start_col_offset_idx=0, end_col_offset_idx=1, text='Index Conversion Into Another Currency.....................................................................................................................23', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=682.3, r=570.15086, b=692.6922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=28, end_row_offset_idx=29, start_col_offset_idx=0, end_col_offset_idx=1, text='About Morningstar Indexes.............................................................................................................................................24', column_header=False, row_header=False, row_section=False, fillable=False)], num_rows=29, num_cols=1, orientation=, grid=[[TableCell(bbox=BoundingBox(l=72.024, t=94.22000000000003, r=570.2708799999999, b=104.61224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='Overview ...........................................................................................................................................................................3', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=115.22000000000003, r=570.2708799999999, b=125.61224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='Index Divisor .....................................................................................................................................................................3', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=136.22000000000003, r=570.2708799999999, b=146.61224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='Market Capitalization and Float Market Capitalization Weighted Indexes........................................................................3', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=157.22000000000003, r=570.2708799999999, b=167.61224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='Equal Weighted Indexes....................................................................................................................................................5', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=178.22000000000003, r=570.2708799999999, b=188.61224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=0, end_col_offset_idx=1, text='Dividend Dollar-Weighted Indexes....................................................................................................................................6', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=199.22000000000003, r=570.2708799999999, b=209.61224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=0, end_col_offset_idx=1, text='Capped-Weighted Indexes ................................................................................................................................................7', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=82.824, t=220.22000000000003, r=570.2708799999999, b=230.61224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=0, end_col_offset_idx=1, text='Capped-Weighting Adjustments ...................................................................................................................................7', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=241.25, r=570.15086, b=251.64224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=0, end_col_offset_idx=1, text='Liquidity Informed Weighting..........................................................................................................................................10', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=82.824, t=262.25, r=570.15086, b=272.64224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=8, end_row_offset_idx=9, start_col_offset_idx=0, end_col_offset_idx=1, text='Liquidity Informed Weighting Algorithm.....................................................................................................................10', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=283.25, r=570.15086, b=293.64224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=9, end_row_offset_idx=10, start_col_offset_idx=0, end_col_offset_idx=1, text='Target Volatility Indexes..................................................................................................................................................12', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=82.824, t=304.25, r=570.15086, b=314.64224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=10, end_row_offset_idx=11, start_col_offset_idx=0, end_col_offset_idx=1, text='Determining the Target Exposure................................................................................................................................12', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=82.824, t=325.25, r=570.15086, b=335.64224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=11, end_row_offset_idx=12, start_col_offset_idx=0, end_col_offset_idx=1, text='Measuring Volatility....................................................................................................................................................12', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=82.824, t=346.25, r=570.15086, b=356.64224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=12, end_row_offset_idx=13, start_col_offset_idx=0, end_col_offset_idx=1, text='Excess Return Calculation...........................................................................................................................................13', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=82.824, t=367.25, r=570.15086, b=377.64224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=13, end_row_offset_idx=14, start_col_offset_idx=0, end_col_offset_idx=1, text='Trading Cost Adjustment Factor, or TCAF...................................................................................................................13', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=388.25, r=570.15086, b=398.64224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=14, end_row_offset_idx=15, start_col_offset_idx=0, end_col_offset_idx=1, text='Exchange-Rate Rules ......................................................................................................................................................15', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=82.824, t=409.27000000000004, r=570.15086, b=419.66224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=15, end_row_offset_idx=16, start_col_offset_idx=0, end_col_offset_idx=1, text='Exchange-Rate Data Source........................................................................................................................................15', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=82.824, t=430.27000000000004, r=570.15086, b=440.66224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=16, end_row_offset_idx=17, start_col_offset_idx=0, end_col_offset_idx=1, text='Standard Exchange-Rate Index Calculations...............................................................................................................15', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=82.824, t=451.27000000000004, r=570.15086, b=461.66224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=17, end_row_offset_idx=18, start_col_offset_idx=0, end_col_offset_idx=1, text='JST FX Index Calculations...........................................................................................................................................16', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=472.27000000000004, r=570.15086, b=482.66224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=18, end_row_offset_idx=19, start_col_offset_idx=0, end_col_offset_idx=1, text='Currency-Hedged Indexes ...............................................................................................................................................17', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=82.824, t=493.27000000000004, r=570.15086, b=503.66224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=19, end_row_offset_idx=20, start_col_offset_idx=0, end_col_offset_idx=1, text='Monthly Currency Hedge Index Calculations ..............................................................................................................17', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=82.824, t=514.27, r=570.15086, b=524.6622448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=20, end_row_offset_idx=21, start_col_offset_idx=0, end_col_offset_idx=1, text='Daily Currency Hedge Index Calculations....................................................................................................................18', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=535.27, r=570.15086, b=545.6622448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=21, end_row_offset_idx=22, start_col_offset_idx=0, end_col_offset_idx=1, text='Total/Gross and Net Return Calculations ........................................................................................................................20', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=82.824, t=556.27, r=570.15086, b=566.6622448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=22, end_row_offset_idx=23, start_col_offset_idx=0, end_col_offset_idx=1, text='Index Conversion Into Another Currency.....................................................................................................................21', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=577.3, r=570.15086, b=587.6922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=23, end_row_offset_idx=24, start_col_offset_idx=0, end_col_offset_idx=1, text='Local Currency Return Calculation ..................................................................................................................................22', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=598.3, r=570.15086, b=608.6922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=24, end_row_offset_idx=25, start_col_offset_idx=0, end_col_offset_idx=1, text='Real-Time Calculation .....................................................................................................................................................22', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=619.3, r=570.15086, b=629.6922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=25, end_row_offset_idx=26, start_col_offset_idx=0, end_col_offset_idx=1, text='Appendix .........................................................................................................................................................................23', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=82.824, t=640.3, r=570.15086, b=650.6922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=26, end_row_offset_idx=27, start_col_offset_idx=0, end_col_offset_idx=1, text='Appendix 1: Modifications to the Rulebook ................................................................................................................23', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=82.824, t=661.3, r=570.15086, b=671.6922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=27, end_row_offset_idx=28, start_col_offset_idx=0, end_col_offset_idx=1, text='Index Conversion Into Another Currency.....................................................................................................................23', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=682.3, r=570.15086, b=692.6922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=28, end_row_offset_idx=29, start_col_offset_idx=0, end_col_offset_idx=1, text='About Morningstar Indexes.............................................................................................................................................24', column_header=False, row_header=False, row_section=False, fillable=False)]]), annotations=[]), TableItem(self_ref='#/tables/1', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=3, bbox=BoundingBox(l=70.36674499511719, t=440.2411193847656, r=573.1871337890625, b=374.9214172363281, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, data=TableData(table_cells=[TableCell(bbox=BoundingBox(l=72.024, t=354.89000000000004, r=75.03792, b=365.2822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=117.02, t=354.89000000000004, r=235.66928, b=365.2822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='= Time the index is calculated', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=371.21000000000004, r=86.30976, b=381.60224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='D(t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=117.02, t=371.21000000000004, r=193.56272000000007, b=381.60224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='= Divisor at time (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=388.49, r=118.71104, b=398.88224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='Initial MV(t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=126.02, t=388.49, r=291.44336, b=398.88224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='Initial market value of the index at time (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=405.67, r=90.50259999999999, b=416.06224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='I(t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=117.02, t=405.67, r=261.4086, b=416.06224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='= Index level at the close of day (t-1)', column_header=False, row_header=False, row_section=False, fillable=False)], num_rows=4, num_cols=2, orientation=, grid=[[TableCell(bbox=BoundingBox(l=72.024, t=354.89000000000004, r=75.03792, b=365.2822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=117.02, t=354.89000000000004, r=235.66928, b=365.2822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='= Time the index is calculated', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=371.21000000000004, r=86.30976, b=381.60224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='D(t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=117.02, t=371.21000000000004, r=193.56272000000007, b=381.60224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='= Divisor at time (t)', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=388.49, r=118.71104, b=398.88224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='Initial MV(t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=126.02, t=388.49, r=291.44336, b=398.88224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='Initial market value of the index at time (t)', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=405.67, r=90.50259999999999, b=416.06224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='I(t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=117.02, t=405.67, r=261.4086, b=416.06224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='= Index level at the close of day (t-1)', column_header=False, row_header=False, row_section=False, fillable=False)]]), annotations=[]), TableItem(self_ref='#/tables/2', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=4, bbox=BoundingBox(l=70.03433990478516, t=709.9527816772461, r=572.9049682617188, b=665.2265777587891, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, data=TableData(table_cells=[TableCell(bbox=BoundingBox(l=72.024, t=83.42000000000007, r=78.37943999999999, b=94.49979591836734, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='P i', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=108.02, t=83.42000000000007, r=113.86016, b=93.8122448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=144.02, t=83.42000000000007, r=306.77168000000006, b=93.8122448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=2, end_col_offset_idx=3, text='Share price of security i in index currency', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=99.74000000000001, r=79.33944, b=110.81979591836739, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='Q i', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=108.02, t=99.74000000000001, r=113.86016, b=110.13224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=144.02, t=99.74000000000001, r=478.96023999999994, b=110.13224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=2, end_col_offset_idx=3, text='Total shares outstanding of security i (adjusted for float if float market-cap weighted)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=116.77999999999997, r=77.14656, b=127.1722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='n', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=108.02, t=116.77999999999997, r=113.86016, b=127.1722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=144.02, t=116.77999999999997, r=274.94744000000003, b=127.1722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=2, end_col_offset_idx=3, text='Number of securities in the index', column_header=False, row_header=False, row_section=False, fillable=False)], num_rows=3, num_cols=3, orientation=, grid=[[TableCell(bbox=BoundingBox(l=72.024, t=83.42000000000007, r=78.37943999999999, b=94.49979591836734, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='P i', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=108.02, t=83.42000000000007, r=113.86016, b=93.8122448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=144.02, t=83.42000000000007, r=306.77168000000006, b=93.8122448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=2, end_col_offset_idx=3, text='Share price of security i in index currency', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=99.74000000000001, r=79.33944, b=110.81979591836739, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='Q i', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=108.02, t=99.74000000000001, r=113.86016, b=110.13224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=144.02, t=99.74000000000001, r=478.96023999999994, b=110.13224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=2, end_col_offset_idx=3, text='Total shares outstanding of security i (adjusted for float if float market-cap weighted)', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=116.77999999999997, r=77.14656, b=127.1722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='n', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=108.02, t=116.77999999999997, r=113.86016, b=127.1722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=144.02, t=116.77999999999997, r=274.94744000000003, b=127.1722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=2, end_col_offset_idx=3, text='Number of securities in the index', column_header=False, row_header=False, row_section=False, fillable=False)]]), annotations=[]), TableItem(self_ref='#/tables/3', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=4, bbox=BoundingBox(l=69.76631927490234, t=184.3792724609375, r=573.0699462890625, b=83.86846923828125, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, data=TableData(table_cells=[TableCell(bbox=BoundingBox(l=72.024, t=611.86, r=96.96336, b=622.2522448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='D(t+1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=111.26, t=611.86, r=199.68800000000007, b=622.2522448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='= Divisor at time (t+1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=628.1800000000001, r=86.30976, b=638.5722448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='D(t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=111.26, t=628.1800000000001, r=189.1227200000001, b=638.5722448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='= Divisor at time (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=645.34, r=86.67504, b=656.4197959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='P i (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=111.26, t=645.34, r=325.0140799999999, b=655.7322448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='= Share price of security i in index currency at time (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=662.5, r=87.63503999999999, b=673.5797959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='Q i (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=111.26, t=662.5, r=456.52023999999994, b=688.0122448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='= Total shares outstanding of security i (adjusted for float if float market-cap weighted) at time (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=694.896, r=77.14656, b=705.2882448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=0, end_col_offset_idx=1, text='n', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=111.26, t=694.896, r=252.40400000000005, b=705.2882448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=1, end_col_offset_idx=2, text='= Number of securities in the index', column_header=False, row_header=False, row_section=False, fillable=False)], num_rows=5, num_cols=2, orientation=, grid=[[TableCell(bbox=BoundingBox(l=72.024, t=611.86, r=96.96336, b=622.2522448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='D(t+1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=111.26, t=611.86, r=199.68800000000007, b=622.2522448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='= Divisor at time (t+1)', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=628.1800000000001, r=86.30976, b=638.5722448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='D(t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=111.26, t=628.1800000000001, r=189.1227200000001, b=638.5722448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='= Divisor at time (t)', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=645.34, r=86.67504, b=656.4197959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='P i (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=111.26, t=645.34, r=325.0140799999999, b=655.7322448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='= Share price of security i in index currency at time (t)', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=662.5, r=87.63503999999999, b=673.5797959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='Q i (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=111.26, t=662.5, r=456.52023999999994, b=688.0122448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='= Total shares outstanding of security i (adjusted for float if float market-cap weighted) at time (t)', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=694.896, r=77.14656, b=705.2882448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=0, end_col_offset_idx=1, text='n', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=111.26, t=694.896, r=252.40400000000005, b=705.2882448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=1, end_col_offset_idx=2, text='= Number of securities in the index', column_header=False, row_header=False, row_section=False, fillable=False)]]), annotations=[]), TableItem(self_ref='#/tables/4', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=5, bbox=BoundingBox(l=69.87272644042969, t=300.4817810058594, r=573.2786865234375, b=156.55084228515625, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, data=TableData(table_cells=[TableCell(bbox=BoundingBox(l=72.024, t=496.15000000000003, r=86.91503999999999, b=507.22979591836736, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='S i (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.82, t=496.15000000000003, r=304.88144, b=506.54224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='= Constructed shares of company i at time (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=512.47, r=87.63503999999999, b=523.5497959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='Q i (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.82, t=512.47, r=383.12048, b=522.8622448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='= Float-adjusted total outstanding shares of company i at time (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=529.75, r=77.14656, b=540.1422448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='n', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.82, t=529.75, r=252.90512000000007, b=540.1422448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='= Number of stocks in the index', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=547.03, r=75.03792, b=557.4222448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.82, t=547.03, r=244.66928000000001, b=557.4222448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='= Time the index is calculated', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=564.19, r=78.37943999999999, b=575.2697959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=0, end_col_offset_idx=1, text='P i', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.82, t=564.19, r=338.45408, b=574.5822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=1, end_col_offset_idx=2, text='= Share price of security i in index currency at time (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=581.5, r=84.85943999999999, b=592.5797959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=0, end_col_offset_idx=1, text='IW i', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.82, t=581.5, r=318.65936000000016, b=591.8922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=1, end_col_offset_idx=2, text='= Company weight in index i at rebalancing time', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=598.78, r=77.56608, b=609.1722448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=0, end_col_offset_idx=1, text='C', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.82, t=598.78, r=450.36568, b=609.1722448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=1, end_col_offset_idx=2, text='= Index-specific constant used to limit index shares beyond its outstanding shares', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=616.06, r=289.52479999999997, b=627.1397959183673, coord_origin=), row_span=1, col_span=2, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=0, end_col_offset_idx=2, text='Float Mcap i (t)= Float market cap of security i at time (t)', column_header=False, row_header=False, row_section=False, fillable=False)], num_rows=8, num_cols=2, orientation=, grid=[[TableCell(bbox=BoundingBox(l=72.024, t=496.15000000000003, r=86.91503999999999, b=507.22979591836736, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='S i (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.82, t=496.15000000000003, r=304.88144, b=506.54224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='= Constructed shares of company i at time (t)', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=512.47, r=87.63503999999999, b=523.5497959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='Q i (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.82, t=512.47, r=383.12048, b=522.8622448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='= Float-adjusted total outstanding shares of company i at time (t)', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=529.75, r=77.14656, b=540.1422448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='n', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.82, t=529.75, r=252.90512000000007, b=540.1422448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='= Number of stocks in the index', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=547.03, r=75.03792, b=557.4222448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.82, t=547.03, r=244.66928000000001, b=557.4222448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='= Time the index is calculated', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=564.19, r=78.37943999999999, b=575.2697959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=0, end_col_offset_idx=1, text='P i', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.82, t=564.19, r=338.45408, b=574.5822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=1, end_col_offset_idx=2, text='= Share price of security i in index currency at time (t)', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=581.5, r=84.85943999999999, b=592.5797959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=0, end_col_offset_idx=1, text='IW i', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.82, t=581.5, r=318.65936000000016, b=591.8922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=1, end_col_offset_idx=2, text='= Company weight in index i at rebalancing time', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=598.78, r=77.56608, b=609.1722448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=0, end_col_offset_idx=1, text='C', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.82, t=598.78, r=450.36568, b=609.1722448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=1, end_col_offset_idx=2, text='= Index-specific constant used to limit index shares beyond its outstanding shares', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=616.06, r=289.52479999999997, b=627.1397959183673, coord_origin=), row_span=1, col_span=2, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=0, end_col_offset_idx=2, text='Float Mcap i (t)= Float market cap of security i at time (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=616.06, r=289.52479999999997, b=627.1397959183673, coord_origin=), row_span=1, col_span=2, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=0, end_col_offset_idx=2, text='Float Mcap i (t)= Float market cap of security i at time (t)', column_header=False, row_header=False, row_section=False, fillable=False)]]), annotations=[]), TableItem(self_ref='#/tables/5', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=10, bbox=BoundingBox(l=70.70146942138672, t=568.7071380615234, r=547.9601440429688, b=464.956298828125, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, data=TableData(table_cells=[TableCell(bbox=BoundingBox(l=72.024, t=223.94000000000005, r=101.19168000000002, b=250.0497959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='Where: w i', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=214.25, t=237.79999999999995, r=423.9911200000001, b=249.36224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='= final weight assigned to the i th security in the index', column_header=True, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=77.424, t=254.21000000000004, r=90.37943999999999, b=265.2897959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='cw i', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=214.25, t=253.06999999999994, r=397.54904000000005, b=264.60224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='= current weight of the i th security in the index', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=77.424, t=269.45000000000005, r=100.69944, b=280.5297959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='ADTV i', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=214.25, t=268.30999999999995, r=445.26472, b=279.8422448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='= 3-month Average Daily Trading Volume of the i th security', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=77.424, t=284.69000000000005, r=129.98624, b=295.0822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='Days to trade', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=214.25, t=284.69000000000005, r=513.1129599999999, b=295.0822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='= maximum number of trade days available to trade into the target portfolio', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=77.424, t=299.93, r=97.98048, b=310.32224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=0, end_col_offset_idx=1, text='AUM', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=214.25, t=299.93, r=346.4405600000002, b=310.32224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=1, end_col_offset_idx=2, text='= assumed hypothetical fund size', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=77.424, t=315.17, r=202.61760000000004, b=325.56224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=0, end_col_offset_idx=1, text='%ADTV being traded in one day', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=214.25, t=315.17, r=489.5323999999999, b=325.56224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=1, end_col_offset_idx=2, text='= maximum percentage of ADTV to be traded in a day for any security', column_header=False, row_header=False, row_section=False, fillable=False)], num_rows=6, num_cols=2, orientation=, grid=[[TableCell(bbox=BoundingBox(l=72.024, t=223.94000000000005, r=101.19168000000002, b=250.0497959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='Where: w i', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=214.25, t=237.79999999999995, r=423.9911200000001, b=249.36224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='= final weight assigned to the i th security in the index', column_header=True, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=77.424, t=254.21000000000004, r=90.37943999999999, b=265.2897959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='cw i', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=214.25, t=253.06999999999994, r=397.54904000000005, b=264.60224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='= current weight of the i th security in the index', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=77.424, t=269.45000000000005, r=100.69944, b=280.5297959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='ADTV i', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=214.25, t=268.30999999999995, r=445.26472, b=279.8422448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='= 3-month Average Daily Trading Volume of the i th security', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=77.424, t=284.69000000000005, r=129.98624, b=295.0822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='Days to trade', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=214.25, t=284.69000000000005, r=513.1129599999999, b=295.0822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='= maximum number of trade days available to trade into the target portfolio', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=77.424, t=299.93, r=97.98048, b=310.32224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=0, end_col_offset_idx=1, text='AUM', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=214.25, t=299.93, r=346.4405600000002, b=310.32224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=1, end_col_offset_idx=2, text='= assumed hypothetical fund size', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=77.424, t=315.17, r=202.61760000000004, b=325.56224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=0, end_col_offset_idx=1, text='%ADTV being traded in one day', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=214.25, t=315.17, r=489.5323999999999, b=325.56224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=1, end_col_offset_idx=2, text='= maximum percentage of ADTV to be traded in a day for any security', column_header=False, row_header=False, row_section=False, fillable=False)]]), annotations=[]), TableItem(self_ref='#/tables/6', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=13, bbox=BoundingBox(l=70.70539093017578, t=335.4481201171875, r=571.2953491210938, b=200.37420654296875, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, data=TableData(table_cells=[TableCell(bbox=BoundingBox(l=72.024, t=460.39000000000004, r=76.31304, b=471.46979591836737, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='I t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.22, t=460.39000000000004, r=130.06016, b=470.7822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=153.38, t=460.39000000000004, r=233.40896, b=470.7822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=2, end_col_offset_idx=3, text='Index level on date t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=475.63000000000005, r=85.64928, b=486.7097959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='w t-1', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.22, t=475.63000000000005, r=130.06016, b=486.0222448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=153.38, t=475.63000000000005, r=319.02344, b=486.0222448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=2, end_col_offset_idx=3, text='Realized exposure of the index on date t-1', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=490.87, r=79.43304, b=501.94979591836733, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='B t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.22, t=490.87, r=130.06016, b=501.26224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=153.38, t=490.87, r=254.77136, b=501.26224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=2, end_col_offset_idx=3, text='Base index level on date t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=506.11, r=87.59304, b=517.1897959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='FFE t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.22, t=506.11, r=130.06016, b=516.5022448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=153.38, t=506.11, r=552.1232800000001, b=546.5022448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=2, end_col_offset_idx=3, text='Index capitalizing at the federal-funds effective rate on date t with a base value of 1 on the inception date of the base index, calculated daily using value from date t-1, on an (actual/360) day count basis. The underlying fed-funds rates follow the U.S. Fed calendar', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=551.35, r=95.15304, b=562.4297959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=0, end_col_offset_idx=1, text='SOFR t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.22, t=551.35, r=130.06016, b=561.7422448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=153.38, t=551.35, r=549.2964800000002, b=591.7722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=2, end_col_offset_idx=3, text='Index capitalizing at the SOFR rate on date t with a base value of 1 on the inception date of the base index, calculated daily using value from date t-1, on an (actual/360) day count basis. The underlying SOFR rates follow the U.S. Fed calendar', column_header=False, row_header=False, row_section=False, fillable=False)], num_rows=5, num_cols=3, orientation=, grid=[[TableCell(bbox=BoundingBox(l=72.024, t=460.39000000000004, r=76.31304, b=471.46979591836737, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='I t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.22, t=460.39000000000004, r=130.06016, b=470.7822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=153.38, t=460.39000000000004, r=233.40896, b=470.7822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=2, end_col_offset_idx=3, text='Index level on date t', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=475.63000000000005, r=85.64928, b=486.7097959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='w t-1', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.22, t=475.63000000000005, r=130.06016, b=486.0222448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=153.38, t=475.63000000000005, r=319.02344, b=486.0222448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=2, end_col_offset_idx=3, text='Realized exposure of the index on date t-1', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=490.87, r=79.43304, b=501.94979591836733, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='B t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.22, t=490.87, r=130.06016, b=501.26224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=153.38, t=490.87, r=254.77136, b=501.26224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=2, end_col_offset_idx=3, text='Base index level on date t', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=506.11, r=87.59304, b=517.1897959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='FFE t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.22, t=506.11, r=130.06016, b=516.5022448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=153.38, t=506.11, r=552.1232800000001, b=546.5022448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=2, end_col_offset_idx=3, text='Index capitalizing at the federal-funds effective rate on date t with a base value of 1 on the inception date of the base index, calculated daily using value from date t-1, on an (actual/360) day count basis. The underlying fed-funds rates follow the U.S. Fed calendar', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=551.35, r=95.15304, b=562.4297959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=0, end_col_offset_idx=1, text='SOFR t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=124.22, t=551.35, r=130.06016, b=561.7422448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=153.38, t=551.35, r=549.2964800000002, b=591.7722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=2, end_col_offset_idx=3, text='Index capitalizing at the SOFR rate on date t with a base value of 1 on the inception date of the base index, calculated daily using value from date t-1, on an (actual/360) day count basis. The underlying SOFR rates follow the U.S. Fed calendar', column_header=False, row_header=False, row_section=False, fillable=False)]]), annotations=[]), TableItem(self_ref='#/tables/7', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=16, bbox=BoundingBox(l=70.89044189453125, t=545.1987152099609, r=571.3773803710938, b=450.5768127441406, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, data=TableData(table_cells=[TableCell(bbox=BoundingBox(l=72.024, t=251.93000000000006, r=144.61200000000008, b=262.3222448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='Index Level JPY (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=230.69, t=251.93000000000006, r=236.53016, b=262.3222448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=246.29, t=251.93000000000006, r=432.3090399999999, b=262.3222448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=2, end_col_offset_idx=3, text='Index level in JST 10 a.m. at the close of day (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=267.4100000000001, r=152.29860000000005, b=277.8022448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='Index Level JPY (t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=230.69, t=267.4100000000001, r=236.53016, b=277.8022448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=246.29, t=267.4100000000001, r=439.9886, b=277.8022448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=2, end_col_offset_idx=3, text='Index level in JST 10 a.m. at the close of day (t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=282.89000000000004, r=154.57860000000002, b=293.2822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='Index Level USD (t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=230.69, t=282.89000000000004, r=236.53016, b=293.2822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=246.29, t=282.89000000000004, r=411.3086, b=293.2822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=2, end_col_offset_idx=3, text='Index level in USD at the close of day (t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=298.37, r=154.57860000000002, b=308.76224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='Index Level USD (t-2)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=230.69, t=298.37, r=236.53016, b=308.76224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=246.29, t=298.37, r=411.3086, b=308.76224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=2, end_col_offset_idx=3, text='Index level in USD at the close of day (t-2)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=313.97, r=110.79648000000002, b=324.36224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=0, end_col_offset_idx=1, text='FXRate (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=230.69, t=313.97, r=236.53016, b=324.36224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=246.29, t=313.97, r=447.08776, b=324.36224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=2, end_col_offset_idx=3, text='Exchange rate of JPY/USD at 10 a.m. JST at day (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=329.45000000000005, r=118.6986, b=339.8422448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=0, end_col_offset_idx=1, text='FXRate (t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=230.69, t=329.45000000000005, r=236.53016, b=339.8422448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=246.29, t=329.45000000000005, r=454.7486, b=339.8422448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=2, end_col_offset_idx=3, text='Exchange rate of JPY/USD at 10 a.m. JST at day (t-1)', column_header=False, row_header=False, row_section=False, fillable=False)], num_rows=6, num_cols=3, orientation=, grid=[[TableCell(bbox=BoundingBox(l=72.024, t=251.93000000000006, r=144.61200000000008, b=262.3222448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='Index Level JPY (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=230.69, t=251.93000000000006, r=236.53016, b=262.3222448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=246.29, t=251.93000000000006, r=432.3090399999999, b=262.3222448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=2, end_col_offset_idx=3, text='Index level in JST 10 a.m. at the close of day (t)', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=267.4100000000001, r=152.29860000000005, b=277.8022448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='Index Level JPY (t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=230.69, t=267.4100000000001, r=236.53016, b=277.8022448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=246.29, t=267.4100000000001, r=439.9886, b=277.8022448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=2, end_col_offset_idx=3, text='Index level in JST 10 a.m. at the close of day (t-1)', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=282.89000000000004, r=154.57860000000002, b=293.2822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='Index Level USD (t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=230.69, t=282.89000000000004, r=236.53016, b=293.2822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=246.29, t=282.89000000000004, r=411.3086, b=293.2822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=2, end_col_offset_idx=3, text='Index level in USD at the close of day (t-1)', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=298.37, r=154.57860000000002, b=308.76224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='Index Level USD (t-2)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=230.69, t=298.37, r=236.53016, b=308.76224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=246.29, t=298.37, r=411.3086, b=308.76224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=2, end_col_offset_idx=3, text='Index level in USD at the close of day (t-2)', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=313.97, r=110.79648000000002, b=324.36224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=0, end_col_offset_idx=1, text='FXRate (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=230.69, t=313.97, r=236.53016, b=324.36224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=246.29, t=313.97, r=447.08776, b=324.36224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=2, end_col_offset_idx=3, text='Exchange rate of JPY/USD at 10 a.m. JST at day (t)', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=329.45000000000005, r=118.6986, b=339.8422448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=0, end_col_offset_idx=1, text='FXRate (t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=230.69, t=329.45000000000005, r=236.53016, b=339.8422448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=246.29, t=329.45000000000005, r=454.7486, b=339.8422448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=2, end_col_offset_idx=3, text='Exchange rate of JPY/USD at 10 a.m. JST at day (t-1)', column_header=False, row_header=False, row_section=False, fillable=False)]]), annotations=[]), TableItem(self_ref='#/tables/8', parent=RefItem(cref='#/body'), children=[RefItem(cref='#/texts/247'), RefItem(cref='#/texts/248')], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=17, bbox=BoundingBox(l=70.69572448730469, t=239.38653564453125, r=571.580322265625, b=149.03289794921875, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[RefItem(cref='#/texts/247'), RefItem(cref='#/texts/248')], image=None, data=TableData(table_cells=[TableCell(bbox=BoundingBox(l=72.024, t=553.39, r=101.19168000000002, b=563.7822448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='Where:', column_header=True, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=568.99, r=225.92192000000006, b=579.3822448979593, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=2, end_col_offset_idx=3, text='Hedge Return', column_header=True, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=584.5, r=161.38016, b=594.8922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=584.5, r=530.95456, b=594.8922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=2, end_col_offset_idx=3, text='Hedge Ratio of currency i in the index (proportion of the foreign currency exposure hedged)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=599.98, r=77.14656, b=610.3722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='n', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=599.98, r=161.38016, b=610.3722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=599.98, r=370.0160000000002, b=610.3722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=2, end_col_offset_idx=3, text='Number of foreign currencies underlying the index', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=615.46, r=92.74534, b=626.5397959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='W i1-1d', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=615.46, r=161.38016, b=625.8522448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=615.46, r=555.52864, b=640.8522448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=2, end_col_offset_idx=3, text='Weight of currency i in the index as of one business day before the previous rebalance date, after incorporating corporate actions and rebalancing in the underlying index, effective at the open of', column_header=False, row_header=False, row_section=False, fillable=False)], num_rows=4, num_cols=3, orientation=, grid=[[TableCell(bbox=BoundingBox(l=72.024, t=553.39, r=101.19168000000002, b=563.7822448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='Where:', column_header=True, row_header=False, row_section=False, fillable=False), TableCell(bbox=None, row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=568.99, r=225.92192000000006, b=579.3822448979593, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=2, end_col_offset_idx=3, text='Hedge Return', column_header=True, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=None, row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=584.5, r=161.38016, b=594.8922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=584.5, r=530.95456, b=594.8922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=2, end_col_offset_idx=3, text='Hedge Ratio of currency i in the index (proportion of the foreign currency exposure hedged)', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=599.98, r=77.14656, b=610.3722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='n', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=599.98, r=161.38016, b=610.3722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=599.98, r=370.0160000000002, b=610.3722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=2, end_col_offset_idx=3, text='Number of foreign currencies underlying the index', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=615.46, r=92.74534, b=626.5397959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='W i1-1d', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=615.46, r=161.38016, b=625.8522448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=615.46, r=555.52864, b=640.8522448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=2, end_col_offset_idx=3, text='Weight of currency i in the index as of one business day before the previous rebalance date, after incorporating corporate actions and rebalancing in the underlying index, effective at the open of', column_header=False, row_header=False, row_section=False, fillable=False)]]), annotations=[]), TableItem(self_ref='#/tables/9', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=18, bbox=BoundingBox(l=70.63359832763672, t=703.8247604370117, r=571.3936767578125, b=538.1233825683594, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, data=TableData(table_cells=[TableCell(bbox=BoundingBox(l=72.024, t=98.89999999999998, r=111.70134000000002, b=109.97979591836736, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='FXRate i1-1d', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=98.89999999999998, r=161.38016, b=109.29224489795911, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=98.89999999999998, r=490.71631999999994, b=109.29224489795911, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=2, end_col_offset_idx=3, text='Spot rate of currency i as of one business day before the previous rebalance date', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=114.38, r=103.28928, b=125.45979591836738, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='FFRate i1', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=114.38, r=161.38016, b=124.77224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=114.38, r=406.8344000000001, b=124.77224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=2, end_col_offset_idx=3, text='Forward rate of currency i as of the previous rebalance date', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=133.82000000000005, r=103.28928, b=144.89979591836732, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='FFRate i2', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=133.82000000000005, r=161.38016, b=144.21224489795918, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=133.82000000000005, r=401.77808000000016, b=144.21224489795918, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=2, end_col_offset_idx=3, text='Forward rate of currency i as of the current rebalance date', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=149.30000000000007, r=91.00712, b=159.6922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='MAF', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=149.30000000000007, r=161.38016, b=159.6922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=149.30000000000007, r=564.1343199999998, b=174.6922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=2, end_col_offset_idx=3, text='Monthly adjustment factor to account for the one-day lag between the rebalance date and the date on which notional amounts are determined', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=179.77999999999997, r=134.74134, b=190.85979591836735, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=0, end_col_offset_idx=1, text='HedgedIndex 1-1d', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=179.77999999999997, r=161.38016, b=190.1722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=179.77999999999997, r=478.35152000000005, b=190.1722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=2, end_col_offset_idx=3, text='Hedged index level as of one business day before the previous rebalance date', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=195.26, r=127.28528, b=206.33979591836737, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=0, end_col_offset_idx=1, text='HedgedIndex 1', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=195.26, r=161.38016, b=205.65224489795912, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=195.26, r=380.07344, b=205.65224489795912, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=2, end_col_offset_idx=3, text='Hedged index level as of the previous rebalance date', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=210.74, r=127.28528, b=221.8197959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=0, end_col_offset_idx=1, text='HedgedIndex 2', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=210.74, r=161.38016, b=221.13224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=210.74, r=375.02815999999996, b=221.13224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=2, end_col_offset_idx=3, text='Hedged index level as of the current rebalance date', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=226.34000000000003, r=137.48528, b=237.4197959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=0, end_col_offset_idx=1, text='UnhedgedIndex 1', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=226.34000000000003, r=161.38016, b=236.73224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=226.34000000000003, r=392.2726399999999, b=236.73224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=2, end_col_offset_idx=3, text='Underlying index level as of the previous rebalance date', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=241.85000000000002, r=137.48528, b=252.9297959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=8, end_row_offset_idx=9, start_col_offset_idx=0, end_col_offset_idx=1, text='UnhedgedIndex 2', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=241.85000000000002, r=161.38016, b=252.24224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=8, end_row_offset_idx=9, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=241.85000000000002, r=387.45255999999995, b=252.24224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=8, end_row_offset_idx=9, start_col_offset_idx=2, end_col_offset_idx=3, text='Underlying index level as of the current rebalance date', column_header=False, row_header=False, row_section=False, fillable=False)], num_rows=9, num_cols=3, orientation=, grid=[[TableCell(bbox=BoundingBox(l=72.024, t=98.89999999999998, r=111.70134000000002, b=109.97979591836736, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='FXRate i1-1d', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=98.89999999999998, r=161.38016, b=109.29224489795911, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=98.89999999999998, r=490.71631999999994, b=109.29224489795911, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=2, end_col_offset_idx=3, text='Spot rate of currency i as of one business day before the previous rebalance date', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=114.38, r=103.28928, b=125.45979591836738, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='FFRate i1', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=114.38, r=161.38016, b=124.77224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=114.38, r=406.8344000000001, b=124.77224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=2, end_col_offset_idx=3, text='Forward rate of currency i as of the previous rebalance date', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=133.82000000000005, r=103.28928, b=144.89979591836732, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='FFRate i2', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=133.82000000000005, r=161.38016, b=144.21224489795918, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=133.82000000000005, r=401.77808000000016, b=144.21224489795918, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=2, end_col_offset_idx=3, text='Forward rate of currency i as of the current rebalance date', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=149.30000000000007, r=91.00712, b=159.6922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='MAF', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=149.30000000000007, r=161.38016, b=159.6922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=149.30000000000007, r=564.1343199999998, b=174.6922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=2, end_col_offset_idx=3, text='Monthly adjustment factor to account for the one-day lag between the rebalance date and the date on which notional amounts are determined', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=179.77999999999997, r=134.74134, b=190.85979591836735, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=0, end_col_offset_idx=1, text='HedgedIndex 1-1d', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=179.77999999999997, r=161.38016, b=190.1722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=179.77999999999997, r=478.35152000000005, b=190.1722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=2, end_col_offset_idx=3, text='Hedged index level as of one business day before the previous rebalance date', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=195.26, r=127.28528, b=206.33979591836737, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=0, end_col_offset_idx=1, text='HedgedIndex 1', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=195.26, r=161.38016, b=205.65224489795912, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=195.26, r=380.07344, b=205.65224489795912, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=2, end_col_offset_idx=3, text='Hedged index level as of the previous rebalance date', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=210.74, r=127.28528, b=221.8197959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=0, end_col_offset_idx=1, text='HedgedIndex 2', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=210.74, r=161.38016, b=221.13224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=210.74, r=375.02815999999996, b=221.13224489795914, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=2, end_col_offset_idx=3, text='Hedged index level as of the current rebalance date', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=226.34000000000003, r=137.48528, b=237.4197959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=0, end_col_offset_idx=1, text='UnhedgedIndex 1', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=226.34000000000003, r=161.38016, b=236.73224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=226.34000000000003, r=392.2726399999999, b=236.73224489795916, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=2, end_col_offset_idx=3, text='Underlying index level as of the previous rebalance date', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=241.85000000000002, r=137.48528, b=252.9297959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=8, end_row_offset_idx=9, start_col_offset_idx=0, end_col_offset_idx=1, text='UnhedgedIndex 2', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=155.54, t=241.85000000000002, r=161.38016, b=252.24224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=8, end_row_offset_idx=9, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=171.02, t=241.85000000000002, r=387.45255999999995, b=252.24224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=8, end_row_offset_idx=9, start_col_offset_idx=2, end_col_offset_idx=3, text='Underlying index level as of the current rebalance date', column_header=False, row_header=False, row_section=False, fillable=False)]]), annotations=[]), TableItem(self_ref='#/tables/10', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=18, bbox=BoundingBox(l=70.5737075805664, t=223.8271484375, r=571.1516723632812, b=82.3509521484375, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, data=TableData(table_cells=[TableCell(bbox=BoundingBox(l=72.024, t=572.86, r=85.67304, b=583.9397959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='HR t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=169.58, t=572.86, r=175.42016, b=583.2522448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=185.42, t=572.86, r=274.53488000000004, b=583.2522448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=2, end_col_offset_idx=3, text='Hedge Return on day t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=588.34, r=75.03792, b=598.7322448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=169.58, t=588.34, r=175.42016, b=598.7322448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=185.42, t=588.34, r=249.72799999999995, b=598.7322448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=2, end_col_offset_idx=3, text='Calculation date', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=603.8199999999999, r=78.06288, b=614.2122448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='D', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=169.58, t=603.8199999999999, r=175.42016, b=614.2122448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=185.42, t=603.8199999999999, r=517.0836799999998, b=614.2122448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=2, end_col_offset_idx=3, text='Number of calendar days between next rebalance date and previous rebalance date', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=619.42, r=78.83304, b=630.4997959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='d t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=169.58, t=619.42, r=175.42016, b=629.8122448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=185.42, t=619.42, r=501.9053600000001, b=629.8122448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=2, end_col_offset_idx=3, text='Number of calendar days between calculation date and previous rebalance date', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=634.9, r=151.90304, b=645.9797959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=0, end_col_offset_idx=1, text='FFRateInterpolated i,t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=169.58, t=634.9, r=175.42016, b=645.2922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=185.42, t=634.9, r=501.90368, b=645.2922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=2, end_col_offset_idx=3, text='Forward rate of currency i interpolated for intramonth performance of the hedge', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=650.38, r=103.66704, b=661.4597959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=0, end_col_offset_idx=1, text='FFRate i,t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=169.58, t=650.38, r=175.42016, b=660.7722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=185.42, t=650.38, r=366.6994400000001, b=660.7722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=2, end_col_offset_idx=3, text='One-month forward rate of currency i on day t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=665.86, r=104.62303999999999, b=676.9397959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=0, end_col_offset_idx=1, text='FXRate i,t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=169.58, t=665.86, r=175.42016, b=676.2522448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=185.42, t=665.86, r=307.1691200000002, b=676.2522448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=2, end_col_offset_idx=3, text='Spot rate of currency i on day t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=681.34, r=126.22904, b=692.4197959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=0, end_col_offset_idx=1, text='HedgedIndex t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=169.58, t=681.34, r=175.42016, b=691.7322448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=185.42, t=681.34, r=306.1976, b=691.7322448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=2, end_col_offset_idx=3, text='Hedged index level as on day t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=696.816, r=136.42904, b=707.8957959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=8, end_row_offset_idx=9, start_col_offset_idx=0, end_col_offset_idx=1, text='UnhedgedIndex t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=169.58, t=696.816, r=175.42016, b=707.2082448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=8, end_row_offset_idx=9, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=185.42, t=696.816, r=318.27536, b=707.2082448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=8, end_row_offset_idx=9, start_col_offset_idx=2, end_col_offset_idx=3, text='Underlying index level as on day t', column_header=False, row_header=False, row_section=False, fillable=False)], num_rows=9, num_cols=3, orientation=, grid=[[TableCell(bbox=BoundingBox(l=72.024, t=572.86, r=85.67304, b=583.9397959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='HR t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=169.58, t=572.86, r=175.42016, b=583.2522448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=185.42, t=572.86, r=274.53488000000004, b=583.2522448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=2, end_col_offset_idx=3, text='Hedge Return on day t', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=588.34, r=75.03792, b=598.7322448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=169.58, t=588.34, r=175.42016, b=598.7322448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=185.42, t=588.34, r=249.72799999999995, b=598.7322448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=2, end_col_offset_idx=3, text='Calculation date', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=603.8199999999999, r=78.06288, b=614.2122448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='D', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=169.58, t=603.8199999999999, r=175.42016, b=614.2122448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=185.42, t=603.8199999999999, r=517.0836799999998, b=614.2122448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=2, end_col_offset_idx=3, text='Number of calendar days between next rebalance date and previous rebalance date', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=619.42, r=78.83304, b=630.4997959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='d t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=169.58, t=619.42, r=175.42016, b=629.8122448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=185.42, t=619.42, r=501.9053600000001, b=629.8122448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=2, end_col_offset_idx=3, text='Number of calendar days between calculation date and previous rebalance date', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=634.9, r=151.90304, b=645.9797959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=0, end_col_offset_idx=1, text='FFRateInterpolated i,t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=169.58, t=634.9, r=175.42016, b=645.2922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=185.42, t=634.9, r=501.90368, b=645.2922448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=2, end_col_offset_idx=3, text='Forward rate of currency i interpolated for intramonth performance of the hedge', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=650.38, r=103.66704, b=661.4597959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=0, end_col_offset_idx=1, text='FFRate i,t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=169.58, t=650.38, r=175.42016, b=660.7722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=185.42, t=650.38, r=366.6994400000001, b=660.7722448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=2, end_col_offset_idx=3, text='One-month forward rate of currency i on day t', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=665.86, r=104.62303999999999, b=676.9397959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=0, end_col_offset_idx=1, text='FXRate i,t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=169.58, t=665.86, r=175.42016, b=676.2522448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=185.42, t=665.86, r=307.1691200000002, b=676.2522448979591, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=2, end_col_offset_idx=3, text='Spot rate of currency i on day t', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=681.34, r=126.22904, b=692.4197959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=0, end_col_offset_idx=1, text='HedgedIndex t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=169.58, t=681.34, r=175.42016, b=691.7322448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=185.42, t=681.34, r=306.1976, b=691.7322448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=2, end_col_offset_idx=3, text='Hedged index level as on day t', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=696.816, r=136.42904, b=707.8957959183674, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=8, end_row_offset_idx=9, start_col_offset_idx=0, end_col_offset_idx=1, text='UnhedgedIndex t', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=169.58, t=696.816, r=175.42016, b=707.2082448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=8, end_row_offset_idx=9, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=185.42, t=696.816, r=318.27536, b=707.2082448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=8, end_row_offset_idx=9, start_col_offset_idx=2, end_col_offset_idx=3, text='Underlying index level as on day t', column_header=False, row_header=False, row_section=False, fillable=False)]]), annotations=[]), TableItem(self_ref='#/tables/11', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=22, bbox=BoundingBox(l=71.03965759277344, t=485.9786071777344, r=571.283935546875, b=377.30450439453125, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, data=TableData(table_cells=[TableCell(bbox=BoundingBox(l=72.024, t=310.73, r=82.85423999999999, b=321.12224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='I(t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=164.54, t=310.73, r=170.38016, b=321.12224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=180.14, t=310.73, r=307.86199999999985, b=321.12224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=2, end_col_offset_idx=3, text='Index level at the close of day (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=326.21000000000004, r=90.50259999999999, b=336.60224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='I(t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=164.54, t=326.21000000000004, r=170.38016, b=336.60224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=180.14, t=326.21000000000004, r=315.5286, b=336.60224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=2, end_col_offset_idx=3, text='Index level at the close of day (t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=341.69000000000005, r=86.67504, b=352.7697959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='P i (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=164.54, t=341.69000000000005, r=170.38016, b=352.0822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=180.14, t=341.69000000000005, r=366.53936, b=352.0822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=2, end_col_offset_idx=3, text='Price of security i in index at the close of day (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=357.17, r=94.34259999999999, b=368.24979591836734, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='P i (t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=164.54, t=357.17, r=170.38016, b=367.56224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=180.14, t=357.17, r=374.34860000000003, b=367.56224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=2, end_col_offset_idx=3, text='Price of security i in index at the close of day (t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=372.77000000000004, r=94.5826, b=383.84979591836736, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=0, end_col_offset_idx=1, text='S i (t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=164.54, t=372.77000000000004, r=170.38016, b=383.16224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=180.14, t=372.77000000000004, r=381.90860000000004, b=383.16224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=2, end_col_offset_idx=3, text='Shares of security i in index at the close of day (t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=388.25, r=117.37859999999999, b=399.3297959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=0, end_col_offset_idx=1, text='FXRate i (t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=164.54, t=388.25, r=170.38016, b=398.64224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=180.14, t=388.25, r=284.32448000000005, b=398.64224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=2, end_col_offset_idx=3, text='Exchange rate of security i', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=403.73, r=100.8226, b=414.8297959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=0, end_col_offset_idx=1, text='IW i (t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=164.54, t=403.73, r=170.38016, b=414.12224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=180.14, t=403.73, r=383.9486, b=414.12224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=2, end_col_offset_idx=3, text='Weight of security i in index at the close of day (t-1)', column_header=False, row_header=False, row_section=False, fillable=False)], num_rows=7, num_cols=3, orientation=, grid=[[TableCell(bbox=BoundingBox(l=72.024, t=310.73, r=82.85423999999999, b=321.12224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='I(t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=164.54, t=310.73, r=170.38016, b=321.12224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=180.14, t=310.73, r=307.86199999999985, b=321.12224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=2, end_col_offset_idx=3, text='Index level at the close of day (t)', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=326.21000000000004, r=90.50259999999999, b=336.60224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='I(t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=164.54, t=326.21000000000004, r=170.38016, b=336.60224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=180.14, t=326.21000000000004, r=315.5286, b=336.60224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=2, end_col_offset_idx=3, text='Index level at the close of day (t-1)', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=341.69000000000005, r=86.67504, b=352.7697959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='P i (t)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=164.54, t=341.69000000000005, r=170.38016, b=352.0822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=180.14, t=341.69000000000005, r=366.53936, b=352.0822448979592, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=2, end_col_offset_idx=3, text='Price of security i in index at the close of day (t)', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=357.17, r=94.34259999999999, b=368.24979591836734, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='P i (t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=164.54, t=357.17, r=170.38016, b=367.56224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=180.14, t=357.17, r=374.34860000000003, b=367.56224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=2, end_col_offset_idx=3, text='Price of security i in index at the close of day (t-1)', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=372.77000000000004, r=94.5826, b=383.84979591836736, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=0, end_col_offset_idx=1, text='S i (t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=164.54, t=372.77000000000004, r=170.38016, b=383.16224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=180.14, t=372.77000000000004, r=381.90860000000004, b=383.16224489795917, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=2, end_col_offset_idx=3, text='Shares of security i in index at the close of day (t-1)', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=388.25, r=117.37859999999999, b=399.3297959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=0, end_col_offset_idx=1, text='FXRate i (t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=164.54, t=388.25, r=170.38016, b=398.64224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=180.14, t=388.25, r=284.32448000000005, b=398.64224489795913, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=2, end_col_offset_idx=3, text='Exchange rate of security i', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=403.73, r=100.8226, b=414.8297959183673, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=0, end_col_offset_idx=1, text='IW i (t-1)', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=164.54, t=403.73, r=170.38016, b=414.12224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=1, end_col_offset_idx=2, text='=', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=180.14, t=403.73, r=383.9486, b=414.12224489795915, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=2, end_col_offset_idx=3, text='Weight of security i in index at the close of day (t-1)', column_header=False, row_header=False, row_section=False, fillable=False)]]), annotations=[]), TableItem(self_ref='#/tables/12', parent=RefItem(cref='#/body'), children=[], content_layer=, meta=None, label=, prov=[ProvenanceItem(page_no=23, bbox=BoundingBox(l=71.12472534179688, t=675.4470520019531, r=533.85107421875, b=428.21575927734375, coord_origin=), charspan=(0, 0))], source=[], comments=[], captions=[], references=[], footnotes=[], image=None, data=TableData(table_cells=[TableCell(bbox=BoundingBox(l=72.024, t=121.66999999999996, r=100.46976000000001, b=131.04561224489794, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='Section', column_header=True, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=121.66999999999996, r=277.70228000000003, b=131.04561224489794, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='Description of Change', column_header=True, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=121.66999999999996, r=492.7109199999999, b=131.04561224489794, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=2, end_col_offset_idx=3, text='Update Date', column_header=True, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=136.54999999999995, r=186.75824000000003, b=145.92561224489793, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='Capped Weighting Adjustments', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=138.94999999999993, r=420.48884000000055, b=162.365612244898, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='Capping constraints will be relaxed if a feasible solution cannot be obtained using the stated algorithm', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=138.94999999999993, r=481.99395999999996, b=148.3256122448979, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=2, end_col_offset_idx=3, text='April 2021', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=170.26999999999998, r=157.40112000000005, b=179.64561224489796, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='Morningstar Committee', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=167.75, r=439.5168800000003, b=188.16561224489794, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='Updated the Morningstar Indexes Product Committee & Morningstar Indexes Oversight Committee', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=170.26999999999998, r=483.17920000000004, b=179.64561224489796, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=2, end_col_offset_idx=3, text='June 2021', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=192.47000000000003, r=149.81159999999997, b=201.845612244898, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='Target Volatility Index', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=192.47000000000003, r=360.1811600000003, b=201.845612244898, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='Replaced 3-Months LIBOR rate with SOFR rate', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=192.47000000000003, r=502.26256, b=201.845612244898, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=2, end_col_offset_idx=3, text='November 2021', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=209.75, r=113.79211999999998, b=219.12561224489798, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=0, end_col_offset_idx=1, text='10 a.m. JST', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=209.63, r=407.70652, b=233.04561224489794, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=1, end_col_offset_idx=2, text='Added a section outlining the calculation of the 10 a.m. JST Morningstar index variants.', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=209.75, r=504.35007999999993, b=219.12561224489798, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=2, end_col_offset_idx=3, text='September 2023', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=240.98000000000002, r=147.68600000000006, b=250.355612244898, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=0, end_col_offset_idx=1, text='Exchange-Rate Rules', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=240.98000000000002, r=244.87412000000003, b=250.355612244898, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=1, end_col_offset_idx=2, text='Added section', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=240.98000000000002, r=504.30436, b=250.355612244898, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=2, end_col_offset_idx=3, text='September 2023', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=264.98, r=180.79716000000008, b=289.35561224489794, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=0, end_col_offset_idx=1, text='Index Conversion Into Another Currency', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=258.26, r=244.87412000000003, b=267.63561224489797, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=1, end_col_offset_idx=2, text='Added section', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=258.26, r=504.30436, b=267.63561224489797, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=2, end_col_offset_idx=3, text='September 2023', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=297.5, r=128.35776000000004, b=306.875612244898, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=0, end_col_offset_idx=1, text='Entire Rulebook', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=297.5, r=333.19940000000025, b=306.875612244898, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=1, end_col_offset_idx=2, text='Moved the rulebook to a new template', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=297.5, r=504.30436, b=306.875612244898, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=2, end_col_offset_idx=3, text='September 2023', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=314.78, r=176.96756000000005, b=324.15561224489795, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=8, end_row_offset_idx=9, start_col_offset_idx=0, end_col_offset_idx=1, text='Liquidity Informed Weighting', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=314.78, r=244.87412000000003, b=324.15561224489795, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=8, end_row_offset_idx=9, start_col_offset_idx=1, end_col_offset_idx=2, text='Added section', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=314.78, r=493.37824, b=324.15561224489795, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=8, end_row_offset_idx=9, start_col_offset_idx=2, end_col_offset_idx=3, text='October 2023', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=332.05999999999995, r=164.38520000000003, b=341.4356122448979, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=9, end_row_offset_idx=10, start_col_offset_idx=0, end_col_offset_idx=1, text='Currency-Hedged Indexes', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=332.05999999999995, r=409.55116000000015, b=341.4356122448979, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=9, end_row_offset_idx=10, start_col_offset_idx=1, end_col_offset_idx=2, text='Hedge Ratio defined at individual currency level in the index', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=332.05999999999995, r=502.26256, b=341.4356122448979, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=9, end_row_offset_idx=10, start_col_offset_idx=2, end_col_offset_idx=3, text='November 2023', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=72.024, t=349.21999999999997, r=157.86924, b=358.59561224489795, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=10, end_row_offset_idx=11, start_col_offset_idx=0, end_col_offset_idx=1, text='Target Volatility Indexes', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=349.21999999999997, r=339.60632000000027, b=358.59561224489795, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=10, end_row_offset_idx=11, start_col_offset_idx=1, end_col_offset_idx=2, text='Added Excess Return Calculation section', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=349.21999999999997, r=494.25472000000013, b=358.59561224489795, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=10, end_row_offset_idx=11, start_col_offset_idx=2, end_col_offset_idx=3, text='January 2024', column_header=False, row_header=False, row_section=False, fillable=False)], num_rows=11, num_cols=3, orientation=, grid=[[TableCell(bbox=BoundingBox(l=72.024, t=121.66999999999996, r=100.46976000000001, b=131.04561224489794, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=0, end_col_offset_idx=1, text='Section', column_header=True, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=121.66999999999996, r=277.70228000000003, b=131.04561224489794, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=1, end_col_offset_idx=2, text='Description of Change', column_header=True, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=121.66999999999996, r=492.7109199999999, b=131.04561224489794, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=0, end_row_offset_idx=1, start_col_offset_idx=2, end_col_offset_idx=3, text='Update Date', column_header=True, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=136.54999999999995, r=186.75824000000003, b=145.92561224489793, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=0, end_col_offset_idx=1, text='Capped Weighting Adjustments', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=138.94999999999993, r=420.48884000000055, b=162.365612244898, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=1, end_col_offset_idx=2, text='Capping constraints will be relaxed if a feasible solution cannot be obtained using the stated algorithm', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=138.94999999999993, r=481.99395999999996, b=148.3256122448979, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=1, end_row_offset_idx=2, start_col_offset_idx=2, end_col_offset_idx=3, text='April 2021', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=170.26999999999998, r=157.40112000000005, b=179.64561224489796, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=0, end_col_offset_idx=1, text='Morningstar Committee', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=167.75, r=439.5168800000003, b=188.16561224489794, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=1, end_col_offset_idx=2, text='Updated the Morningstar Indexes Product Committee & Morningstar Indexes Oversight Committee', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=170.26999999999998, r=483.17920000000004, b=179.64561224489796, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=2, end_row_offset_idx=3, start_col_offset_idx=2, end_col_offset_idx=3, text='June 2021', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=192.47000000000003, r=149.81159999999997, b=201.845612244898, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=0, end_col_offset_idx=1, text='Target Volatility Index', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=192.47000000000003, r=360.1811600000003, b=201.845612244898, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=1, end_col_offset_idx=2, text='Replaced 3-Months LIBOR rate with SOFR rate', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=192.47000000000003, r=502.26256, b=201.845612244898, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=3, end_row_offset_idx=4, start_col_offset_idx=2, end_col_offset_idx=3, text='November 2021', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=209.75, r=113.79211999999998, b=219.12561224489798, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=0, end_col_offset_idx=1, text='10 a.m. JST', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=209.63, r=407.70652, b=233.04561224489794, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=1, end_col_offset_idx=2, text='Added a section outlining the calculation of the 10 a.m. JST Morningstar index variants.', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=209.75, r=504.35007999999993, b=219.12561224489798, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=4, end_row_offset_idx=5, start_col_offset_idx=2, end_col_offset_idx=3, text='September 2023', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=240.98000000000002, r=147.68600000000006, b=250.355612244898, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=0, end_col_offset_idx=1, text='Exchange-Rate Rules', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=240.98000000000002, r=244.87412000000003, b=250.355612244898, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=1, end_col_offset_idx=2, text='Added section', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=240.98000000000002, r=504.30436, b=250.355612244898, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=5, end_row_offset_idx=6, start_col_offset_idx=2, end_col_offset_idx=3, text='September 2023', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=264.98, r=180.79716000000008, b=289.35561224489794, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=0, end_col_offset_idx=1, text='Index Conversion Into Another Currency', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=258.26, r=244.87412000000003, b=267.63561224489797, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=1, end_col_offset_idx=2, text='Added section', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=258.26, r=504.30436, b=267.63561224489797, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=6, end_row_offset_idx=7, start_col_offset_idx=2, end_col_offset_idx=3, text='September 2023', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=297.5, r=128.35776000000004, b=306.875612244898, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=0, end_col_offset_idx=1, text='Entire Rulebook', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=297.5, r=333.19940000000025, b=306.875612244898, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=1, end_col_offset_idx=2, text='Moved the rulebook to a new template', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=297.5, r=504.30436, b=306.875612244898, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=7, end_row_offset_idx=8, start_col_offset_idx=2, end_col_offset_idx=3, text='September 2023', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=314.78, r=176.96756000000005, b=324.15561224489795, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=8, end_row_offset_idx=9, start_col_offset_idx=0, end_col_offset_idx=1, text='Liquidity Informed Weighting', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=314.78, r=244.87412000000003, b=324.15561224489795, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=8, end_row_offset_idx=9, start_col_offset_idx=1, end_col_offset_idx=2, text='Added section', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=314.78, r=493.37824, b=324.15561224489795, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=8, end_row_offset_idx=9, start_col_offset_idx=2, end_col_offset_idx=3, text='October 2023', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=332.05999999999995, r=164.38520000000003, b=341.4356122448979, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=9, end_row_offset_idx=10, start_col_offset_idx=0, end_col_offset_idx=1, text='Currency-Hedged Indexes', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=332.05999999999995, r=409.55116000000015, b=341.4356122448979, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=9, end_row_offset_idx=10, start_col_offset_idx=1, end_col_offset_idx=2, text='Hedge Ratio defined at individual currency level in the index', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=332.05999999999995, r=502.26256, b=341.4356122448979, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=9, end_row_offset_idx=10, start_col_offset_idx=2, end_col_offset_idx=3, text='November 2023', column_header=False, row_header=False, row_section=False, fillable=False)], [TableCell(bbox=BoundingBox(l=72.024, t=349.21999999999997, r=157.86924, b=358.59561224489795, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=10, end_row_offset_idx=11, start_col_offset_idx=0, end_col_offset_idx=1, text='Target Volatility Indexes', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=193.61, t=349.21999999999997, r=339.60632000000027, b=358.59561224489795, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=10, end_row_offset_idx=11, start_col_offset_idx=1, end_col_offset_idx=2, text='Added Excess Return Calculation section', column_header=False, row_header=False, row_section=False, fillable=False), TableCell(bbox=BoundingBox(l=445.63, t=349.21999999999997, r=494.25472000000013, b=358.59561224489795, coord_origin=), row_span=1, col_span=1, start_row_offset_idx=10, end_row_offset_idx=11, start_col_offset_idx=2, end_col_offset_idx=3, text='January 2024', column_header=False, row_header=False, row_section=False, fillable=False)]]), annotations=[])] key_value_items=[] form_items=[] field_regions=[] field_items=[] pages={1: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=1), 2: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=2), 3: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=3), 4: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=4), 5: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=5), 6: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=6), 7: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=7), 8: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=8), 9: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=9), 10: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=10), 11: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=11), 12: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=12), 13: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=13), 14: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=14), 15: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=15), 16: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=16), 17: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=17), 18: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=18), 19: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=19), 20: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=20), 21: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=21), 22: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=22), 23: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=23), 24: PageItem(size=Size(width=612.0, height=792.0), image=None, page_no=24)}\n" ] } ], "source": [ "import time\n", "\n", "# We will work with the PTC research report as our example\n", "PDF_PATH = RAW_DIR / \"ptc01302411420.pdf\"\n", "print(f\"Parsing: {PDF_PATH.name} ({PDF_PATH.stat().st_size / 1024:.0f} KB)\")\n", "\n", "start = time.time()\n", "result = converter.convert(str(PDF_PATH))\n", "doc = result.document\n", "elapsed = time.time() - start\n", "\n", "print(f\"\\nParsing complete in {elapsed:.1f}s\")\n", "print(f\"Document type : {type(doc).__name__}\")\n", "print(f\"Pages detected: {len(doc.pages)}\")\n", "print(f\"Tables found : {len(doc.tables)}\")\n", "print(f\"\\nDocling document object: {doc}\")" ] }, { "cell_type": "code", "execution_count": null, "id": "997b097f-7211-45f9-9add-a5c07f2f94aa", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "vbhyy9si1ae", "metadata": {}, "source": [ "## STEP 4 — Inspect Raw Output\n", "\n", "Before we extract structured data, let's see what Docling gives us at a raw level.\n", "\n", "This helps us understand:\n", "- What element types exist in the document\n", "- How heading levels are assigned\n", "- What the raw text looks like before cleaning" ] }, { "cell_type": "code", "execution_count": 10, "id": "2hrjehdptxu", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Element types found in document:\n", " TextItem 150\n", " FormulaItem 61\n", " SectionHeaderItem 41\n", " PictureItem 26\n", " TableItem 13\n", " ListItem 11\n", "\n", "First 10 elements (type | level | text preview):\n", "----------------------------------------------------------------------\n", " [PictureItem ] lvl=1 pg=1 \"\"\n", " [SectionHeaderItem ] lvl=1 pg=1 \"Morningstar Indexes Calculation Methodology\"\n", " [PictureItem ] lvl=1 pg=1 \"\"\n", " [TextItem ] lvl=1 pg=1 \"January 2024\"\n", " [SectionHeaderItem ] lvl=1 pg=2 \"Contents\"\n", " [TableItem ] lvl=1 pg=2 \"\"\n", " [PictureItem ] lvl=1 pg=2 \"\"\n", " [SectionHeaderItem ] lvl=1 pg=3 \"Overview\"\n", " [TextItem ] lvl=1 pg=3 \"This document outlines the calculation methodology for the Morningstar Global Eq\"\n", " [SectionHeaderItem ] lvl=1 pg=3 \"Index Divisor\"\n" ] } ], "source": [ "from docling.datamodel.document import TextItem, SectionHeaderItem\n", "\n", "# Count each element type in the document\n", "type_counts = {}\n", "for item, level in doc.iterate_items():\n", " type_name = type(item).__name__\n", " type_counts[type_name] = type_counts.get(type_name, 0) + 1\n", "\n", "print(\"Element types found in document:\")\n", "for t, count in sorted(type_counts.items(), key=lambda x: -x[1]):\n", " print(f\" {t:30s} {count}\")\n", "\n", "print()\n", "\n", "# Preview first 10 items with their type and level\n", "print(\"First 10 elements (type | level | text preview):\")\n", "print(\"-\" * 70)\n", "for i, (item, level) in enumerate(doc.iterate_items()):\n", " if i >= 10:\n", " break\n", " text = getattr(item, \"text\", \"\")[:80]\n", " itype = type(item).__name__\n", " page = item.prov[0].page_no if item.prov else \"?\"\n", " print(f\" [{itype:20s}] lvl={level} pg={page} \\\"{text}\\\"\")" ] }, { "cell_type": "markdown", "id": "wamy2l0fno", "metadata": {}, "source": [ "## STEP 5 — Extract Sections (Text + Headers)\n", "\n", "We iterate over all document items and separate them into **headers** and **text blocks**.\n", "\n", "### Why do we track `parent_header`?\n", "Consider this document structure:\n", "```\n", "H1: Financial Summary\n", " \"Revenue grew 12% year-over-year...\"\n", "\n", "H1: Risk Factors\n", " \"Revenue growth may slow due to...\"\n", "```\n", "Both text blocks mention revenue. Without the parent header, the RAG system cannot distinguish which context applies to which query. By storing `parent_header = \"Financial Summary\"` or `\"Risk Factors\"`, the retriever can return the right chunk." ] }, { "cell_type": "code", "execution_count": 18, "id": "yraa2qop9kr", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Total sections extracted : 202\n", " Headers (headings) : 41\n", " Text blocks : 161\n", "\n", "Sample headers found:\n", " pg 1 [H1] Morningstar Indexes Calculation Methodology\n", " pg 2 [H1] Contents\n", " pg 3 [H1] Overview\n", " pg 3 [H1] Index Divisor\n", " pg 3 [H1] Market Capitalization and Float Market Capitalization Weighted Indexes\n", " pg 4 [H1] Where:\n", " pg 5 [H1] Equal Weighted Indexes\n", " pg 6 [H1] Dividend Dollar-Weighted Indexes\n", "\n", "Sample text block with parent_header:\n", "\n", " Page 1 | Under: 'Morningstar Indexes Calculation Methodology'\n", " Text: \"January 2024\"\n", "\n", " Page 3 | Under: 'Overview'\n", " Text: \"This document outlines the calculation methodology for the Morningstar Global Equity Indexes. An index level can be calc...\"\n", "\n", " Page 3 | Under: 'Index Divisor'\n", " Text: \"Morningstar Indexes use the concept of an \"index divisor\" to calculate daily index levels. The performance of the index ...\"\n" ] } ], "source": [ "sections = []\n", "current_header = \"\" # tracks the last seen heading for context\n", "\n", "for item, level in doc.iterate_items():\n", " text = getattr(item, \"text\", None)\n", " if not text or not text.strip():\n", " continue\n", "\n", " page_num = item.prov[0].page_no if item.prov else None\n", "\n", " if isinstance(item, SectionHeaderItem):\n", " current_header = text.strip()\n", " sections.append({\n", " \"type\" : \"header\",\n", " \"level\" : level,\n", " \"text\" : text.strip(),\n", " \"page_num\" : page_num,\n", " \"parent_header\": \"\",\n", " })\n", " else:\n", " sections.append({\n", " \"type\" : \"text\",\n", " \"level\" : level,\n", " \"text\" : text.strip(),\n", " \"page_num\" : page_num,\n", " \"parent_header\": current_header, # context from last heading\n", " })\n", "\n", "headers = [s for s in sections if s[\"type\"] == \"header\"]\n", "text_blks = [s for s in sections if s[\"type\"] == \"text\"]\n", "\n", "print(f\"Total sections extracted : {len(sections)}\")\n", "print(f\" Headers (headings) : {len(headers)}\")\n", "print(f\" Text blocks : {len(text_blks)}\")\n", "\n", "print(\"\\nSample headers found:\")\n", "for h in headers[:8]:\n", " indent = \" \" * (h[\"level\"] - 1)\n", " print(f\" pg{h['page_num']:>2} {indent}[H{h['level']}] {h['text']}\")\n", "\n", "print(\"\\nSample text block with parent_header:\")\n", "for t in text_blks[:3]:\n", " print(f\"\\n Page {t['page_num']} | Under: '{t['parent_header']}'\")\n", " print(f\" Text: \\\"{t['text'][:120]}...\\\"\" if len(t['text']) > 120 else f\" Text: \\\"{t['text']}\\\"\")" ] }, { "cell_type": "markdown", "id": "7d2wcl9arv4", "metadata": {}, "source": [ "## STEP 5b — Filter Noise Pages\n", "\n", "Not every page adds value to RAG. We actively remove three types:\n", "\n", "| Page Type | Why Remove |\n", "|---|---|\n", "| **Cover / Title page** | Just title + author + date — no financial content |\n", "| **Table of Contents** | Section names already exist in real headers; page numbers are useless |\n", "| **Disclaimer / Legal pages** | Actively harmful — contains \"investment\", \"securities\", \"risk\" terms that match financial queries but return legal boilerplate instead of real analysis |\n", "\n", "**Detection logic:** A page is noise if all its headers match known boilerplate titles AND its text content is below 300 characters." ] }, { "cell_type": "code", "execution_count": 23, "id": "3nvm19d4mom", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Page-by-page noise analysis:\n", " Page Decision Headers on page\n", "----------------------------------------------------------------------\n", " 1 KEEP ['Morningstar Indexes Calculation Methodology']\n", " 2 REMOVE ['Contents']\n", " 3 KEEP ['Overview', 'Index Divisor']\n", " 4 KEEP ['Where:']\n", " 5 KEEP ['Equal Weighted Indexes']\n", " 6 KEEP ['Dividend Dollar-Weighted Indexes']\n", " 7 KEEP ['Capped-Weighted Indexes']\n", " 8 KEEP []\n", " 9 KEEP []\n", " 10 KEEP ['Liquidity Informed Weighting']\n", " 11 KEEP []\n", " 12 KEEP ['Target Volatility Indexes', 'Determining the Target Exposure']\n", " 13 KEEP ['Excess Return Calculation']\n", " 14 KEEP []\n", " 15 KEEP ['Exchange-Rate Rules', 'Exchange-Rate Data Source']\n", " 16 KEEP ['JST FX Index Calculations', 'Where:']\n", " 17 KEEP ['Currency-Hedged Indexes', 'Monthly Currency Hedge Index Calculations']\n", " 18 KEEP ['the rebalance effective date (if calculated by Cir', 'Daily Currency Hedge Index Calculations']\n", " 19 KEEP ['Data Source for FX Rate']\n", " 20 KEEP ['Total/Gross and Net Return Calculations']\n", " 21 KEEP ['Index Conversion Into Another Currency', '48) 𝐼𝑛𝑑𝑒𝑥𝑀𝑎𝑟𝑘𝑒𝑡𝑉𝑎𝑙𝑢𝑒𝑖𝑛𝐶𝑢𝑟𝑟𝑒𝑛𝑐𝑦𝑡 = 𝐼𝑛𝑑𝑒𝑥𝑀𝑎𝑟𝑘𝑒𝑡𝑉𝑎𝑙𝑢']\n", " 22 KEEP ['Local Currency Return Calculation', 'Where:']\n", " 23 KEEP ['Appendix', 'Appendix 1: Modifications to the Rulebook']\n", " 24 KEEP ['About Morningstar Indexes', 'Morningstar Indexes Methodology Committee']\n", "\n", "Removed pages : [2]\n", "Sections before : 202 → after: 201 (-1)\n", "\n", "Note: tables on these pages are skipped in STEP 7 below (removed_pages is passed forward)\n" ] } ], "source": [ "import re\n", "from collections import defaultdict\n", "\n", "# ── Known boilerplate section titles (normalised — no ® / ™ symbols)\n", "NOISE_HEADERS = {\n", " \"contents\", \"table of contents\", \"index\",\n", " \"important disclosure\", \"important disclosures\",\n", " \"general disclosure\", \"general disclosures\",\n", " \"risk warning\", \"risks\", \"conflicts of interest\",\n", " \"third-party distribution\", \"vaneck disclosures\",\n", " \"legal disclaimer\", \"disclaimer\", \"disclaimers\",\n", " \"about morningstar indexes\", \"about morningstar equity research\",\n", "}\n", "\n", "# Regex: street address e.g. \"22 West Washington Street Chicago, IL 60602 USA\"\n", "_ADDRESS_RE = re.compile(\n", " r\"^\\d+\\s+\\w+.*\\b(street|st|avenue|ave|boulevard|blvd|road|rd|drive|dr|lane|ln|way)\\b\",\n", " re.IGNORECASE,\n", ")\n", "\n", "def _normalize_header(text: str) -> str:\n", " \"\"\"Strip trademark symbols and collapse whitespace.\n", "\n", " 'About Morningstar® Equity Research TM' → 'about morningstar equity research'\n", " \"\"\"\n", " t = text.strip().lower()\n", " t = t.replace(\"®\", \"\").replace(\"™\", \"\").replace(\"℠\", \"\")\n", " t = re.sub(r\"\\s*\\(?\\btm\\b\\)?$\", \"\", t) # remove trailing \" TM\" / \"(tm)\"\n", " t = re.sub(r\"\\s{2,}\", \" \", t).strip()\n", " return t\n", "\n", "def _is_noise_header(raw_header: str) -> bool:\n", " \"\"\"Return True if a single header is boilerplate.\n", "\n", " Checks:\n", " 1. Exact match in NOISE_HEADERS (after normalisation)\n", " 2. Ends with 'disclosure(s)' or 'disclaimer(s)'\n", " → catches doc-specific titles like \"Wide Moat Focus Index Disclosures\"\n", " 3. Looks like a postal address\n", " \"\"\"\n", " norm = _normalize_header(raw_header)\n", " if norm in NOISE_HEADERS:\n", " return True\n", " if re.search(r\"\\b(disclosures?|disclaimers?)\\s*$\", norm):\n", " return True\n", " if _ADDRESS_RE.match(raw_header.strip()):\n", " return True\n", " return False\n", "\n", "def is_noise_page(page_sections: list) -> bool:\n", " \"\"\"\n", " Return True if this page is a cover, TOC, or disclaimer page.\n", "\n", " Case A) ALL headers on page are noise → remove regardless of text length\n", " Case B) Noise headers outnumber content headers AND text < 300 chars\n", " \"\"\"\n", " if not page_sections:\n", " return True\n", "\n", " total_text = \" \".join(s[\"text\"] for s in page_sections).strip()\n", " if len(total_text) < 50:\n", " return True\n", "\n", " raw_headers = [s[\"text\"] for s in page_sections if s[\"type\"] == \"header\"]\n", " text_content = \" \".join(s[\"text\"] for s in page_sections if s[\"type\"] == \"text\").strip()\n", "\n", " if not raw_headers:\n", " return False\n", "\n", " noise_hdrs = [h for h in raw_headers if _is_noise_header(h)]\n", " content_hdrs = [h for h in raw_headers if not _is_noise_header(h)]\n", "\n", " if len(content_hdrs) == 0: # Case A\n", " return True\n", " if len(noise_hdrs) > len(content_hdrs) and len(text_content) < 300: # Case B\n", " return True\n", " return False\n", "\n", "\n", "# ── Group sections by page and identify noise pages ───────────────────────────\n", "by_page = defaultdict(list)\n", "for s in sections:\n", " pg = s.get(\"page_num\") or 0\n", " by_page[pg].append(s)\n", "\n", "print(\"Page-by-page noise analysis:\")\n", "print(f\"{'Page':>5} {'Decision':>8} {'Headers on page'}\")\n", "print(\"-\" * 70)\n", "\n", "removed_pages = set() # ← used by STEP 7 table extraction to skip TOC tables\n", "for pg in sorted(by_page.keys()):\n", " noise = is_noise_page(by_page[pg])\n", " hdrs = [s[\"text\"][:50] for s in by_page[pg] if s[\"type\"] == \"header\"]\n", " flag = \"REMOVE\" if noise else \"KEEP\"\n", " print(f\" {pg:>3} {flag:>8} {hdrs[:2]}\")\n", " if noise:\n", " removed_pages.add(pg)\n", "\n", "# ── Apply filter to sections ───────────────────────────────────────────────────\n", "sections_filtered = [s for s in sections if s.get(\"page_num\") not in removed_pages]\n", "\n", "print(f\"\\nRemoved pages : {sorted(removed_pages)}\")\n", "print(f\"Sections before : {len(sections)} → after: {len(sections_filtered)} (-{len(sections)-len(sections_filtered)})\")\n", "print(f\"\\nNote: tables on these pages are skipped in STEP 7 below (removed_pages is passed forward)\")" ] }, { "cell_type": "markdown", "id": "mtjlbx43el", "metadata": {}, "source": [ "## STEP 6 — Clean Text\n", "\n", "Raw PDF text contains several types of noise that hurt embedding quality:\n", "\n", "| Problem | Example | Fix |\n", "|---|---|---|\n", "| Hyphenated line break | `competi-\\ntive` | `competitive` |\n", "| Soft hyphen (invisible char) | `competi­tive` | `competitive` |\n", "| Multiple spaces | `revenue grew` | `revenue grew` |\n", "| Excessive blank lines | `\\n\\n\\n\\n` | `\\n\\n` |\n", "| Zero-width space | `reve​nue` | `revenue` |\n", "\n", "**Why clean before chunking?**\n", "If we chunk first, each chunk inherits the noise. The embedding model encodes noise as part of the meaning — two semantically identical sentences with different whitespace get different vectors and may not be retrieved together." ] }, { "cell_type": "code", "execution_count": 24, "id": "w8y3mdx7n5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Before vs After cleaning:\n", "\n", " BEFORE: 'Now, this index should still open at I(t-1) on the next day (t). Assuming no corporate event and co'\n", " AFTER : 'Now, this index should still open at I(t-1) on the next day (t). Assuming no corporate event and con'\n", "\n", " BEFORE: 'Δ MV(t+1) = Aggregate change in market value resulting from additions and deletions The above equa'\n", " AFTER : 'Δ MV(t+1) = Aggregate change in market value resulting from additions and deletions The above equati'\n", "\n", " BEFORE: '= Adjustment factor of security i'\n", " AFTER : '= Adjustment factor of security i'\n", "\n" ] } ], "source": [ "def clean_text(text: str) -> str:\n", " \"\"\"\n", " Clean raw PDF text through 4 sequential steps.\n", " Each step targets a specific class of noise.\n", " \"\"\"\n", " if not text:\n", " return \"\"\n", "\n", " # Step 1: Fix hyphenated line breaks (\"competi-\\ntion\" → \"competition\")\n", " text = re.sub(r\"-\\n\", \"\", text)\n", "\n", " # Step 2: Remove soft hyphens (U+00AD) and zero-width spaces (U+200B)\n", " text = text.replace(\"\\u00ad\", \"\").replace(\"\\u200b\", \"\")\n", "\n", " # Step 3: Collapse multiple spaces/tabs into a single space\n", " text = re.sub(r\"[ \\t]+\", \" \", text)\n", "\n", " # Step 4: Collapse more than 2 consecutive newlines into 2\n", " text = re.sub(r\"\\n{3,}\", \"\\n\\n\", text)\n", "\n", " return text.strip()\n", "\n", "\n", "# Apply cleaning to all sections\n", "for s in sections:\n", " s[\"cleaned_text\"] = clean_text(s[\"text\"])\n", "\n", "# Show before/after comparison on a few samples\n", "print(\"Before vs After cleaning:\\n\")\n", "noisy_samples = [s for s in sections if s[\"text\"] != s[\"cleaned_text\"]][:3]\n", "\n", "if noisy_samples:\n", " for s in noisy_samples:\n", " print(f\" BEFORE: {repr(s['text'][:100])}\")\n", " print(f\" AFTER : {repr(s['cleaned_text'][:100])}\")\n", " print()\n", "else:\n", " # Show a clean sample anyway\n", " sample = text_blks[5]\n", " print(f\" Text (already clean): {repr(sample['cleaned_text'][:120])}\")\n", " print(\"\\nAll text passed through cleaning pipeline successfully.\")" ] }, { "cell_type": "markdown", "id": "5adm9pu0b4i", "metadata": {}, "source": [ "## STEP 7 — Extract Tables\n", "\n", "Tables are the **most critical element** in financial documents. Every income statement, balance sheet, revenue breakdown, and ESG metric lives in a table.\n", "\n", "### Why tables must be kept atomic (never split)\n", "\n", "```\n", "WRONG — table split across two chunks:\n", "\n", " Chunk 1: Chunk 2:\n", " | Revenue | $391B | | EPS | $6.42 |\n", " | Gross Profit| $172B | | Net Income | $94B |\n", "\n", " → Chunk 2 has no column headers\n", " → LLM reading Chunk 2: \"what does $6.42 refer to?\" — unknown\n", " → Hallucination risk is HIGH\n", "\n", "CORRECT — table as one atomic chunk:\n", "\n", " | Metric | FY2024 |\n", " | Revenue | $391B |\n", " | Gross Profit| $172B |\n", " | Net Income | $94B |\n", " | EPS | $6.42 |\n", "\n", " → All rows have column context\n", " → LLM correctly maps each value to its metric and year\n", "```\n", "\n", "### What we extract per table\n", "- `markdown` — for LLM context (readable format)\n", "- `data` — raw rows/cols for programmatic verification\n", "- `headers` — column names for metadata tagging\n", "- `is_atomic = True` — flag that tells the chunker to never split this" ] }, { "cell_type": "code", "execution_count": 25, "id": "f1fpfvl31wh", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Skipping table 0 on page 2 (noise page)\n", "\n", "Tables extracted (after noise filter): 12\n", "\n", " # Page Rows Cols Headers\n", "-----------------------------------------------------------------\n", " 1 3 4 2 '0', '1'\n", " 2 4 3 3 '0', '1', '2'\n", " 3 4 5 2 '0', '1'\n", " 4 5 8 2 '0', '1'\n", " 5 10 5 2 'Where: w i', '= final weight assigned to the i th security in the index'\n", " 6 13 5 3 '0', '1', '2'\n", " 7 16 6 3 '0', '1', '2'\n", " 8 17 3 3 'Where:', '', 'Hedge Return'\n", " 9 18 9 3 '0', '1', '2'\n", " 10 18 9 3 '0', '1', '2'\n", " 11 22 7 3 '0', '1', '2'\n", " 12 23 10 3 'Section', 'Description of Change', 'Update Date'\n" ] } ], "source": [ "tables = []\n", "\n", "for i, table in enumerate(doc.tables):\n", " try:\n", " df = table.export_to_dataframe(doc) # pass doc — new Docling API\n", " markdown = table.export_to_markdown(doc)\n", " page_num = table.prov[0].page_no if table.prov else None\n", "\n", " # Skip tables on noise pages (TOC on page 2, cover pages, disclaimers)\n", " # removed_pages was computed in STEP 5b above\n", " if page_num in removed_pages:\n", " print(f\" Skipping table {i} on page {page_num} (noise page)\")\n", " continue\n", "\n", " # Skip trivially small tables (1 row — likely a label, not a data table)\n", " if df.empty or len(df) < 2:\n", " continue\n", "\n", " tables.append({\n", " \"index\" : i,\n", " \"page_num\" : page_num,\n", " \"markdown\" : markdown,\n", " \"headers\" : list(df.columns.astype(str)),\n", " \"rows\" : len(df),\n", " \"cols\" : len(df.columns),\n", " \"data\" : df.fillna(\"\").values.tolist(),\n", " \"is_atomic\": True, # NEVER split — always one chunk\n", " })\n", "\n", " except Exception as e:\n", " print(f\" Warning: table {i} skipped — {e}\")\n", "\n", "print(f\"\\nTables extracted (after noise filter): {len(tables)}\\n\")\n", "\n", "# Show each table summary\n", "print(f\"{'#':>3} {'Page':>4} {'Rows':>4} {'Cols':>4} Headers\")\n", "print(\"-\" * 65)\n", "for t in tables:\n", " headers_preview = str(t[\"headers\"][:3])[1:-1]\n", " print(f\"{t['index']:>3} {str(t['page_num']):>4} {t['rows']:>4} {t['cols']:>4} {headers_preview}\")" ] }, { "cell_type": "code", "execution_count": 26, "id": "qdzqs47auqr", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Table 0 preview (Page 3):\n", "=======================================================\n", "| t | = Time the index is calculated |\n", "|---------------|-----------------------------------------------|\n", "| D(t) | = Divisor at time (t) |\n", "| Initial MV(t) | Initial market value of the index at time (t) |\n", "| I(t-1) | = Index level at the close of day (t-1) |\n", "=======================================================\n", "\n", "is_atomic = True ← this table will NEVER be split\n" ] } ], "source": [ "# Preview the first table in markdown format\n", "# This is exactly what the LLM will receive as context\n", "if tables:\n", " print(f\"Table 0 preview (Page {tables[0]['page_num']}):\")\n", " print(\"=\" * 55)\n", " print(tables[0][\"markdown\"])\n", " print(\"=\" * 55)\n", " print(f\"\\nis_atomic = {tables[0]['is_atomic']} ← this table will NEVER be split\")" ] }, { "cell_type": "markdown", "id": "p0jftdnzh7", "metadata": {}, "source": [ "## STEP 8 — Attach Metadata\n", "\n", "Every section and table gets a metadata dictionary. This is stored alongside the vector in ChromaDB.\n", "\n", "### Why metadata is critical for RAG\n", "\n", "Without metadata, a query like *\"Apple revenue in 2024\"* searches ALL documents. With metadata filters:\n", "```python\n", "# Only search 10-K filings from fiscal year 2024\n", "results = vectorstore.query(\n", " query=\"revenue\",\n", " filter={\"doc_type\": \"10-K\", \"fiscal_year\": \"2024\"}\n", ")\n", "```\n", "\n", "This eliminates irrelevant chunks and dramatically improves retrieval precision." ] }, { "cell_type": "code", "execution_count": 27, "id": "8usuzaq74f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Document-level metadata:\n", " file_name : ptc01302411420.pdf\n", " file_path : /home/pushkardeshpand/Documents/Morningstar RAG Pipeline/data/raw/morningstar/ptc01302411420.pdf\n", " source : morningstar\n", " doc_type : research_report\n", " company : PTC Inc.\n", " ticker : PTC\n", " license : proprietary\n", " access_level : internal\n", " parsed_at : 2026-06-20T07:53:13.641614+00:00\n", " parser : docling\n", " total_pages : 24\n", " total_sections : 202\n", " total_tables : 12\n", "\n", "This metadata will be attached to EVERY chunk from this document.\n", "It enables filtered retrieval — e.g. 'search only research_report docs'\n" ] } ], "source": [ "# Build document-level metadata\n", "doc_metadata = {\n", " \"file_name\" : PDF_PATH.name,\n", " \"file_path\" : str(PDF_PATH),\n", " \"source\" : \"morningstar\",\n", " \"doc_type\" : \"research_report\",\n", " \"company\" : \"PTC Inc.\", # known from filename context\n", " \"ticker\" : \"PTC\",\n", " \"license\" : \"proprietary\",\n", " \"access_level\" : \"internal\",\n", " \"parsed_at\" : datetime.now(timezone.utc).isoformat(),\n", " \"parser\" : \"docling\",\n", " \"total_pages\" : len(doc.pages),\n", " \"total_sections\" : len(sections),\n", " \"total_tables\" : len(tables),\n", "}\n", "\n", "print(\"Document-level metadata:\")\n", "for k, v in doc_metadata.items():\n", " print(f\" {k:20s}: {v}\")\n", "\n", "print(\"\\nThis metadata will be attached to EVERY chunk from this document.\")\n", "print(\"It enables filtered retrieval — e.g. 'search only research_report docs'\")" ] }, { "cell_type": "markdown", "id": "n2gjkx5wqbb", "metadata": {}, "source": [ "## STEP 9 — Save Structured JSON\n", "\n", "We save everything into a single structured JSON file. This is the **output of the parsing phase** and the **input to the chunking phase**.\n", "\n", "### Why JSON and not a database?\n", "- JSON is human-readable — you can inspect what was extracted\n", "- It's resumable — if chunking fails, we don't re-parse the PDF\n", "- One file per document — easy to version, move, and debug" ] }, { "cell_type": "code", "execution_count": 28, "id": "iwppl7abtkn", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Saved: ptc01302411420.json (161.9 KB)\n", "\n", "JSON structure:\n", " metadata → 13 keys\n", " sections → 202 items (each has: type, level, text, cleaned_text, page_num, parent_header)\n", " tables → 12 items (each has: markdown, headers, data, rows, cols, is_atomic)\n", " full_markdown → 48201 chars\n" ] } ], "source": [ "PROCESSED_DIR.mkdir(parents=True, exist_ok=True)\n", "out_path = PROCESSED_DIR / f\"{PDF_PATH.stem}.json\"\n", "\n", "parsed_doc = {\n", " \"metadata\" : doc_metadata,\n", " \"sections\" : sections, # text blocks + headers with cleaned_text\n", " \"tables\" : tables, # atomic table chunks\n", " \"full_markdown\": doc.export_to_markdown(), # full document for inspection\n", "}\n", "\n", "with open(out_path, \"w\") as f:\n", " json.dump(parsed_doc, f, indent=2, ensure_ascii=False, default=str)\n", "\n", "size_kb = out_path.stat().st_size / 1024\n", "print(f\"Saved: {out_path.name} ({size_kb:.1f} KB)\")\n", "print()\n", "print(\"JSON structure:\")\n", "print(f\" metadata → {len(doc_metadata)} keys\")\n", "print(f\" sections → {len(sections)} items (each has: type, level, text, cleaned_text, page_num, parent_header)\")\n", "print(f\" tables → {len(tables)} items (each has: markdown, headers, data, rows, cols, is_atomic)\")\n", "print(f\" full_markdown → {len(parsed_doc['full_markdown'])} chars\")" ] }, { "cell_type": "markdown", "id": "1cv9mbkhpqp", "metadata": {}, "source": [ "## STEP 10 — Process All PDFs (Using the Production Module)\n", "\n", "Now we use the `PDFProcessor` class from `src/pdf_processor.py` — the same logic but packaged as a reusable, production-ready module.\n", "\n", "This is the **same code you would run in production** via `python src/pdf_processor.py`." ] }, { "cell_type": "code", "execution_count": 29, "id": "o27cu8phaqs", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2026-06-20 13:23:27,025 INFO Found 2 PDFs in /home/pushkardeshpand/Documents/Morningstar RAG Pipeline/data/raw/morningstar\n", "2026-06-20 13:23:27,025 INFO SKIP a-wide-moat-focus-provides-differentiation.pdf (already processed → a-wide-moat-focus-provides-differentiation.json)\n", "2026-06-20 13:23:27,026 INFO SKIP ptc01302411420.pdf (already processed → ptc01302411420.json)\n", "2026-06-20 13:23:27,027 INFO Processing complete — 2 documents\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "============================================================\n", "FINAL SUMMARY — All PDFs Processed\n", "============================================================\n", "\n", " File : a-wide-moat-focus-provides-differentiation.pdf\n", " Pages : 12\n", " Sections : 51 (23 headers)\n", " Tables : 10\n", " Table pages: [2, 2, 2, 4, 5, 6, 7, 8, 9, 11]\n", "\n", " File : ptc01302411420.pdf\n", " Pages : 24\n", " Sections : 202 (41 headers)\n", " Tables : 12\n", " Table pages: [3, 4, 4, 5, 10, 13, 16, 17, 18, 18, 22, 23]\n" ] } ], "source": [ "from pdf_processor import PDFProcessor\n", "\n", "# Initialise processor — converter is lazy-loaded on first use\n", "processor = PDFProcessor(output_dir=PROCESSED_DIR)\n", "\n", "# Process all PDFs in the raw/morningstar directory\n", "# force=False → skips already-processed files (idempotent)\n", "results = processor.process_all(pdf_dir=RAW_DIR, force=False)\n", "\n", "# Final summary\n", "print(\"\\n\" + \"=\" * 60)\n", "print(\"FINAL SUMMARY — All PDFs Processed\")\n", "print(\"=\" * 60)\n", "for r in results:\n", " m = r[\"metadata\"]\n", " print(f\"\\n File : {m['file_name']}\")\n", " print(f\" Pages : {m['total_pages']}\")\n", " print(f\" Sections : {m['total_sections']} ({sum(1 for s in r['sections'] if s['type']=='header')} headers)\")\n", " print(f\" Tables : {m['total_tables']}\")\n", " if r[\"tables\"]:\n", " print(f\" Table pages: {[t['page_num'] for t in r['tables']]}\")" ] }, { "cell_type": "code", "execution_count": null, "id": "c89107f4-6f22-44f3-93b3-b571ea042195", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "423fmv6d54c", "metadata": {}, "source": [ "---\n", "\n", "# PHASE 3 — Chunking\n", "\n", "## STEP 11 — Why HybridChunker, Not LangChain SemanticChunker\n", "\n", "### The problem with LangChain SemanticChunker\n", "\n", "LangChain's `SemanticChunker` treats every document as a **flat string** — it has no concept of headings, sections, or whether a block of text is a table or a paragraph. It embeds sentences and splits where similarity drops, but it cannot reason about document structure.\n", "\n", "### Why Docling's HybridChunker is better for text\n", "\n", "Docling's `HybridChunker` works on the native **`DoclingDocument` object** — the same structured representation that DocLayNet built during parsing. It understands:\n", "\n", "| Feature | LangChain SemanticChunker | Docling HybridChunker |\n", "|---|---|---|\n", "| Heading hierarchy | ✗ manual tracking | ✓ automatic `headings` list |\n", "| Full heading path | ✗ only immediate parent | ✓ root → section chain |\n", "| Token awareness | ✗ character count approximation | ✓ exact tokenizer of target model |\n", "| Structure understanding | ✗ flat string | ✓ uses DocLayNet layout model output |\n", "\n", "### Why we still use our own atomic markdown for tables\n", "\n", "`HybridChunker` splits large tables by token count to fit in the model window. \n", "For a 30-row holdings table that produces 5 split fragments:\n", "\n", "```\n", "Fragment 1: Goldman Sachs, Ticker=GS, Sector=Financial Services...\n", "Fragment 2: Home Depot, Ticker=HD, Sector=Consumer Cyclical...\n", " ↑ no column headers here — LLM cannot reconstruct the table\n", "```\n", "\n", "Our markdown approach keeps each table complete:\n", "```\n", "| Company | Ticker | Sector |\n", "| Goldman Sachs | GS | Financial Services |\n", "| Home Depot | HD | Consumer Cyclical |\n", "```\n", "\n", "**Final architecture:**\n", "```\n", "TEXT → Docling HybridChunker (structure-aware, token-aware, heading path)\n", "TABLES → Atomic markdown chunks (one complete table = one chunk, never split)\n", "```" ] }, { "cell_type": "markdown", "id": "hi3vbp50psa", "metadata": {}, "source": [ "## STEP 12 — HybridChunker on the DoclingDocument\n", "\n", "Phase 2 saved two files per document:\n", "- `ptc01302411420.json` — our custom processed JSON (sections, tables, metadata)\n", "- `ptc01302411420_docling.json` — Docling's **native format** preserving the full `DoclingDocument`\n", "\n", "The HybridChunker needs the native format because it works on the DoclingDocument's internal item tree — not on the extracted text list.\n", "\n", "For each text chunk it returns:\n", "- `chunk.text` — the prose content (already token-limited to 256 tokens)\n", "- `chunk.meta.headings` — full heading path, e.g. `[\"Results\", \"Revenue Analysis\"]`\n", "- `chunk.meta.doc_items` — original layout items (used to get page number)" ] }, { "cell_type": "code", "execution_count": 30, "id": "gk33y0hv3b5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "DoclingDocument loaded from: ptc01302411420_docling.json\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Token indices sequence length is longer than the specified maximum sequence length for this model (8758 > 512). Running this sequence through the model will result in indexing errors\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "HybridChunker produced: 111 total chunks\n", " Text : 52\n", " Tables : 59 ← we will DISCARD these and use our markdown approach instead\n", "\n", "Sample text chunks with heading path:\n", " headings : ['Morningstar Indexes Calculation Methodology']\n", " page : 1 chars=12\n", " text : January 2024...\n", "\n", " headings : ['Overview']\n", " page : 3 chars=785\n", " text : This document outlines the calculation methodology for the Morningstar Global Equity Indexes. An index level can be calc...\n", "\n", " headings : ['Index Divisor']\n", " page : 3 chars=629\n", " text : Morningstar Indexes use the concept of an \"index divisor\" to calculate daily index levels. The performance of the index ...\n", "\n", " headings : ['Index Divisor']\n", " page : 3 chars=428\n", " text : The index divisor remains unchanged unless there is a change in index composition, which can be due to corporate actions...\n", "\n" ] } ], "source": [ "from docling.chunking import HybridChunker\n", "from docling.datamodel.document import DoclingDocument, TableItem\n", "\n", "EMBEDDING_MODEL = \"sentence-transformers/all-MiniLM-L6-v2\"\n", "MAX_TOKENS = 256 # context window of all-MiniLM-L6-v2\n", "\n", "# Load the native DoclingDocument saved by Phase 2\n", "docling_path = PROCESSED_DIR / \"ptc01302411420_docling.json\"\n", "with open(docling_path) as f:\n", " dl_doc = DoclingDocument.model_validate_json(f.read())\n", "\n", "print(f\"DoclingDocument loaded from: {docling_path.name}\")\n", "\n", "# Build HybridChunker with the exact same tokenizer used for retrieval\n", "# merge_peers=True → merges small adjacent chunks that share the same heading\n", "chunker = HybridChunker(\n", " tokenizer = EMBEDDING_MODEL,\n", " max_tokens = MAX_TOKENS,\n", " merge_peers = True,\n", ")\n", "\n", "all_hybrid_chunks = list(chunker.chunk(dl_doc))\n", "\n", "# Separate text and table chunks\n", "text_hybrid = [c for c in all_hybrid_chunks if not any(isinstance(i, TableItem) for i in c.meta.doc_items)]\n", "table_hybrid = [c for c in all_hybrid_chunks if any(isinstance(i, TableItem) for i in c.meta.doc_items)]\n", "\n", "print(f\"\\nHybridChunker produced: {len(all_hybrid_chunks)} total chunks\")\n", "print(f\" Text : {len(text_hybrid)}\")\n", "print(f\" Tables : {len(table_hybrid)} ← we will DISCARD these and use our markdown approach instead\")\n", "print()\n", "print(\"Sample text chunks with heading path:\")\n", "for c in text_hybrid[:4]:\n", " page = c.meta.doc_items[0].prov[0].page_no if c.meta.doc_items and c.meta.doc_items[0].prov else None\n", " print(f\" headings : {c.meta.headings}\")\n", " print(f\" page : {page} chars={len(c.text)}\")\n", " print(f\" text : {c.text[:120]}...\")\n", " print()" ] }, { "cell_type": "markdown", "id": "bbzljsvlsf", "metadata": {}, "source": [ "## STEP 13 — Build Text Chunks from HybridChunker Output\n", "\n", "Filter out table chunks, apply the noise page filter, and build the final text chunk dicts with full metadata.\n", "\n", "Each chunk gets:\n", "- `chunk_type = \"text\"`, `is_atomic = False`\n", "- `section_title` — the immediate heading\n", "- `heading_path` — full hierarchy (e.g. `\"Results > Financial Summary\"`)\n", "- all document-level metadata spread in" ] }, { "cell_type": "code", "execution_count": 34, "id": "skso5w5urd", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Text chunks : 52\n", "Chunk size (chars): min=12 max=1205 avg=631\n", "\n", "Sample chunk — notice heading_path gives the full section hierarchy:\n", " heading_path : Morningstar Indexes Calculation Methodology\n", " page_num : 1 chars=12\n", " text : January 2024...\n", "\n", " heading_path : Overview\n", " page_num : 3 chars=785\n", " text : This document outlines the calculation methodology for the Morningstar Global Equity Indexes. An index level can be calc...\n", "\n", " heading_path : Index Divisor\n", " page_num : 3 chars=629\n", " text : Morningstar Indexes use the concept of an \"index divisor\" to calculate daily index levels. The performance of the index ...\n", "\n", " heading_path : Index Divisor\n", " page_num : 3 chars=428\n", " text : The index divisor remains unchanged unless there is a change in index composition, which can be due to corporate actions...\n", "\n" ] } ], "source": [ "text_chunks = []\n", "\n", "for chunk in text_hybrid:\n", " # Get page number from first doc item\n", " page_num = None\n", " for item in chunk.meta.doc_items:\n", " if item.prov:\n", " page_num = item.prov[0].page_no\n", " break\n", "\n", " # Skip chunks from noise pages (TOC, cover, disclaimers)\n", " if page_num in removed_pages:\n", " continue\n", "\n", " text = chunk.text.strip()\n", " if not text:\n", " continue\n", "\n", " headings = chunk.meta.headings or []\n", " section_title = headings[-1] if headings else \"\"\n", " heading_path = \" > \".join(headings) if headings else \"\"\n", "\n", " text_chunks.append({\n", " \"chunk_type\" : \"text\",\n", " \"text\" : text,\n", " \"is_atomic\" : False,\n", " \"metadata\" : {\n", " **doc_metadata,\n", " \"section_title\": section_title,\n", " \"heading_path\" : heading_path, # full hierarchy — better than just parent_header\n", " \"page_num\" : page_num,\n", " },\n", " })\n", "\n", "sizes = [len(c[\"text\"]) for c in text_chunks]\n", "print(f\"Text chunks : {len(text_chunks)}\")\n", "print(f\"Chunk size (chars): min={min(sizes)} max={max(sizes)} avg={sum(sizes)//len(sizes)}\")\n", "print()\n", "print(\"Sample chunk — notice heading_path gives the full section hierarchy:\")\n", "for c in text_chunks[:4]:\n", " print(f\" heading_path : {c['metadata']['heading_path']}\")\n", " print(f\" page_num : {c['metadata']['page_num']} chars={len(c['text'])}\")\n", " print(f\" text : {c['text'][:120]}...\")\n", " print()" ] }, { "cell_type": "markdown", "id": "4e3cb188-fc18-4119-b58c-1b7216b193bf", "metadata": {}, "source": [ "## STEP 14 — Table Chunks: Atomic Markdown Pass-Through\n", "\n", "We discard HybridChunker's table output and use our own approach instead.\n", "\n", "**Comparison of formats for the same table:**\n", "\n", "| Format | Example |\n", "|---|---|\n", "| HybridChunker (key=value) | `Goldman Sachs, Top 10.Ticker = GS. Goldman Sachs, Top 10.Sector = Financial Services.` |\n", "| Our markdown | `\\| Goldman Sachs \\| GS \\| Financial Services \\|` |\n", "\n", "LLMs are trained on markdown and produce far more accurate answers from the markdown format." ] }, { "cell_type": "code", "execution_count": 35, "id": "b7wyr3iojqq", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Table chunks: 12\n", "\n", "idx Page Rows Cols is_atomic Col headers\n", "-----------------------------------------------------------------\n", " 1 3 4 2 True ['0', '1']\n", " 2 4 3 3 True ['0', '1', '2']\n", " 3 4 5 2 True ['0', '1']\n", " 4 5 8 2 True ['0', '1']\n", " 5 10 5 2 True ['Where: w i', '= final weight assigned to the i th security in the index']\n", " 6 13 5 3 True ['0', '1', '2']\n", " 7 16 6 3 True ['0', '1', '2']\n", " 8 17 3 3 True ['Where:', '', 'Hedge Return']\n", " 9 18 9 3 True ['0', '1', '2']\n", " 10 18 9 3 True ['0', '1', '2']\n", " 11 22 7 3 True ['0', '1', '2']\n", " 12 23 10 3 True ['Section', 'Description of Change', 'Update Date']\n", "\n", "Preview table 0 (what LLM receives):\n", "| t | = Time the index is calculated |\n", "|---------------|-----------------------------------------------|\n", "| D(t) | = Divisor at time (t) |\n", "| Initial MV(t) | Initial market value of the index at time (t) |\n", "| I(t-1) | = Index level at the close of day (t-1) |\n" ] } ], "source": [ "table_chunks = []\n", "\n", "for t in tables:\n", " markdown = t.get(\"markdown\", \"\").strip()\n", " if not markdown:\n", " continue\n", " table_chunks.append({\n", " \"chunk_type\": \"table\",\n", " \"text\" : markdown, # complete markdown — never split\n", " \"is_atomic\" : True,\n", " \"metadata\" : {\n", " **doc_metadata,\n", " \"page_num\" : t.get(\"page_num\"),\n", " \"table_index\" : t.get(\"index\"),\n", " \"rows\" : t.get(\"rows\"),\n", " \"cols\" : t.get(\"cols\"),\n", " \"col_headers\" : t.get(\"headers\", []),\n", " },\n", " })\n", "\n", "print(f\"Table chunks: {len(table_chunks)}\\n\")\n", "print(f\"{'idx':>3} {'Page':>4} {'Rows':>4} {'Cols':>4} is_atomic Col headers\")\n", "print(\"-\" * 65)\n", "for tc in table_chunks:\n", " m = tc[\"metadata\"]\n", " print(f\"{m['table_index']:>3} {str(m['page_num']):>4} {m['rows']:>4} {m['cols']:>4} {str(tc['is_atomic']):>9} {m['col_headers'][:3]}\")\n", "\n", "print()\n", "print(\"Preview table 0 (what LLM receives):\")\n", "print(table_chunks[0][\"text\"][:400])" ] }, { "cell_type": "markdown", "id": "ga37hvtdvf", "metadata": {}, "source": [ "## STEP 15 — Assign Chunk IDs + Save\n", "\n", "Every chunk gets a **deterministic ID**: `{doc_stem}_{type}_{index}` \n", "e.g. `ptc01302411420_text_0042`, `ptc01302411420_table_003`\n", "\n", "Deterministic IDs mean re-running the pipeline produces the same IDs — ChromaDB can **upsert** (add-or-update) without creating duplicates." ] }, { "cell_type": "code", "execution_count": 36, "id": "y08z6ki068s", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Saved: ptc01302411420_chunks.json (100.0 KB)\n", "\n", "Total : 64 chunks\n", " Text : 52 (HybridChunker — structure-aware, token-limited to 256)\n", " Tables : 12 (atomic markdown — one complete table per chunk)\n", "\n", "Chunk structure preview:\n", "{\n", " \"chunk_type\": \"text\",\n", " \"is_atomic\": false,\n", " \"metadata\": {\n", " \"file_name\": \"ptc01302411420.pdf\",\n", " \"file_path\": \"/home/pushkardeshpand/Documents/Morningstar RAG Pipeline/data/raw/morningstar/ptc01302411420.pdf\",\n", " \"source\": \"morningstar\",\n", " \"doc_type\": \"research_report\",\n", " \"company\": \"PTC Inc.\",\n", " \"ticker\": \"PTC\",\n", " \"license\": \"proprietary\",\n", " \"access_level\": \"internal\",\n", " \"parsed_at\": \"2026-06-20T07:53:13.641614+00:00\",\n", " \"parser\": \"docling\",\n", " \"total_pages\": 24,\n", " \"total_sections\": 202,\n", " \"total_tables\": 12,\n", " \"section_title\": \"Index Divisor\",\n", " \"heading_path\": \"Index Divisor\",\n", " \"page_num\": 3\n", " },\n", " \"chunk_id\": \"ptc01302411420_text_0002\",\n", " \"doc_id\": \"ptc01302411420\"\n", "}\n", " \"text\": \"Morningstar Indexes use the concept of an \"index divisor\" to calculate daily index levels. The performance of the index ...\"\n" ] } ], "source": [ "DOC_STEM = PDF_PATH.stem\n", "all_chunks = text_chunks + table_chunks\n", "\n", "text_idx = table_idx = 0\n", "for chunk in all_chunks:\n", " if chunk[\"chunk_type\"] == \"text\":\n", " chunk[\"chunk_id\"] = f\"{DOC_STEM}_text_{text_idx:04d}\"\n", " text_idx += 1\n", " else:\n", " chunk[\"chunk_id\"] = f\"{DOC_STEM}_table_{table_idx:03d}\"\n", " table_idx += 1\n", " chunk[\"doc_id\"] = DOC_STEM\n", "\n", "# Save\n", "CHUNKS_DIR = PROJECT_ROOT / \"data\" / \"chunks\"\n", "out_dir = CHUNKS_DIR / \"morningstar\"\n", "out_dir.mkdir(parents=True, exist_ok=True)\n", "out_path = out_dir / f\"{DOC_STEM}_chunks.json\"\n", "\n", "output = {\n", " \"doc_id\" : DOC_STEM,\n", " \"source_file\" : str(PROCESSED_DIR / f\"{DOC_STEM}.json\"),\n", " \"chunked_at\" : datetime.now(timezone.utc).isoformat(),\n", " \"total_chunks\" : len(all_chunks),\n", " \"text_chunks\" : len(text_chunks),\n", " \"table_chunks\" : len(table_chunks),\n", " \"chunks\" : all_chunks,\n", "}\n", "\n", "with open(out_path, \"w\") as f:\n", " json.dump(output, f, indent=2, ensure_ascii=False)\n", "\n", "size_kb = out_path.stat().st_size / 1024\n", "print(f\"Saved: {out_path.name} ({size_kb:.1f} KB)\")\n", "print(f\"\\nTotal : {len(all_chunks)} chunks\")\n", "print(f\" Text : {len(text_chunks)} (HybridChunker — structure-aware, token-limited to {MAX_TOKENS})\")\n", "print(f\" Tables : {len(table_chunks)} (atomic markdown — one complete table per chunk)\")\n", "print()\n", "print(\"Chunk structure preview:\")\n", "c = all_chunks[2]\n", "print(json.dumps({k: v for k, v in c.items() if k != \"text\"}, indent=2))\n", "print(f' \"text\": \"{c[\"text\"][:120]}...\"')" ] }, { "cell_type": "markdown", "id": "rzcici1kbp", "metadata": {}, "source": [ "## STEP 16 — Batch Process All Documents\n", "\n", "Use the `DocumentChunker` class from `src/chunker.py` to process all documents — both Morningstar PDFs and SEC filings — in one call.\n", "\n", "`DocumentChunker` internally loads the `HybridChunker` with the correct tokenizer. No models need to be passed in." ] }, { "cell_type": "code", "execution_count": 37, "id": "ljyfvx45ni", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2026-06-22 12:39:14,567 INFO Found 16 processed documents\n", "2026-06-22 12:39:14,568 INFO SKIP a-wide-moat-focus-provides-differentiation.json (already chunked → a-wide-moat-focus-provides-differentiation_chunks.json)\n", "2026-06-22 12:39:14,576 INFO SKIP ptc01302411420.json (already chunked → ptc01302411420_chunks.json)\n", "2026-06-22 12:39:14,578 INFO Chunking: 10-K_2023.json\n", "2026-06-22 12:39:14,586 WARNING _docling.json not found for 10-K_2023.json. Re-run pdf_processor.py with force=True to regenerate it.\n", "2026-06-22 12:39:14,587 INFO Chunking: 10-K_2024.json\n", "2026-06-22 12:39:14,594 WARNING _docling.json not found for 10-K_2024.json. Re-run pdf_processor.py with force=True to regenerate it.\n", "2026-06-22 12:39:14,595 INFO Chunking: 10-K_2025.json\n", "2026-06-22 12:39:14,600 WARNING _docling.json not found for 10-K_2025.json. Re-run pdf_processor.py with force=True to regenerate it.\n", "2026-06-22 12:39:14,601 INFO Chunking: 10-Q_2024_Q3.json\n", "2026-06-22 12:39:14,604 WARNING _docling.json not found for 10-Q_2024_Q3.json. Re-run pdf_processor.py with force=True to regenerate it.\n", "2026-06-22 12:39:14,605 INFO Chunking: 10-Q_2025_Q1.json\n", "2026-06-22 12:39:14,609 WARNING _docling.json not found for 10-Q_2025_Q1.json. Re-run pdf_processor.py with force=True to regenerate it.\n", "2026-06-22 12:39:14,611 INFO Chunking: 10-Q_2025_Q2.json\n", "2026-06-22 12:39:14,614 WARNING _docling.json not found for 10-Q_2025_Q2.json. Re-run pdf_processor.py with force=True to regenerate it.\n", "2026-06-22 12:39:14,615 INFO Chunking: 10-Q_2025_Q3.json\n", "2026-06-22 12:39:14,618 WARNING _docling.json not found for 10-Q_2025_Q3.json. Re-run pdf_processor.py with force=True to regenerate it.\n", "2026-06-22 12:39:14,618 INFO Chunking: 10-Q_2026_Q1.json\n", "2026-06-22 12:39:14,621 WARNING _docling.json not found for 10-Q_2026_Q1.json. Re-run pdf_processor.py with force=True to regenerate it.\n", "2026-06-22 12:39:14,622 INFO Chunking: 10-Q_2026_Q2.json\n", "2026-06-22 12:39:14,626 WARNING _docling.json not found for 10-Q_2026_Q2.json. Re-run pdf_processor.py with force=True to regenerate it.\n", "2026-06-22 12:39:14,627 INFO Chunking: 8-K_2026-01-02.json\n", "2026-06-22 12:39:14,628 WARNING _docling.json not found for 8-K_2026-01-02.json. Re-run pdf_processor.py with force=True to regenerate it.\n", "2026-06-22 12:39:14,628 INFO Chunking: 8-K_2026-01-29.json\n", "2026-06-22 12:39:14,629 WARNING _docling.json not found for 8-K_2026-01-29.json. Re-run pdf_processor.py with force=True to regenerate it.\n", "2026-06-22 12:39:14,630 INFO Chunking: 8-K_2026-02-24.json\n", "2026-06-22 12:39:14,631 WARNING _docling.json not found for 8-K_2026-02-24.json. Re-run pdf_processor.py with force=True to regenerate it.\n", "2026-06-22 12:39:14,631 INFO Chunking: 8-K_2026-04-20.json\n", "2026-06-22 12:39:14,632 WARNING _docling.json not found for 8-K_2026-04-20.json. Re-run pdf_processor.py with force=True to regenerate it.\n", "2026-06-22 12:39:14,632 INFO Chunking: 8-K_2026-04-30.json\n", "2026-06-22 12:39:14,633 WARNING _docling.json not found for 8-K_2026-04-30.json. Re-run pdf_processor.py with force=True to regenerate it.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "============================================================\n", "PHASE 3 COMPLETE — All documents chunked\n", "============================================================\n", " a-wide-moat-focus-provides-differentiation.json 32 chunks\n", " ptc01302411420.json 64 chunks\n", " 10-K_2023.json 0 chunks\n", " 10-K_2024.json 0 chunks\n", " 10-K_2025.json 0 chunks\n", " 10-Q_2024_Q3.json 0 chunks\n", " 10-Q_2025_Q1.json 0 chunks\n", " 10-Q_2025_Q2.json 0 chunks\n", " 10-Q_2025_Q3.json 0 chunks\n", " 10-Q_2026_Q1.json 0 chunks\n", " 10-Q_2026_Q2.json 0 chunks\n", " 8-K_2026-01-02.json 0 chunks\n", " 8-K_2026-01-29.json 0 chunks\n", " 8-K_2026-02-24.json 0 chunks\n", " 8-K_2026-04-20.json 0 chunks\n", " 8-K_2026-04-30.json 0 chunks\n", "\n", " TOTAL 96 chunks\n", "\n", "Output files (2):\n", " morningstar/a-wide-moat-focus-provides-differentiation_chunks.json (53 KB)\n", " morningstar/ptc01302411420_chunks.json (100 KB)\n" ] } ], "source": [ "from chunker import DocumentChunker\n", "\n", "# Process ALL processed JSONs (Morningstar + SEC filings)\n", "# force=False → skips files already chunked (idempotent)\n", "# DocumentChunker handles HybridChunker initialisation internally\n", "full_processed_dir = PROJECT_ROOT / \"data\" / \"processed\"\n", "chunker = DocumentChunker(chunks_dir=CHUNKS_DIR)\n", "summary = chunker.chunk_all(processed_dir=full_processed_dir, force=False)\n", "\n", "# Summary\n", "print(\"\\n\" + \"=\" * 60)\n", "print(\"PHASE 3 COMPLETE — All documents chunked\")\n", "print(\"=\" * 60)\n", "total = 0\n", "for fname, n in summary.items():\n", " print(f\" {fname:50s} {n:>5} chunks\")\n", " total += n\n", "print(f\"\\n {'TOTAL':50s} {total:>5} chunks\")\n", "print()\n", "\n", "# List output files\n", "chunk_files = sorted(CHUNKS_DIR.rglob(\"*.json\"))\n", "print(f\"Output files ({len(chunk_files)}):\")\n", "for cf in chunk_files:\n", " size_kb = cf.stat().st_size / 1024\n", " print(f\" {cf.relative_to(CHUNKS_DIR)} ({size_kb:.0f} KB)\")" ] }, { "cell_type": "code", "execution_count": null, "id": "3f971b5d-30f1-4e3a-ad0a-a62eb2ef8fc9", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.7" } }, "nbformat": 4, "nbformat_minor": 5 }