{
  "generated_at_utc": "2026-08-12T13:43:29.324319+00:00",
  "month": "2026-07",
  "summary": {
    "total": 15,
    "success": 8,
    "partial": 0,
    "manual_review": 2,
    "failed": 5,
    "skipped": 0,
    "with_previous_success": 12,
    "evidence_file_count": 37,
    "proof_file_count": 130,
    "citation_ready": 15
  },
  "results": [
    {
      "code": "adx",
      "exchange_name": "Abu Dhabi Securities Exchange",
      "month": "2026-07",
      "status": "failed",
      "confidence": 0.1,
      "currency": "AED",
      "method": "adx_report_center_excel",
      "source_url": "https://www.adx.ae/resources/report-center/overview?reportId=6",
      "source_date": null,
      "warnings": [
        "No market fields were extracted."
      ],
      "error": "Chrome remote debugging endpoint did not open on port 50335.",
      "metrics": {
        "index": null,
        "volume": null,
        "value": null,
        "market_cap": null
      },
      "previous_success": {
        "month": "2026-06",
        "source_url": "https://www.adx.ae/resources/report-center/overview?reportId=6",
        "source_date": "2026-06-30",
        "method": "adx_report_center_excel_cache",
        "metrics": {
          "index": {
            "raw_value": "9,804.16",
            "normalized_value": 9804.16,
            "source_snippet": "Workbook month 2026-06 | Index 9,804.16 | Volume 8,951,348,516 | Value 30,389,125,489.57 | Market Cap 2,880,137,134,215.97"
          },
          "volume": {
            "raw_value": "8,951,348,516",
            "normalized_value": 8951348516.0,
            "source_snippet": "Workbook month 2026-06 | Index 9,804.16 | Volume 8,951,348,516 | Value 30,389,125,489.57 | Market Cap 2,880,137,134,215.97"
          },
          "value": {
            "raw_value": "30,389,125,489.57",
            "normalized_value": 30389125489.57,
            "source_snippet": "Workbook month 2026-06 | Index 9,804.16 | Volume 8,951,348,516 | Value 30,389,125,489.57 | Market Cap 2,880,137,134,215.97"
          },
          "market_cap": {
            "raw_value": "2,880,137,134,215.97",
            "normalized_value": 2880137134215.97,
            "source_snippet": "Workbook month 2026-06 | Index 9,804.16 | Volume 8,951,348,516 | Value 30,389,125,489.57 | Market Cap 2,880,137,134,215.97"
          }
        }
      },
      "citation_ready": true,
      "evidence_files": [],
      "proof_files": [
        {
          "path": "proofs/adx/._export_log.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T13:12:24+00:00"
        },
        {
          "path": "proofs/adx/._manifest.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T13:12:26+00:00"
        },
        {
          "path": "proofs/adx/._report.xlsx",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T13:12:24+00:00"
        },
        {
          "path": "proofs/adx/export_log.json",
          "sha256": "596cde5adfe8e8dee35ecb13d346444fcd6279903d9b493a0ba1c26519c54605",
          "bytes": 66645,
          "modified_at_utc": "2026-08-12T11:27:44+00:00"
        },
        {
          "path": "proofs/adx/manifest.json",
          "sha256": "954e0648b9a6374facd67fdfa511f8c80998086a47fa90666a58d825747c94f7",
          "bytes": 1368,
          "modified_at_utc": "2026-08-12T13:12:26+00:00"
        },
        {
          "path": "proofs/adx/report.xlsx",
          "sha256": "7f87f5181ff3d3d97af7b174272075418a52ee1e992173bfa2146184a2cd9163",
          "bytes": 40094,
          "modified_at_utc": "2026-08-12T11:27:44+00:00"
        }
      ]
    },
    {
      "code": "ase",
      "exchange_name": "Amman Stock Exchange",
      "month": "2026-07",
      "status": "success",
      "confidence": 1.0,
      "currency": "JOD",
      "method": "hybrid_html_pdf",
      "source_url": "https://www.ase.com.jo/en/bulletins/monthly/new?month=1782864000",
      "source_date": "2026-07-30",
      "warnings": [],
      "error": null,
      "metrics": {
        "index": {
          "raw_value": "3,996.13",
          "normalized_value": 3996.13,
          "unit": null,
          "currency": "JOD",
          "source_snippet": "Total 294,518,424 128,455,147 95,726 General Index : 3,996.13 "
        },
        "volume": {
          "raw_value": "128,455,147",
          "normalized_value": 128455147.0,
          "unit": null,
          "currency": null,
          "source_snippet": "Total 294,518,424 128,455,147 95,726 General Index : 3,996.13 "
        },
        "value": {
          "raw_value": "294,518,424",
          "normalized_value": 294518424.0,
          "unit": null,
          "currency": "JOD",
          "source_snippet": "Total 294,518,424 128,455,147 95,726 General Index : 3,996.13 "
        },
        "market_cap": {
          "raw_value": "28,654,509,964",
          "normalized_value": 28654509964.0,
          "unit": null,
          "currency": "JOD",
          "source_snippet": "Turnover ratio & market capitalization by sectors July 2026 Sector name Turnover ratio Market capitalization Banks 0.560 12,177,839,827 Insurance 0.262 440,721,527 Diversified Financial Services 2.076 385,208,383 Real Estate 10.698 385,477,440 Financial 1.882 13,389,247,179 Health Care Services 0.002 52,800,000 Educational Services 0.231 404,163,750 Hotels and Tourism 0.203 253,022,141 Transportation 1.611 137,892,900 Technology and Communication 1.096 763,785,000 Utilities and Energy 2.960 1,731,699,208 Commercial Services 7.345 243,487,771 Services 1.870 3,586,850,771 Pharmaceutical and Medical Industries 0.632 172,169,428 Chemical Industries 0.484 93,620,363 Food and Beverages 0.808 213,693,156 Mining and Extraction Industries 0.613 10,994,956,244 Engineering and Construction 0.704 93,322,823 Electrical Industries 53.159 67,900,000 Textiles, Leathers and Clothings 0.416 42,750,000 Industrial 2.337 11,678,412,014 Total 1.954 28,654,509,964 The closing prices"
        }
      },
      "previous_success": {
        "month": "2026-06",
        "source_url": "https://www.ase.com.jo/en/bulletins/monthly/new?month=1780272000",
        "source_date": "2026-06-30",
        "method": "hybrid_html_pdf",
        "metrics": {
          "index": {
            "raw_value": "3,855.69",
            "normalized_value": 3855.69,
            "source_snippet": "Total 357,934,112 110,962,395 103,035 General Index : 3,855.69 "
          },
          "volume": {
            "raw_value": "110,962,395",
            "normalized_value": 110962395.0,
            "source_snippet": "Total 357,934,112 110,962,395 103,035 General Index : 3,855.69 "
          },
          "value": {
            "raw_value": "357,934,112",
            "normalized_value": 357934112.0,
            "source_snippet": "Total 357,934,112 110,962,395 103,035 General Index : 3,855.69 "
          },
          "market_cap": {
            "raw_value": "27,974,821,869",
            "normalized_value": 27974821869.0,
            "source_snippet": "Turnover ratio & market capitalization by sectors June 2026 Sector name Turnover ratio Market capitalization Banks 0.753 11,502,128,762 Insurance 0.332 431,056,162 Diversified Financial Services 1.282 376,541,794 Real Estate 5.198 358,670,392 Financial 1.301 12,668,397,111 Health Care Services 0.004 52,800,000 Educational Services 0.157 373,862,500 Hotels and Tourism 0.279 255,905,430 Transportation 1.222 130,021,900 Technology and Communication 0.947 705,340,000 Utilities and Energy 1.872 1,674,957,243 Commercial Services 6.630 238,165,960 Services 1.431 3,431,053,035 Pharmaceutical and Medical Industries 0.975 166,931,092 Chemical Industries 0.432 81,395,292 Food and Beverages 1.941 221,999,050 Mining and Extraction Industries 1.155 11,219,408,667 Engineering and Construction 10.060 88,337,622 Electrical Industries 41.927 55,300,000 Textiles, Leathers and Clothings 0.819 42,000,000 Industrial 3.567 11,875,371,723 Total 1.697 27,974,821,869 The closing prices"
          }
        }
      },
      "citation_ready": true,
      "evidence_files": [
        {
          "path": "evidence/ase/monthly_bulletin.html",
          "sha256": "e73e24a10aaabfd35feb2e15c4820fef6e7a36e7b0539ce515d21242224196da",
          "bytes": 198767,
          "modified_at_utc": "2026-08-12T13:42:21.354536+00:00"
        },
        {
          "path": "evidence/ase/monthly_bulletin.txt",
          "sha256": "25eadf6d331140757f5707b98fe3b07417dda51a03177aaf7b0244666ec6a95e",
          "bytes": 24889,
          "modified_at_utc": "2026-08-12T13:42:21.442535+00:00"
        },
        {
          "path": "evidence/ase/monthly_bulletin_listing.html",
          "sha256": "310bcb4ae23c5bdebf3a5481e1b9d5ebcdce07d31bdf6f9f9656c1f699a3c47a",
          "bytes": 198507,
          "modified_at_utc": "2026-08-12T13:42:20.144543+00:00"
        },
        {
          "path": "evidence/ase/monthly_statistical.html",
          "sha256": "42f67c97f996bddc64804ba97095ca9fade614db0f09d593d996b7e545549c91",
          "bytes": 230979,
          "modified_at_utc": "2026-08-12T13:42:23.481523+00:00"
        },
        {
          "path": "evidence/ase/monthly_statistical.txt",
          "sha256": "29cec5daff63360162bfe5efa750cdd9b6eccfd4041711cc37e08197c00f4d16",
          "bytes": 35766,
          "modified_at_utc": "2026-08-12T13:42:23.641522+00:00"
        },
        {
          "path": "evidence/ase/monthly_statistical_listing.html",
          "sha256": "915d4db39502208484b91277d5e30ed6a144311d422a0cf2c0df80ec47cb349b",
          "bytes": 230719,
          "modified_at_utc": "2026-08-12T13:42:22.633528+00:00"
        }
      ],
      "proof_files": [
        {
          "path": "proofs/ase/._manifest.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:05:02+00:00"
        },
        {
          "path": "proofs/ase/._monthly_bulletin.html",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:46+00:00"
        },
        {
          "path": "proofs/ase/._monthly_bulletin.txt",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:46+00:00"
        },
        {
          "path": "proofs/ase/._monthly_bulletin_listing.html",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:44+00:00"
        },
        {
          "path": "proofs/ase/._monthly_statistical.html",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:56+00:00"
        },
        {
          "path": "proofs/ase/._monthly_statistical.txt",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:56+00:00"
        },
        {
          "path": "proofs/ase/._monthly_statistical_listing.html",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:52+00:00"
        },
        {
          "path": "proofs/ase/manifest.json",
          "sha256": "0b1d9c0438d07701c727bac2e070842338bc07f180a77c9ced0ffecb00cf8324",
          "bytes": 2330,
          "modified_at_utc": "2026-08-12T10:05:02+00:00"
        },
        {
          "path": "proofs/ase/monthly_bulletin.html",
          "sha256": "d5e2f7f86b947bcbaee4dadca6e42437226a78132676ab1be7e690d6a6307a51",
          "bytes": 198767,
          "modified_at_utc": "2026-08-12T10:04:46+00:00"
        },
        {
          "path": "proofs/ase/monthly_bulletin.txt",
          "sha256": "7c63c5c7680398e262e2a1c4bf331c055c6a57ca3b673b0a95e1e10f1adf458f",
          "bytes": 24889,
          "modified_at_utc": "2026-08-12T10:04:46+00:00"
        },
        {
          "path": "proofs/ase/monthly_bulletin_listing.html",
          "sha256": "0fa02d9d34644948d3e63660e0cd03bb40c2bfe073f8027baea7a734deebf6df",
          "bytes": 198507,
          "modified_at_utc": "2026-08-12T10:04:44+00:00"
        },
        {
          "path": "proofs/ase/monthly_statistical.html",
          "sha256": "3278da25383620acb9df024ff8c1fb766f16a87130a89d4c1c508d6119a7bf5c",
          "bytes": 230979,
          "modified_at_utc": "2026-08-12T10:04:56+00:00"
        },
        {
          "path": "proofs/ase/monthly_statistical.txt",
          "sha256": "29cec5daff63360162bfe5efa750cdd9b6eccfd4041711cc37e08197c00f4d16",
          "bytes": 35766,
          "modified_at_utc": "2026-08-12T10:04:56+00:00"
        },
        {
          "path": "proofs/ase/monthly_statistical_listing.html",
          "sha256": "bd444c1905e04c0b05b226024d75a8ba188716468b61d6116ccd2dc5da1b80e4",
          "bytes": 230719,
          "modified_at_utc": "2026-08-12T10:04:52+00:00"
        }
      ]
    },
    {
      "code": "bahrain",
      "exchange_name": "Bahrain Bourse",
      "month": "2026-07",
      "status": "success",
      "confidence": 1.0,
      "currency": "BHD",
      "method": "bahrain_monthly_bulletin",
      "source_url": "https://bahrainbourse.com/en/Publications/Bulletins/Monthly%20Bulletin/July%202026.pdf",
      "source_date": null,
      "warnings": [],
      "error": null,
      "metrics": {
        "index": {
          "raw_value": "1,956.33",
          "normalized_value": 1956.33,
          "unit": null,
          "currency": "BHD",
          "source_snippet": "Bahrain All Share Index ended the month on a negative note compared to last month, closing at 1,956.33"
        },
        "volume": {
          "raw_value": "30,478,897",
          "normalized_value": 30478897.0,
          "unit": null,
          "currency": null,
          "source_snippet": "Value of Shares Traded (BD) Volume of Shares Traded Number of Transactions Market Capitalization (BD) 7,594,250,279 20,143,899,944 9,644,012 30,478,897 1,944"
        },
        "value": {
          "raw_value": "9,644,012",
          "normalized_value": 9644012.0,
          "unit": null,
          "currency": "BHD",
          "source_snippet": "Value of Shares Traded (BD) Volume of Shares Traded Number of Transactions Market Capitalization (BD) 7,594,250,279 20,143,899,944 9,644,012 30,478,897 1,944"
        },
        "market_cap": {
          "raw_value": "7,594,250,279",
          "normalized_value": 7594250279.0,
          "unit": null,
          "currency": "BHD",
          "source_snippet": "Value of Shares Traded (BD) Volume of Shares Traded Number of Transactions Market Capitalization (BD) 7,594,250,279 20,143,899,944 9,644,012 30,478,897 1,944"
        }
      },
      "previous_success": {
        "month": "2026-06",
        "source_url": "cache:extracted.txt",
        "source_date": null,
        "method": "bahrain_monthly_bulletin_cache",
        "metrics": {
          "index": {
            "raw_value": "2,042.56",
            "normalized_value": 2042.56,
            "source_snippet": "Bahrain All Share Index 2,042.56 1,979.05 63.51 3.21"
          },
          "volume": {
            "raw_value": "64,506,418",
            "normalized_value": 64506418.0,
            "source_snippet": "Value of Shares Traded (BD) Volume of Shares Traded Number of Transactions Market Capitalization (BD) 7,928,981,187 21,031,780,337 20,055,684 64,506,418 2,294"
          },
          "value": {
            "raw_value": "20,055,684",
            "normalized_value": 20055684.0,
            "source_snippet": "Value of Shares Traded (BD) Volume of Shares Traded Number of Transactions Market Capitalization (BD) 7,928,981,187 21,031,780,337 20,055,684 64,506,418 2,294"
          },
          "market_cap": {
            "raw_value": "7,928,981,187",
            "normalized_value": 7928981187.0,
            "source_snippet": "Value of Shares Traded (BD) Volume of Shares Traded Number of Transactions Market Capitalization (BD) 7,928,981,187 21,031,780,337 20,055,684 64,506,418 2,294"
          }
        }
      },
      "citation_ready": true,
      "evidence_files": [
        {
          "path": "evidence/bahrain/bahrain-2026-07.pdf",
          "sha256": "8d380e36ca3f5e431c8d06423c8b0848c5a17a2dd80565e815d5cb3f407b415a",
          "bytes": 766678,
          "modified_at_utc": "2026-08-12T13:42:03.272641+00:00"
        },
        {
          "path": "evidence/bahrain/extracted.txt",
          "sha256": "738d77452097bb701861cb00c13108c87811f209fd0dc29095856edf9e9967dc",
          "bytes": 30883,
          "modified_at_utc": "2026-08-12T13:42:03.437640+00:00"
        },
        {
          "path": "evidence/bahrain/publications.json",
          "sha256": "5186e12de50ca49138318c846784848c1abeeb30bd7e5b9c5618bd4e812db77d",
          "bytes": 42089,
          "modified_at_utc": "2026-08-12T13:42:01.419652+00:00"
        },
        {
          "path": "evidence/bahrain/publications_page.html",
          "sha256": "d870dcb8a6177622f590b37e5b98768b4cd4a74ec8ea4019092874520ecf66b6",
          "bytes": 180399,
          "modified_at_utc": "2026-08-12T13:42:01.016654+00:00"
        }
      ],
      "proof_files": [
        {
          "path": "proofs/bahrain/._bahrain-2026-07.pdf",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:46+00:00"
        },
        {
          "path": "proofs/bahrain/._extracted.txt",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:56+00:00"
        },
        {
          "path": "proofs/bahrain/._manifest.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:05:00+00:00"
        },
        {
          "path": "proofs/bahrain/._publications.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:44+00:00"
        },
        {
          "path": "proofs/bahrain/._publications_page.html",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:44+00:00"
        },
        {
          "path": "proofs/bahrain/bahrain-2026-07.pdf",
          "sha256": "8d380e36ca3f5e431c8d06423c8b0848c5a17a2dd80565e815d5cb3f407b415a",
          "bytes": 766678,
          "modified_at_utc": "2026-08-12T10:04:46+00:00"
        },
        {
          "path": "proofs/bahrain/extracted.txt",
          "sha256": "560732e8aaa137171c6c300db4e2dc523f2b2705ad395ef97e2bde8368e22995",
          "bytes": 30885,
          "modified_at_utc": "2026-08-12T10:04:56+00:00"
        },
        {
          "path": "proofs/bahrain/manifest.json",
          "sha256": "8df1f55ba17919942eb1818568993152093591a19f5ecb3417fac64cd0326bb3",
          "bytes": 1555,
          "modified_at_utc": "2026-08-12T10:05:00+00:00"
        },
        {
          "path": "proofs/bahrain/publications.json",
          "sha256": "5186e12de50ca49138318c846784848c1abeeb30bd7e5b9c5618bd4e812db77d",
          "bytes": 42089,
          "modified_at_utc": "2026-08-12T10:04:44+00:00"
        },
        {
          "path": "proofs/bahrain/publications_page.html",
          "sha256": "1c85762029dc757b231c7f23f2c890ee28d4eb15fc26281e08cb606ae2b41602",
          "bytes": 180399,
          "modified_at_utc": "2026-08-12T10:04:44+00:00"
        }
      ]
    },
    {
      "code": "beirut",
      "exchange_name": "Beirut Stock Exchange",
      "month": "2026-07",
      "status": "manual_review",
      "confidence": 0.22,
      "currency": "USD",
      "method": "html",
      "source_url": null,
      "source_date": null,
      "warnings": [
        "Page shows '', not 2026-07. The bulletin for this month is likely not yet published. Please re-run once BSE publishes the monthly bulletin."
      ],
      "error": null,
      "metrics": {
        "index": null,
        "volume": null,
        "value": null,
        "market_cap": null
      },
      "previous_success": null,
      "citation_ready": true,
      "evidence_files": [
        {
          "path": "evidence/beirut/listing.html",
          "sha256": "29c412eacbf41d11bcd8291d90f2c1a4977134b5b6a6351d2c4029786768fb82",
          "bytes": 12189,
          "modified_at_utc": "2026-08-12T13:42:18.289554+00:00"
        }
      ],
      "proof_files": [
        {
          "path": "proofs/beirut/._listing.html",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:44+00:00"
        },
        {
          "path": "proofs/beirut/._manifest.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:46+00:00"
        },
        {
          "path": "proofs/beirut/listing.html",
          "sha256": "5bb775d0b3bf84f58ee18625d3631047f2623f814dae0dceca8b9147cbc7f846",
          "bytes": 70750,
          "modified_at_utc": "2026-08-12T10:04:44+00:00"
        },
        {
          "path": "proofs/beirut/manifest.json",
          "sha256": "9421abc7f767b8d6c92a6b7abd4a4907028b7c1052cdb314bb968aac369f3eed",
          "bytes": 897,
          "modified_at_utc": "2026-08-12T10:04:46+00:00"
        }
      ]
    },
    {
      "code": "bvmt",
      "exchange_name": "Bourse de Tunis (BVMT)",
      "month": "2026-07",
      "status": "manual_review",
      "confidence": 0.29,
      "currency": "TND",
      "method": "pdf_listing",
      "source_url": "https://tunis-stockexchange.com/sites/default/files/2026-08/fr-lettre_mensuelle-juillet-2026_0.pdf",
      "source_date": null,
      "warnings": [
        "Direct BVMT archive URL lookup failed before listing fallback: 404 Client Error: Not Found for url: https://tunis-stockexchange.com/sites/default/files/fichier-lettre-mensuelle/juillet_2026.pdf",
        "The PDF found does not contain data for 2026-07 — the bulletin for this month is likely not yet published. Please re-run once the exchange publishes the monthly bulletin."
      ],
      "error": null,
      "metrics": {
        "index": null,
        "volume": null,
        "value": null,
        "market_cap": null
      },
      "previous_success": null,
      "citation_ready": true,
      "evidence_files": [
        {
          "path": "evidence/bvmt/bvmt-2026-07.pdf",
          "sha256": "52528ffca2947e99b32620a62032ed0196c096c01b73a3e4814b832312d14cc5",
          "bytes": 6820826,
          "modified_at_utc": "2026-08-12T13:42:17.424559+00:00"
        },
        {
          "path": "evidence/bvmt/extracted.proofs.txt",
          "sha256": "52cf6e80d71db2fd6945b2eacefa6f6ce23d95cb8c7caaf8523591d5b17b2b47",
          "bytes": 440,
          "modified_at_utc": "2026-08-12T13:42:03.443640+00:00"
        },
        {
          "path": "evidence/bvmt/extracted.txt",
          "sha256": "52cf6e80d71db2fd6945b2eacefa6f6ce23d95cb8c7caaf8523591d5b17b2b47",
          "bytes": 440,
          "modified_at_utc": "2026-08-12T13:42:17.446558+00:00"
        },
        {
          "path": "evidence/bvmt/listing.html",
          "sha256": "2a90de035c559e41d0ca504e2a7a7c6ab6d63459753293713371cee523ce2542",
          "bytes": 330728,
          "modified_at_utc": "2026-08-12T13:42:08.634610+00:00"
        }
      ],
      "proof_files": [
        {
          "path": "proofs/bvmt/._bvmt-2026-07.pdf",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:56+00:00"
        },
        {
          "path": "proofs/bvmt/._extracted.txt",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:58+00:00"
        },
        {
          "path": "proofs/bvmt/._listing.html",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:54+00:00"
        },
        {
          "path": "proofs/bvmt/._manifest.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:05:02+00:00"
        },
        {
          "path": "proofs/bvmt/bvmt-2026-07.pdf",
          "sha256": "52528ffca2947e99b32620a62032ed0196c096c01b73a3e4814b832312d14cc5",
          "bytes": 6820826,
          "modified_at_utc": "2026-08-12T10:04:58+00:00"
        },
        {
          "path": "proofs/bvmt/extracted.txt",
          "sha256": "52cf6e80d71db2fd6945b2eacefa6f6ce23d95cb8c7caaf8523591d5b17b2b47",
          "bytes": 440,
          "modified_at_utc": "2026-08-12T10:04:58+00:00"
        },
        {
          "path": "proofs/bvmt/listing.html",
          "sha256": "135306204525e8a2b671bd1eb7ca3efd5d0ed4a715adb8a16a4846fb5340bacf",
          "bytes": 330728,
          "modified_at_utc": "2026-08-12T10:04:54+00:00"
        },
        {
          "path": "proofs/bvmt/manifest.json",
          "sha256": "bae638ca055e9ea7f1b45cdd1789a2edca4fae2a3bc32d3c870aa7bef950e9fb",
          "bytes": 879,
          "modified_at_utc": "2026-08-12T10:05:02+00:00"
        }
      ]
    },
    {
      "code": "casablanca",
      "exchange_name": "Casablanca Stock Exchange",
      "month": "2026-07",
      "status": "failed",
      "confidence": 0.1,
      "currency": "MAD",
      "method": "casablanca_monthly_statistics_page",
      "source_url": "https://www.casablanca-bourse.com/market-data/editions-statistiques?field_periodicite_value=mensuel&field_type_d_edition_value=rapports_statistiques",
      "source_date": null,
      "warnings": [
        "No market fields were extracted."
      ],
      "error": "BrowserType.launch_persistent_context: Target page, context or browser has been closed\nBrowser logs:\n\n╔════════════════════════════════════════════════════════════════════════════════════════════════╗\n║ Looks like you launched a headed browser without having a XServer running.                     ║\n║ Set either 'headless: true' or use 'xvfb-run <your-playwright-app>' before running Playwright. ║\n║                                                                                                ║\n║ <3 Playwright Team                                                                             ║\n╚════════════════════════════════════════════════════════════════════════════════════════════════╝\nCall log:\n  - <launching> /ms-playwright/chromium-1234/chrome-linux64/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-updater-scheduler --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --no-sandbox --user-data-dir=/app/output/_browser_profiles/casablanca --remote-debugging-pipe about:blank\n  - <launched> pid=160\n  - [pid=160][err] [160:175:0812/134252.985417:ERROR:dbus/bus.cc:405] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory\n  - [pid=160][err] [160:160:0812/134252.987478:ERROR:ui/ozone/platform/x11/ozone_platform_x11.cc:257] Missing X server or $DISPLAY\n  - [pid=160][err] [160:160:0812/134252.987495:ERROR:ui/aura/env.cc:246] The platform failed to initialize.  Exiting.\n  - [pid=160] <gracefully close start>\n  - [pid=160] <kill>\n  - [pid=160] <will force kill>\n  - [pid=160] <process did exit: exitCode=1, signal=null>\n  - [pid=160] starting temporary directories cleanup\n  - [pid=160] finished temporary directories cleanup\n  - [pid=160] <gracefully close end>\n",
      "metrics": {
        "index": null,
        "volume": null,
        "value": null,
        "market_cap": null
      },
      "previous_success": {
        "month": "2026-06",
        "source_url": "https://www.casablanca-bourse.com/sites/default/files/editionstatistique/2026-08/rapport-mensuel_7_2026.pdf",
        "source_date": "2026-07-31",
        "method": "casablanca_monthly_statistics_page",
        "metrics": {
          "index": {
            "raw_value": "17 8 843,7",
            "normalized_value": 178843.7,
            "source_snippet": "MASI 18 2 217,27 17 8 843,7"
          },
          "volume": {
            "raw_value": "22 246 9",
            "normalized_value": 222469.0,
            "source_snippet": "TOTAL GENERAL 22 246 9 996"
          },
          "value": {
            "raw_value": "8 335 133 3 394,81",
            "normalized_value": 83351333394.81,
            "source_snippet": "TOTAL GENERAL 8 335 133 3 394,81 38,17 %"
          },
          "market_cap": {
            "raw_value": "1 030 616 672 2 267,72",
            "normalized_value": 10306166722267.72,
            "source_snippet": "TOTAL GENERAL 1 030 616 672 2 267,72 100,00 % (1) : Les variations sont calculées sur la base des cours ajustés"
          }
        }
      },
      "citation_ready": true,
      "evidence_files": [],
      "proof_files": [
        {
          "path": "proofs/casablanca/._casablanca-2026-07.pdf",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T11:22:40+00:00"
        },
        {
          "path": "proofs/casablanca/._extracted.txt",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T11:22:40+00:00"
        },
        {
          "path": "proofs/casablanca/._listing.html",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T11:22:36+00:00"
        },
        {
          "path": "proofs/casablanca/._listing.txt",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T11:22:36+00:00"
        },
        {
          "path": "proofs/casablanca/._manifest.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T11:22:40+00:00"
        },
        {
          "path": "proofs/casablanca/._page.png",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T11:22:30+00:00"
        },
        {
          "path": "proofs/casablanca/casablanca-2026-07.pdf",
          "sha256": "fc82c550101ea4b2ce32c0faad5aa3cab645945f038dd6af5ef45b8f043c1893",
          "bytes": 907243,
          "modified_at_utc": "2026-08-12T11:22:40+00:00"
        },
        {
          "path": "proofs/casablanca/extracted.txt",
          "sha256": "295c21dfb1645a333e4fd1bcc4b0cda9aae75f3b848b5184cdb08aad1e5229e8",
          "bytes": 59373,
          "modified_at_utc": "2026-08-12T11:22:40+00:00"
        },
        {
          "path": "proofs/casablanca/listing.html",
          "sha256": "4cb4d222c3054a5f752367ba2efe1000827122d394de37bffec6095ad5ddbf67",
          "bytes": 57836,
          "modified_at_utc": "2026-08-12T11:22:36+00:00"
        },
        {
          "path": "proofs/casablanca/listing.txt",
          "sha256": "43e2f7f5d4adf9ae690800bfac1f3b981c21cc8d08d35a587ef6dc28bc7b9d55",
          "bytes": 1781,
          "modified_at_utc": "2026-08-12T11:22:36+00:00"
        },
        {
          "path": "proofs/casablanca/manifest.json",
          "sha256": "ab7021b215daf3c72ac25b06223cf4c5ab2aa9bb0349a447e7292e658d17d947",
          "bytes": 1266,
          "modified_at_utc": "2026-08-12T11:22:40+00:00"
        },
        {
          "path": "proofs/casablanca/page.png",
          "sha256": "eed5821db7c12c5f84004403ccef5fb8e210a8edbe88e59f631b12abcb9d6e81",
          "bytes": 186423,
          "modified_at_utc": "2026-08-12T11:22:30+00:00"
        }
      ]
    },
    {
      "code": "dfm",
      "exchange_name": "Dubai Financial Market",
      "month": "2026-07",
      "status": "success",
      "confidence": 1.0,
      "currency": "AED",
      "method": "dfm_monthly_endpoint",
      "source_url": "https://service.dfm.ae/Bulletins/Bulletins/DownloadFullExcel?bdate=Monthly_Bulletin_01072026",
      "source_date": "2026-07-30",
      "warnings": [],
      "error": null,
      "metrics": {
        "index": {
          "raw_value": "5,795.93",
          "normalized_value": 5795.93,
          "unit": null,
          "currency": "AED",
          "source_snippet": "DFM index close on 2026-07-30"
        },
        "volume": {
          "raw_value": "3,746,510,918",
          "normalized_value": 3746510918.0,
          "unit": null,
          "currency": null,
          "source_snippet": "Market Grand Total"
        },
        "value": {
          "raw_value": "12,368,456,545.73",
          "normalized_value": 12368456545.73,
          "unit": null,
          "currency": "AED",
          "source_snippet": "Market Grand Total"
        },
        "market_cap": {
          "raw_value": "960,370,108,399.21",
          "normalized_value": 960370108399.21,
          "unit": null,
          "currency": "AED",
          "source_snippet": "Market Grand Total"
        }
      },
      "previous_success": {
        "month": "2026-06",
        "source_url": "https://service.dfm.ae/Bulletins/Bulletins/DownloadFullExcel?bdate=Monthly_Bulletin_01062026",
        "source_date": "2026-06-30",
        "method": "dfm_monthly_endpoint",
        "metrics": {
          "index": {
            "raw_value": "6,010.07",
            "normalized_value": 6010.07,
            "source_snippet": "DFM index close on 2026-06-30"
          },
          "volume": {
            "raw_value": "5,758,423,231",
            "normalized_value": 5758423231.0,
            "source_snippet": "Market Grand Total"
          },
          "value": {
            "raw_value": "20,796,382,106.19",
            "normalized_value": 20796382106.19,
            "source_snippet": "Market Grand Total"
          },
          "market_cap": {
            "raw_value": "981,646,986,646.32",
            "normalized_value": 981646986646.32,
            "source_snippet": "Market Grand Total"
          }
        }
      },
      "citation_ready": true,
      "evidence_files": [
        {
          "path": "evidence/dfm/dfm-listing.html",
          "sha256": "0ae3e64be0310ef4de37d92d08fec19ec1a5cb70c3052ed93d3fb418b53977a0",
          "bytes": 828671,
          "modified_at_utc": "2026-08-12T13:42:24.527517+00:00"
        },
        {
          "path": "evidence/dfm/dfm-listing.txt",
          "sha256": "7c01b33a2bfaaac8f4a021e06fe5e7b226543c9bc10f9a66f630d4f6c481c1e1",
          "bytes": 66813,
          "modified_at_utc": "2026-08-12T13:42:24.832515+00:00"
        },
        {
          "path": "evidence/dfm/dfm-monthly.html",
          "sha256": "2b1e0748133df4f863870d5bb70ff44dd44324ef70a0f00223ca5fab3bb84f19",
          "bytes": 266579,
          "modified_at_utc": "2026-08-12T13:42:24.942515+00:00"
        },
        {
          "path": "evidence/dfm/dfm-monthly.txt",
          "sha256": "0a65fa3f5464effdd468d3bdb57670b278c1fbe17968987c8c9e667ceb2c2655",
          "bytes": 21756,
          "modified_at_utc": "2026-08-12T13:42:25.049514+00:00"
        }
      ],
      "proof_files": [
        {
          "path": "proofs/dfm/._dfm-listing.html",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:44+00:00"
        },
        {
          "path": "proofs/dfm/._dfm-listing.txt",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:44+00:00"
        },
        {
          "path": "proofs/dfm/._dfm-monthly.html",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:46+00:00"
        },
        {
          "path": "proofs/dfm/._dfm-monthly.txt",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:46+00:00"
        },
        {
          "path": "proofs/dfm/._manifest.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:56+00:00"
        },
        {
          "path": "proofs/dfm/dfm-listing.html",
          "sha256": "1298abce4a4fade700384c067b0c565e83f01f1c31c828d5c888156986b830fc",
          "bytes": 827495,
          "modified_at_utc": "2026-08-12T10:04:44+00:00"
        },
        {
          "path": "proofs/dfm/dfm-listing.txt",
          "sha256": "574b9a2456b0a9388e9e1865f398d173fb1f234695967e8f820af83534339154",
          "bytes": 66652,
          "modified_at_utc": "2026-08-12T10:04:44+00:00"
        },
        {
          "path": "proofs/dfm/dfm-monthly.html",
          "sha256": "2b1e0748133df4f863870d5bb70ff44dd44324ef70a0f00223ca5fab3bb84f19",
          "bytes": 266579,
          "modified_at_utc": "2026-08-12T10:04:46+00:00"
        },
        {
          "path": "proofs/dfm/dfm-monthly.txt",
          "sha256": "0a65fa3f5464effdd468d3bdb57670b278c1fbe17968987c8c9e667ceb2c2655",
          "bytes": 21756,
          "modified_at_utc": "2026-08-12T10:04:46+00:00"
        },
        {
          "path": "proofs/dfm/manifest.json",
          "sha256": "7e24fb6834c7ce1b1f80873e2474d769ad4c28bee07908e17c6c81277b254b6b",
          "bytes": 1091,
          "modified_at_utc": "2026-08-12T10:04:56+00:00"
        }
      ]
    },
    {
      "code": "dse",
      "exchange_name": "Damascus Securities Exchange",
      "month": "2026-07",
      "status": "success",
      "confidence": 1.0,
      "currency": "SYP",
      "method": "dse_exchange_report_json",
      "source_url": "http://www.dse.gov.sy/reports/exchange_report_monthly_result/2026/7",
      "source_date": "2026-07-30",
      "warnings": [],
      "error": null,
      "metrics": {
        "index": {
          "raw_value": "147,099.4",
          "normalized_value": 147099.4,
          "unit": null,
          "currency": "SYP",
          "source_snippet": "{\"change\": 2634.25, \"curr_val\": \"147099.4\", \"percent_change\": 1.8234501538952472, \"prev_val\": \"144465.15\"}"
        },
        "volume": {
          "raw_value": "4,966,232",
          "normalized_value": 4966232.0,
          "unit": null,
          "currency": null,
          "source_snippet": "{\"totals_count_block_trades\": 5, \"totals_count_normal_trades\": 3764, \"totals_count_trades\": 3769, \"totals_market_capitalization\": \"258607686000\", \"totals_value_block_trades\": \"7680000\", \"totals_value_normal_trades\": \"158368888.69\", \"totals_value_trades\": \"166048888.69000003\", \"totals_vol_block_trades\": \"335100\", \"totals_vol_normal_trades\": \"4631132\", \"totals_vol_trades\": \"4966232\"}"
        },
        "value": {
          "raw_value": "166,048,888.69",
          "normalized_value": 166048888.69,
          "unit": null,
          "currency": "SYP",
          "source_snippet": "{\"totals_count_block_trades\": 5, \"totals_count_normal_trades\": 3764, \"totals_count_trades\": 3769, \"totals_market_capitalization\": \"258607686000\", \"totals_value_block_trades\": \"7680000\", \"totals_value_normal_trades\": \"158368888.69\", \"totals_value_trades\": \"166048888.69000003\", \"totals_vol_block_trades\": \"335100\", \"totals_vol_normal_trades\": \"4631132\", \"totals_vol_trades\": \"4966232\"}"
        },
        "market_cap": {
          "raw_value": "258,607,686,000",
          "normalized_value": 258607686000.0,
          "unit": null,
          "currency": "SYP",
          "source_snippet": "{\"totals_count_block_trades\": 5, \"totals_count_normal_trades\": 3764, \"totals_count_trades\": 3769, \"totals_market_capitalization\": \"258607686000\", \"totals_value_block_trades\": \"7680000\", \"totals_value_normal_trades\": \"158368888.69\", \"totals_value_trades\": \"166048888.69000003\", \"totals_vol_block_trades\": \"335100\", \"totals_vol_normal_trades\": \"4631132\", \"totals_vol_trades\": \"4966232\"}"
        }
      },
      "previous_success": {
        "month": "2026-06",
        "source_url": "http://www.dse.gov.sy/reports/exchange_report_monthly_result/2026/6",
        "source_date": "2026-06-30",
        "method": "dse_exchange_report_json",
        "metrics": {
          "index": {
            "raw_value": "144,465.15",
            "normalized_value": 144465.15,
            "source_snippet": "{\"change\": 4846.1999999999825, \"curr_val\": \"144465.15\", \"percent_change\": 3.4710187979496925, \"prev_val\": \"139618.95\"}"
          },
          "volume": {
            "raw_value": "17,707,097",
            "normalized_value": 17707097.0,
            "source_snippet": "{\"totals_count_block_trades\": 14, \"totals_count_normal_trades\": 6266, \"totals_count_trades\": 6280, \"totals_market_capitalization\": \"254096544000\", \"totals_value_block_trades\": \"148837416.67999998\", \"totals_value_normal_trades\": \"320441344.10000026\", \"totals_value_trades\": \"469278760.7799998\", \"totals_vol_block_trades\": \"4789932\", \"totals_vol_normal_trades\": \"12917165\", \"totals_vol_trades\": \"17707097\"}"
          },
          "value": {
            "raw_value": "469,278,760.78",
            "normalized_value": 469278760.78,
            "source_snippet": "{\"totals_count_block_trades\": 14, \"totals_count_normal_trades\": 6266, \"totals_count_trades\": 6280, \"totals_market_capitalization\": \"254096544000\", \"totals_value_block_trades\": \"148837416.67999998\", \"totals_value_normal_trades\": \"320441344.10000026\", \"totals_value_trades\": \"469278760.7799998\", \"totals_vol_block_trades\": \"4789932\", \"totals_vol_normal_trades\": \"12917165\", \"totals_vol_trades\": \"17707097\"}"
          },
          "market_cap": {
            "raw_value": "254,096,544,000",
            "normalized_value": 254096544000.0,
            "source_snippet": "{\"totals_count_block_trades\": 14, \"totals_count_normal_trades\": 6266, \"totals_count_trades\": 6280, \"totals_market_capitalization\": \"254096544000\", \"totals_value_block_trades\": \"148837416.67999998\", \"totals_value_normal_trades\": \"320441344.10000026\", \"totals_value_trades\": \"469278760.7799998\", \"totals_vol_block_trades\": \"4789932\", \"totals_vol_normal_trades\": \"12917165\", \"totals_vol_trades\": \"17707097\"}"
          }
        }
      },
      "citation_ready": true,
      "evidence_files": [
        {
          "path": "evidence/dse/dwx_history.json",
          "sha256": "266ac73921d6102627ed0d48499e31f498dbf4989544a08ed94cef4b79a14db7",
          "bytes": 23404,
          "modified_at_utc": "2026-08-12T13:43:24.315166+00:00"
        },
        {
          "path": "evidence/dse/exchange_report_monthly.json",
          "sha256": "169fc8b91148f6f5d619093342389dea8984804ad7bf85124af1ec7628c3d65c",
          "bytes": 20027,
          "modified_at_utc": "2026-08-12T13:43:23.641171+00:00"
        }
      ],
      "proof_files": [
        {
          "path": "proofs/dse/._dwx_history.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:05:12+00:00"
        },
        {
          "path": "proofs/dse/._exchange_report_monthly.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:05:10+00:00"
        },
        {
          "path": "proofs/dse/._manifest.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:05:14+00:00"
        },
        {
          "path": "proofs/dse/dwx_history.json",
          "sha256": "266ac73921d6102627ed0d48499e31f498dbf4989544a08ed94cef4b79a14db7",
          "bytes": 23404,
          "modified_at_utc": "2026-08-12T10:05:12+00:00"
        },
        {
          "path": "proofs/dse/exchange_report_monthly.json",
          "sha256": "a503f062fbbb07b5225e30d4120d9ffc24e6a87e4b5d365a998b765979116d99",
          "bytes": 20027,
          "modified_at_utc": "2026-08-12T10:05:10+00:00"
        },
        {
          "path": "proofs/dse/manifest.json",
          "sha256": "a9a6eff02b534c34043da1a986ffd80690043848e1dc6395bc53726ec14aaf03",
          "bytes": 2275,
          "modified_at_utc": "2026-08-12T10:05:14+00:00"
        }
      ]
    },
    {
      "code": "egx",
      "exchange_name": "Egyptian Exchange",
      "month": "2026-07",
      "status": "failed",
      "confidence": 0.0,
      "currency": "EGP",
      "method": "manual_review",
      "source_url": null,
      "source_date": null,
      "warnings": [
        "No market fields were extracted."
      ],
      "error": "Unhandled adapter error: Chrome remote debugging endpoint did not open on port 52553.",
      "metrics": {
        "index": null,
        "volume": null,
        "value": null,
        "market_cap": null
      },
      "previous_success": {
        "month": "2026-06",
        "source_url": "https://www.egx.com.eg/get_pdf.aspx?ID=54809&Lang=ENG",
        "source_date": "2026-06-30",
        "method": "egx_cached_report_live_market_cap",
        "metrics": {
          "index": {
            "raw_value": "50,487.96",
            "normalized_value": 50487.96,
            "source_snippet": "Page 1 Period: 01/06/2026-30/06/2026 Issued at 30/06/2026 16:14:32 EGX 30 index closed at 50,487.96 points, recording a decline of 4.12%. EGX70 EWI index posted 5.81% gain concluding the pe"
          },
          "volume": {
            "raw_value": "61,231,168,598",
            "normalized_value": 61231168598.0,
            "source_snippet": "91 724,766,267 131,615 Total 1,566,472,698,972 38,402,256,982 3,703,743 2,646,225,923,403 61,231,168,598 4,364,506 Page 4 Period: 01/06/2026-30/06/2026 Issued at 30/06/2026 16:14:33 Egyptians r"
          },
          "value": {
            "raw_value": "2,646,225,923,403",
            "normalized_value": 2646225923403.0,
            "source_snippet": "58,448 2,280,145,091 724,766,267 131,615 Total 1,566,472,698,972 38,402,256,982 3,703,743 2,646,225,923,403 61,231,168,598 4,364,506 Page 4 Period: 01/06/2026-30/06/2026 Issued at 30/06/2026 16:14"
          },
          "market_cap": {
            "raw_value": "3,679,262,797,908",
            "normalized_value": 3679262797908.0,
            "source_snippet": "Date 2026-06-30 | Market Cap 3,679,262,797,908"
          }
        }
      },
      "citation_ready": true,
      "evidence_files": [],
      "proof_files": [
        {
          "path": "proofs/egx/._egx-2026-07.pdf",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T13:14:06+00:00"
        },
        {
          "path": "proofs/egx/._manifest.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T13:14:08+00:00"
        },
        {
          "path": "proofs/egx/._market_cap_month.html",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T13:14:08+00:00"
        },
        {
          "path": "proofs/egx/._monthly_report.txt",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T13:14:08+00:00"
        },
        {
          "path": "proofs/egx/egx-2026-07.pdf",
          "sha256": "78363226773f0c95743dfc44ac3a4b39536e35421cf3c06c5df116c0f266da0e",
          "bytes": 2402457,
          "modified_at_utc": "2026-08-12T11:30:40+00:00"
        },
        {
          "path": "proofs/egx/manifest.json",
          "sha256": "3e8fa933ac6535b3b9cf470dbd31bd480fe44bfde552073064f689da47ffcfdf",
          "bytes": 1553,
          "modified_at_utc": "2026-08-12T13:14:08+00:00"
        },
        {
          "path": "proofs/egx/market_cap_month.html",
          "sha256": "a9ed0cf4c8d3a025449e4962f7251b9b8dd62c0a508b3c61a99da93a2825ec8a",
          "bytes": 107241,
          "modified_at_utc": "2026-08-12T12:21:12+00:00"
        },
        {
          "path": "proofs/egx/monthly_report.txt",
          "sha256": "8b27e394c4bc7e469176d713e080d10a41056fa1ef59abcdf9f1014e501144f8",
          "bytes": 230461,
          "modified_at_utc": "2026-08-12T11:30:40+00:00"
        }
      ]
    },
    {
      "code": "isx",
      "exchange_name": "Iraq Stock Exchange",
      "month": "2026-07",
      "status": "success",
      "confidence": 1.0,
      "currency": "IQD",
      "method": "isx_monthly_xls",
      "source_url": "http://www.isx-iq.net/isxportal/files/مجمل تموزز126_8_0_7_16_22.xls",
      "source_date": "2026-08-09",
      "warnings": [],
      "error": null,
      "metrics": {
        "index": {
          "raw_value": "1,041.07",
          "normalized_value": 1041.07,
          "unit": null,
          "currency": "IQD",
          "source_snippet": "row 25: ['المجموع الحالي Total This Month       ', 161139090207.0, 100.0, 104918738134.90999, 100.0, 24203.0, 100.0, 81.0, 103.0, 1041.07, 1267.67]"
        },
        "volume": {
          "raw_value": "166,655,061,356",
          "normalized_value": 166655061356.0,
          "unit": null,
          "currency": null,
          "source_snippet": "row 25: ['المجموع الحالي Total This Month       ', 161139090207.0, 100.0, 104918738134.90999, 100.0, 24203.0, 100.0, 81.0, 103.0, 1041.07, 1267.67] + OTC totals: ['', 'مجموع السوق ', '', '', '', '', 139.0, 5515971149.0, 15111572652.619999, 21.0]"
        },
        "value": {
          "raw_value": "120,030,310,788",
          "normalized_value": 120030310788.0,
          "unit": null,
          "currency": "IQD",
          "source_snippet": "row 25: ['المجموع الحالي Total This Month       ', 161139090207.0, 100.0, 104918738134.90999, 100.0, 24203.0, 100.0, 81.0, 103.0, 1041.07, 1267.67] + OTC totals: ['', 'مجموع السوق ', '', '', '', '', 139.0, 5515971149.0, 15111572652.619999, 21.0]"
        },
        "market_cap": {
          "raw_value": "28,652,294,869,036",
          "normalized_value": 28652294869036.0,
          "unit": null,
          "currency": "IQD",
          "source_snippet": "Market cap totals: ['', 'المجموع TOTAL', 16071338.815636, 99.99999999999999, 28652294.86903588, 100.00000000000001]"
        }
      },
      "previous_success": {
        "month": "2026-06",
        "source_url": "http://www.isx-iq.net/isxportal/files/مجمل ح126_7_1_7_31_45.xls",
        "source_date": "2026-07-06",
        "method": "isx_monthly_xls",
        "metrics": {
          "index": {
            "raw_value": "1,019.39",
            "normalized_value": 1019.39,
            "source_snippet": "row 23: ['المجموع الحالي Total This Month       ', 107389769285.0, 100.0, 118555732869.01, 100.0, 26432.0, 100.0, 77.0, 103.0, 1019.39, 1273.79]"
          },
          "volume": {
            "raw_value": "107,602,545,720",
            "normalized_value": 107602545720.0,
            "source_snippet": "row 23: ['المجموع الحالي Total This Month       ', 107389769285.0, 100.0, 118555732869.01, 100.0, 26432.0, 100.0, 77.0, 103.0, 1019.39, 1273.79] + OTC totals: ['', 'مجموع السوق ', '', '', '', '', 99.0, 212776435.0, 31135595.869999997, 16.0]"
          },
          "value": {
            "raw_value": "118,586,868,465",
            "normalized_value": 118586868465.0,
            "source_snippet": "row 23: ['المجموع الحالي Total This Month       ', 107389769285.0, 100.0, 118555732869.01, 100.0, 26432.0, 100.0, 77.0, 103.0, 1019.39, 1273.79] + OTC totals: ['', 'مجموع السوق ', '', '', '', '', 99.0, 212776435.0, 31135595.869999997, 16.0]"
          },
          "market_cap": {
            "raw_value": "27,646,836,746,221",
            "normalized_value": 27646836746221.0,
            "source_snippet": "Market cap totals: ['', 'المجموع TOTAL', 16064838.815636, 99.99999999999999, 27646836.746220805, 100.00000000000001]"
          }
        }
      },
      "citation_ready": true,
      "evidence_files": [
        {
          "path": "evidence/isx/isx-2026-07.pdf",
          "sha256": "5b5b9210db0a9ff6aa4f41cefe8604d971a1c98abcc3b48f332b48ad1adc6471",
          "bytes": 3950862,
          "modified_at_utc": "2026-08-12T13:43:26.299155+00:00"
        },
        {
          "path": "evidence/isx/isx-2026-07.xls",
          "sha256": "5c47120a8748b7b52969954f40dc09f8951967fd4234c6f43f8a04306b1387ee",
          "bytes": 655872,
          "modified_at_utc": "2026-08-12T13:43:25.927157+00:00"
        },
        {
          "path": "evidence/isx/monthly_listing.html",
          "sha256": "abb08c7c5d2d23aa12a0c1e0bde6bc0d7d269c4644560b255cdad414793dfee0",
          "bytes": 60381,
          "modified_at_utc": "2026-08-12T13:43:25.284161+00:00"
        },
        {
          "path": "evidence/isx/monthly_listing.txt",
          "sha256": "b7d36396d9ce7c6836d410ed3da7a5b06686b8771c194a4775f8f87e84a68271",
          "bytes": 1017,
          "modified_at_utc": "2026-08-12T13:43:25.291161+00:00"
        }
      ],
      "proof_files": [
        {
          "path": "proofs/isx/._isx-2026-07.pdf",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:05:04+00:00"
        },
        {
          "path": "proofs/isx/._isx-2026-07.xls",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:05:00+00:00"
        },
        {
          "path": "proofs/isx/._manifest.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:05:08+00:00"
        },
        {
          "path": "proofs/isx/._monthly_listing.html",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:58+00:00"
        },
        {
          "path": "proofs/isx/._monthly_listing.txt",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:58+00:00"
        },
        {
          "path": "proofs/isx/isx-2026-07.pdf",
          "sha256": "5b5b9210db0a9ff6aa4f41cefe8604d971a1c98abcc3b48f332b48ad1adc6471",
          "bytes": 3950862,
          "modified_at_utc": "2026-08-12T10:05:04+00:00"
        },
        {
          "path": "proofs/isx/isx-2026-07.xls",
          "sha256": "5c47120a8748b7b52969954f40dc09f8951967fd4234c6f43f8a04306b1387ee",
          "bytes": 655872,
          "modified_at_utc": "2026-08-12T10:05:00+00:00"
        },
        {
          "path": "proofs/isx/manifest.json",
          "sha256": "0e35aef4fdd36260ebe66d62a13f436a59e9bdad3738265d9bfd8cc8d9222d04",
          "bytes": 1824,
          "modified_at_utc": "2026-08-12T10:05:08+00:00"
        },
        {
          "path": "proofs/isx/monthly_listing.html",
          "sha256": "c9950aec433f8448ee67421df07a6e6608e89b4515d77f205ba75f0ee9229fd3",
          "bytes": 60381,
          "modified_at_utc": "2026-08-12T10:04:58+00:00"
        },
        {
          "path": "proofs/isx/monthly_listing.txt",
          "sha256": "b7d36396d9ce7c6836d410ed3da7a5b06686b8771c194a4775f8f87e84a68271",
          "bytes": 1017,
          "modified_at_utc": "2026-08-12T10:04:58+00:00"
        }
      ]
    },
    {
      "code": "kuwait",
      "exchange_name": "Boursa Kuwait",
      "month": "2026-07",
      "status": "failed",
      "confidence": 0.07,
      "currency": "KWD",
      "method": "kuwait_monthly_api",
      "source_url": "https://www.boursakuwait.com.kw/data-api/client-services?RT=3522&DT=3&MT=A&L=E",
      "source_date": null,
      "warnings": [
        "Boursa Kuwait direct index API request failed (403 Client Error: Forbidden for url: https://www.boursakuwait.com.kw/data-api/client-services?RT=3523&L=E); retrying with browser session.",
        "No market fields were extracted."
      ],
      "error": "BrowserType.launch_persistent_context: Target page, context or browser has been closed\nBrowser logs:\n\n╔════════════════════════════════════════════════════════════════════════════════════════════════╗\n║ Looks like you launched a headed browser without having a XServer running.                     ║\n║ Set either 'headless: true' or use 'xvfb-run <your-playwright-app>' before running Playwright. ║\n║                                                                                                ║\n║ <3 Playwright Team                                                                             ║\n╚════════════════════════════════════════════════════════════════════════════════════════════════╝\nCall log:\n  - <launching> /ms-playwright/chromium-1234/chrome-linux64/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-updater-scheduler --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --no-sandbox --user-data-dir=/app/output/_browser_profiles/kuwait --remote-debugging-pipe about:blank\n  - <launched> pid=126\n  - [pid=126][err] [126:140:0812/134252.450901:ERROR:dbus/bus.cc:405] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory\n  - [pid=126][err] [126:126:0812/134252.452747:ERROR:ui/ozone/platform/x11/ozone_platform_x11.cc:257] Missing X server or $DISPLAY\n  - [pid=126][err] [126:126:0812/134252.452761:ERROR:ui/aura/env.cc:246] The platform failed to initialize.  Exiting.\n  - [pid=126] <gracefully close start>\n  - [pid=126] <kill>\n  - [pid=126] <will force kill>\n  - [pid=126] <process did exit: exitCode=1, signal=null>\n  - [pid=126] starting temporary directories cleanup\n  - [pid=126] finished temporary directories cleanup\n  - [pid=126] <gracefully close end>\n",
      "metrics": {
        "index": null,
        "volume": null,
        "value": null,
        "market_cap": null
      },
      "previous_success": {
        "month": "2026-06",
        "source_url": "https://reports.boursakuwait.com.kw/en/data-and-research/reports/market-summary-chart/p2mxq535929/2026",
        "source_date": "2026-06-30",
        "method": "kuwait_monthly_archive",
        "metrics": {
          "index": {
            "raw_value": "8,706.33",
            "normalized_value": 8706.33,
            "source_snippet": "{\"BKA_Last\": 8706.33, \"BKM50_Last\": 9820.37, \"BKM_Last\": 9061.4, \"BKP_Last\": 9082.68, \"TradeDate\": \"2026/06/30\"}"
          },
          "volume": {
            "raw_value": "8,366,471,781",
            "normalized_value": 8366471781.0,
            "source_snippet": "2,129,923,544.824"
          },
          "value": {
            "raw_value": "2,129,923,544.824",
            "normalized_value": 2129923544.824,
            "source_snippet": "2,129,923,544.824"
          },
          "market_cap": {
            "raw_value": "52,159,493,304.33",
            "normalized_value": 52159493304.33,
            "source_snippet": "52,159,493,304.33"
          }
        }
      },
      "citation_ready": true,
      "evidence_files": [],
      "proof_files": [
        {
          "path": "proofs/kuwait/._manifest.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T11:23:02+00:00"
        },
        {
          "path": "proofs/kuwait/._monthly_report.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T11:23:02+00:00"
        },
        {
          "path": "proofs/kuwait/._report_index.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T11:22:38+00:00"
        },
        {
          "path": "proofs/kuwait/manifest.json",
          "sha256": "bdfd4bffbe13ac58bcdb7eaa7e6ccc8cf1f9f5d9716aaff737ace9cc0f1dc017",
          "bytes": 1973,
          "modified_at_utc": "2026-08-12T11:23:02+00:00"
        },
        {
          "path": "proofs/kuwait/monthly_report.json",
          "sha256": "25884d1b8db08fd2eeb1e34782dad7632ce254a5b0423ce1e6098c06bf1ea29a",
          "bytes": 48345,
          "modified_at_utc": "2026-08-12T11:23:02+00:00"
        },
        {
          "path": "proofs/kuwait/report_index.json",
          "sha256": "4e887c550df758cd9ad8cea081e2e070784a480b4f62da282f0303158591c187",
          "bytes": 1094,
          "modified_at_utc": "2026-08-12T11:22:38+00:00"
        }
      ]
    },
    {
      "code": "msx",
      "exchange_name": "Muscat Stock Exchange",
      "month": "2026-07",
      "status": "success",
      "confidence": 1.0,
      "currency": "OMR",
      "method": "msx_monthly_bulletin",
      "source_url": "https://www.msx.om/MSMDOCS/downloads/en_1785411402744_July 2026 ENG_ARB--.xls",
      "source_date": "2026-07-30",
      "warnings": [],
      "error": null,
      "metrics": {
        "index": {
          "raw_value": "7,277.197",
          "normalized_value": 7277.197,
          "unit": null,
          "currency": "OMR",
          "source_snippet": "['', 'MSX 30 INDEX', '', 7678.101, 6962.679, 7277.197, 7507.935, -230.738, -0.03073255162704525, '', 'OMANIS', '', 0.864313461122777, 0.8482092464442254, 0.8744086289857179, 0.8629397008824394, '', '']"
        },
        "volume": {
          "raw_value": "3,377,607,630",
          "normalized_value": 3377607630.0,
          "unit": null,
          "currency": null,
          "source_snippet": "['', 'Total Volume', 'Total Turnover', 'Total Trades', 'Market Cap', 'Up', 'Down', 'Equal', 'Sec. Traded', '', '', '', '', '', '', '', '', ''] -> ['', 3377607630.0, 920917134.288, 207231.0, 37582624870.8, 33.0, 64.0, 19.0, 116.0, '', '', '', '', '', '', '', '', '']"
        },
        "value": {
          "raw_value": "920,917,134.288",
          "normalized_value": 920917134.288,
          "unit": null,
          "currency": "OMR",
          "source_snippet": "['', 'Total Volume', 'Total Turnover', 'Total Trades', 'Market Cap', 'Up', 'Down', 'Equal', 'Sec. Traded', '', '', '', '', '', '', '', '', ''] -> ['', 3377607630.0, 920917134.288, 207231.0, 37582624870.8, 33.0, 64.0, 19.0, 116.0, '', '', '', '', '', '', '', '', '']"
        },
        "market_cap": {
          "raw_value": "37,582,624,870.8",
          "normalized_value": 37582624870.8,
          "unit": null,
          "currency": "OMR",
          "source_snippet": "['', 'Total Volume', 'Total Turnover', 'Total Trades', 'Market Cap', 'Up', 'Down', 'Equal', 'Sec. Traded', '', '', '', '', '', '', '', '', ''] -> ['', 3377607630.0, 920917134.288, 207231.0, 37582624870.8, 33.0, 64.0, 19.0, 116.0, '', '', '', '', '', '', '', '', '']"
        }
      },
      "previous_success": {
        "month": "2026-06",
        "source_url": "https://www.msx.om/MSMDOCS/downloads/en_1782820569146_JUNE 2026 ENG_ARB--.xls",
        "source_date": "2026-06-30",
        "method": "msx_monthly_bulletin",
        "metrics": {
          "index": {
            "raw_value": "7,507.935",
            "normalized_value": 7507.935,
            "source_snippet": "['', 'MSX 30 INDEX', '', 7846.532, 7296.117, 7507.935, 7757.213, -249.278, -0.03213499487509238, '', 'OMANIS', '', 0.9092058049598324, 0.8818588930110154, 0.9356354786773396, 0.9072433867929716, '', '']"
          },
          "volume": {
            "raw_value": "2,663,805,719",
            "normalized_value": 2663805719.0,
            "source_snippet": "['', 'Total Volume', 'Total Turnover', 'Total Trades', 'Market Cap', 'Up', 'Down', 'Equal', 'Sec. Traded', '', '', '', '', '', '', '', '', ''] -> ['', 2663805719.0, 776154231.368, 159613.0, 36729473568.351, 37.0, 58.0, 14.0, 109.0, '', '', '', '', '', '', '', '', '']"
          },
          "value": {
            "raw_value": "776,154,231.368",
            "normalized_value": 776154231.368,
            "source_snippet": "['', 'Total Volume', 'Total Turnover', 'Total Trades', 'Market Cap', 'Up', 'Down', 'Equal', 'Sec. Traded', '', '', '', '', '', '', '', '', ''] -> ['', 2663805719.0, 776154231.368, 159613.0, 36729473568.351, 37.0, 58.0, 14.0, 109.0, '', '', '', '', '', '', '', '', '']"
          },
          "market_cap": {
            "raw_value": "36,729,473,568.351",
            "normalized_value": 36729473568.351,
            "source_snippet": "['', 'Total Volume', 'Total Turnover', 'Total Trades', 'Market Cap', 'Up', 'Down', 'Equal', 'Sec. Traded', '', '', '', '', '', '', '', '', ''] -> ['', 2663805719.0, 776154231.368, 159613.0, 36729473568.351, 37.0, 58.0, 14.0, 109.0, '', '', '', '', '', '', '', '', '']"
          }
        }
      },
      "citation_ready": true,
      "evidence_files": [
        {
          "path": "evidence/msx/extracted.txt",
          "sha256": "1894e574627522e0771c41a286f7c0e7ecd0a529bac7b88837e96f95d06c5ede",
          "bytes": 45,
          "modified_at_utc": "2026-08-12T13:42:59.681311+00:00"
        },
        {
          "path": "evidence/msx/listing.html",
          "sha256": "3148ea998bfa55a0ee8d71270770cb1931ad4f80ed458d09b85bf6a050d6ea19",
          "bytes": 178340,
          "modified_at_utc": "2026-08-12T13:42:59.299314+00:00"
        },
        {
          "path": "evidence/msx/listing.txt",
          "sha256": "a5fcdace760415bb5d00eeb4cc5b442e9641dbca410197f1b8bb0639d839c4ca",
          "bytes": 3746,
          "modified_at_utc": "2026-08-12T13:42:59.299314+00:00"
        },
        {
          "path": "evidence/msx/msx-2026-07.xls",
          "sha256": "53abd4c06849b7dcc72cc15cf5eb4b9c6dc74933e79f55428fca9fba18615e63",
          "bytes": 193161,
          "modified_at_utc": "2026-08-12T13:42:59.660311+00:00"
        },
        {
          "path": "evidence/msx/page.png",
          "sha256": "193aab1bbddb34e02150bccd8e66e386abb1471445d04f4e7b8e5f175d4fd7a4",
          "bytes": 453358,
          "modified_at_utc": "2026-08-12T13:42:59.218314+00:00"
        }
      ],
      "proof_files": [
        {
          "path": "proofs/msx/._extracted.txt",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:06:02+00:00"
        },
        {
          "path": "proofs/msx/._listing.html",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:06:00+00:00"
        },
        {
          "path": "proofs/msx/._listing.txt",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:06:00+00:00"
        },
        {
          "path": "proofs/msx/._manifest.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:06:02+00:00"
        },
        {
          "path": "proofs/msx/._msx-2026-07.xls",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:06:00+00:00"
        },
        {
          "path": "proofs/msx/._page.png",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:05:38+00:00"
        },
        {
          "path": "proofs/msx/extracted.txt",
          "sha256": "1894e574627522e0771c41a286f7c0e7ecd0a529bac7b88837e96f95d06c5ede",
          "bytes": 45,
          "modified_at_utc": "2026-08-12T10:06:02+00:00"
        },
        {
          "path": "proofs/msx/listing.html",
          "sha256": "9a220f8399686ffd11490fe26620a305de793b8f22e43971543336191ef56077",
          "bytes": 177774,
          "modified_at_utc": "2026-08-12T10:06:00+00:00"
        },
        {
          "path": "proofs/msx/listing.txt",
          "sha256": "dfe7874433429d70a87f6444ce5b2a881069606e4f295f16ac4534881ce295a5",
          "bytes": 3647,
          "modified_at_utc": "2026-08-12T10:06:00+00:00"
        },
        {
          "path": "proofs/msx/manifest.json",
          "sha256": "5a00bc8931ac7697fd0fa5b5dd8af076c635c8d729093aced3daea2ebf908e3a",
          "bytes": 1995,
          "modified_at_utc": "2026-08-12T10:06:02+00:00"
        },
        {
          "path": "proofs/msx/msx-2026-07.xls",
          "sha256": "53abd4c06849b7dcc72cc15cf5eb4b9c6dc74933e79f55428fca9fba18615e63",
          "bytes": 193161,
          "modified_at_utc": "2026-08-12T10:06:00+00:00"
        },
        {
          "path": "proofs/msx/page.png",
          "sha256": "99763432e96ad90647078744f6acfdc46296881f47cfd03cc17a66fb4ff8b6cd",
          "bytes": 248343,
          "modified_at_utc": "2026-08-12T10:05:38+00:00"
        }
      ]
    },
    {
      "code": "pex",
      "exchange_name": "Palestine Exchange",
      "month": "2026-07",
      "status": "success",
      "confidence": 1.0,
      "currency": "USD",
      "method": "pex_monthly_bulletin_api",
      "source_url": "https://api.pex.ps/FileManager/Default.aspx?AID=1&UID=1&DocAction=610&PathCode=1&HashCode=60240&TRID=145261&TID=529&WFID=29",
      "source_date": "2026-07-30",
      "warnings": [],
      "error": null,
      "metrics": {
        "index": {
          "raw_value": "648.32",
          "normalized_value": 648.32,
          "unit": null,
          "currency": "USD",
          "source_snippet": "Alquds 648.32 654.96 -6.64 -1.01 % 655.80 642.55"
        },
        "volume": {
          "raw_value": "8,545,577",
          "normalized_value": 8545577.0,
          "unit": null,
          "currency": null,
          "source_snippet": "Totals (parsed)"
        },
        "value": {
          "raw_value": "12,604,501.16",
          "normalized_value": 12604501.16,
          "unit": null,
          "currency": "USD",
          "source_snippet": "Totals (parsed)"
        },
        "market_cap": {
          "raw_value": "5,045,093,934.74",
          "normalized_value": 5045093934.74,
          "unit": null,
          "currency": "USD",
          "source_snippet": "Totals (parsed)"
        }
      },
      "previous_success": {
        "month": "2026-06",
        "source_url": "https://api.pex.ps/FileManager/Default.aspx?AID=1&UID=1&DocAction=610&PathCode=1&HashCode=60026&TRID=144895&TID=530&WFID=29",
        "source_date": "2026-06-30",
        "method": "pex_monthly_bulletin_api",
        "metrics": {
          "index": {
            "raw_value": "654.96",
            "normalized_value": 654.96,
            "source_snippet": "Alquds 654.96 630.27 24.69 3.92 % 666.81 625.23"
          },
          "volume": {
            "raw_value": "14,488,873",
            "normalized_value": 14488873.0,
            "source_snippet": "Totals (parsed)"
          },
          "value": {
            "raw_value": "28,219,584.64",
            "normalized_value": 28219584.64,
            "source_snippet": "Totals (parsed)"
          },
          "market_cap": {
            "raw_value": "5,081,377,295.54",
            "normalized_value": 5081377295.54,
            "source_snippet": "Totals (parsed)"
          }
        }
      },
      "citation_ready": true,
      "evidence_files": [
        {
          "path": "evidence/pex/bulletins-attempt-01-covered-month.json",
          "sha256": "3955fa1b79d99581566bb3533b0816ccf541ae609718dc0cbd620b537be34247",
          "bytes": 877,
          "modified_at_utc": "2026-08-12T13:43:00.675306+00:00"
        },
        {
          "path": "evidence/pex/bulletins.json",
          "sha256": "3955fa1b79d99581566bb3533b0816ccf541ae609718dc0cbd620b537be34247",
          "bytes": 877,
          "modified_at_utc": "2026-08-12T13:43:00.675306+00:00"
        },
        {
          "path": "evidence/pex/extracted-ar.txt",
          "sha256": "d1d82124f51cf526ec7f5409677707fef93eceb2f1cfe29dedb9e8f28657ff4d",
          "bytes": 9116,
          "modified_at_utc": "2026-08-12T13:43:02.146297+00:00"
        },
        {
          "path": "evidence/pex/extracted.txt",
          "sha256": "e3a6a1eb5aa0a4ea0ebea6aa27a447b2e998c78d09c46bc2512b3df27f57f052",
          "bytes": 7620,
          "modified_at_utc": "2026-08-12T13:43:01.937298+00:00"
        },
        {
          "path": "evidence/pex/pex-2026-07-ar.pdf",
          "sha256": "e3bc903530c21bc7a72de2b4ffe95da7230e8d28987d27e045ab8e62f305250c",
          "bytes": 438046,
          "modified_at_utc": "2026-08-12T13:43:02.125297+00:00"
        },
        {
          "path": "evidence/pex/pex-2026-07.pdf",
          "sha256": "537e0bfe54a9b948e60004f9d2eecf8c94449d6e63b307fe30284d8ec41f6b97",
          "bytes": 423344,
          "modified_at_utc": "2026-08-12T13:43:01.919298+00:00"
        }
      ],
      "proof_files": [
        {
          "path": "proofs/pex/._bulletins-attempt-01-covered-month.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:54+00:00"
        },
        {
          "path": "proofs/pex/._bulletins.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:54+00:00"
        },
        {
          "path": "proofs/pex/._extracted-ar.txt",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:05:00+00:00"
        },
        {
          "path": "proofs/pex/._extracted.txt",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:58+00:00"
        },
        {
          "path": "proofs/pex/._manifest.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:05:04+00:00"
        },
        {
          "path": "proofs/pex/._pex-2026-07-ar.pdf",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:05:00+00:00"
        },
        {
          "path": "proofs/pex/._pex-2026-07.pdf",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:58+00:00"
        },
        {
          "path": "proofs/pex/bulletins-attempt-01-covered-month.json",
          "sha256": "3955fa1b79d99581566bb3533b0816ccf541ae609718dc0cbd620b537be34247",
          "bytes": 877,
          "modified_at_utc": "2026-08-12T10:04:54+00:00"
        },
        {
          "path": "proofs/pex/bulletins.json",
          "sha256": "3955fa1b79d99581566bb3533b0816ccf541ae609718dc0cbd620b537be34247",
          "bytes": 877,
          "modified_at_utc": "2026-08-12T10:04:54+00:00"
        },
        {
          "path": "proofs/pex/extracted-ar.txt",
          "sha256": "d1d82124f51cf526ec7f5409677707fef93eceb2f1cfe29dedb9e8f28657ff4d",
          "bytes": 9116,
          "modified_at_utc": "2026-08-12T10:05:00+00:00"
        },
        {
          "path": "proofs/pex/extracted.txt",
          "sha256": "e3a6a1eb5aa0a4ea0ebea6aa27a447b2e998c78d09c46bc2512b3df27f57f052",
          "bytes": 7620,
          "modified_at_utc": "2026-08-12T10:04:58+00:00"
        },
        {
          "path": "proofs/pex/manifest.json",
          "sha256": "00c65faee4bf10acd993d410532f3351edfb8826561892137d228c7e8e57492b",
          "bytes": 1249,
          "modified_at_utc": "2026-08-12T10:05:04+00:00"
        },
        {
          "path": "proofs/pex/pex-2026-07-ar.pdf",
          "sha256": "e3bc903530c21bc7a72de2b4ffe95da7230e8d28987d27e045ab8e62f305250c",
          "bytes": 438046,
          "modified_at_utc": "2026-08-12T10:05:00+00:00"
        },
        {
          "path": "proofs/pex/pex-2026-07.pdf",
          "sha256": "537e0bfe54a9b948e60004f9d2eecf8c94449d6e63b307fe30284d8ec41f6b97",
          "bytes": 423344,
          "modified_at_utc": "2026-08-12T10:04:58+00:00"
        }
      ]
    },
    {
      "code": "qatar",
      "exchange_name": "Qatar Exchange",
      "month": "2026-07",
      "status": "success",
      "confidence": 1.0,
      "currency": "QAR",
      "method": "qatar_market_summary",
      "source_url": "https://www.qe.com.qa/wp/trading_report_data/2026/07/MarketSummary.txt",
      "source_date": null,
      "warnings": [],
      "error": null,
      "metrics": {
        "index": {
          "raw_value": "9920.69",
          "normalized_value": 9920.69,
          "unit": null,
          "currency": "QAR",
          "source_snippet": "{\"DATE_TYPE\": \"Month\", \"GAINER_STOCKS\": 8.0, \"INDEX_VALUE\": 9920.69, \"LOSER_STOCKS\": 45.0, \"QSE_MCAP\": \"594182157083.606\", \"TRADED_STOCKS\": 54.0, \"TRADES_COUNT\": 439520.0, \"TRADES_VALUE\": \"5826419072.405\", \"TRADES_VOLUME\": 2301591550.0}"
        },
        "volume": {
          "raw_value": "2301591550",
          "normalized_value": 2301591550.0,
          "unit": null,
          "currency": null,
          "source_snippet": "{\"DATE_TYPE\": \"Month\", \"GAINER_STOCKS\": 8.0, \"INDEX_VALUE\": 9920.69, \"LOSER_STOCKS\": 45.0, \"QSE_MCAP\": \"594182157083.606\", \"TRADED_STOCKS\": 54.0, \"TRADES_COUNT\": 439520.0, \"TRADES_VALUE\": \"5826419072.405\", \"TRADES_VOLUME\": 2301591550.0}"
        },
        "value": {
          "raw_value": "5826419072.405",
          "normalized_value": 5826419072.405,
          "unit": null,
          "currency": "QAR",
          "source_snippet": "{\"DATE_TYPE\": \"Month\", \"GAINER_STOCKS\": 8.0, \"INDEX_VALUE\": 9920.69, \"LOSER_STOCKS\": 45.0, \"QSE_MCAP\": \"594182157083.606\", \"TRADED_STOCKS\": 54.0, \"TRADES_COUNT\": 439520.0, \"TRADES_VALUE\": \"5826419072.405\", \"TRADES_VOLUME\": 2301591550.0}"
        },
        "market_cap": {
          "raw_value": "594182157083.606",
          "normalized_value": 594182157083.606,
          "unit": null,
          "currency": "QAR",
          "source_snippet": "{\"DATE_TYPE\": \"Month\", \"GAINER_STOCKS\": 8.0, \"INDEX_VALUE\": 9920.69, \"LOSER_STOCKS\": 45.0, \"QSE_MCAP\": \"594182157083.606\", \"TRADED_STOCKS\": 54.0, \"TRADES_COUNT\": 439520.0, \"TRADES_VALUE\": \"5826419072.405\", \"TRADES_VOLUME\": 2301591550.0}"
        }
      },
      "previous_success": {
        "month": "2026-06",
        "source_url": "https://www.qe.com.qa/wp/trading_report_data/2026/06/MarketSummary.txt",
        "source_date": null,
        "method": "qatar_market_summary",
        "metrics": {
          "index": {
            "raw_value": "10241.75",
            "normalized_value": 10241.75,
            "source_snippet": "{\"DATE_TYPE\": \"Month\", \"GAINER_STOCKS\": 19.0, \"INDEX_VALUE\": 10241.75, \"LOSER_STOCKS\": 34.0, \"QSE_MCAP\": \"616210176094.736\", \"TRADED_STOCKS\": 54.0, \"TRADES_COUNT\": 554067.0, \"TRADES_VALUE\": \"8894141162.379\", \"TRADES_VOLUME\": 3156911104.0}"
          },
          "volume": {
            "raw_value": "3156911104",
            "normalized_value": 3156911104.0,
            "source_snippet": "{\"DATE_TYPE\": \"Month\", \"GAINER_STOCKS\": 19.0, \"INDEX_VALUE\": 10241.75, \"LOSER_STOCKS\": 34.0, \"QSE_MCAP\": \"616210176094.736\", \"TRADED_STOCKS\": 54.0, \"TRADES_COUNT\": 554067.0, \"TRADES_VALUE\": \"8894141162.379\", \"TRADES_VOLUME\": 3156911104.0}"
          },
          "value": {
            "raw_value": "8894141162.379",
            "normalized_value": 8894141162.379,
            "source_snippet": "{\"DATE_TYPE\": \"Month\", \"GAINER_STOCKS\": 19.0, \"INDEX_VALUE\": 10241.75, \"LOSER_STOCKS\": 34.0, \"QSE_MCAP\": \"616210176094.736\", \"TRADED_STOCKS\": 54.0, \"TRADES_COUNT\": 554067.0, \"TRADES_VALUE\": \"8894141162.379\", \"TRADES_VOLUME\": 3156911104.0}"
          },
          "market_cap": {
            "raw_value": "616210176094.736",
            "normalized_value": 616210176094.736,
            "source_snippet": "{\"DATE_TYPE\": \"Month\", \"GAINER_STOCKS\": 19.0, \"INDEX_VALUE\": 10241.75, \"LOSER_STOCKS\": 34.0, \"QSE_MCAP\": \"616210176094.736\", \"TRADED_STOCKS\": 54.0, \"TRADES_COUNT\": 554067.0, \"TRADES_VALUE\": \"8894141162.379\", \"TRADES_VOLUME\": 3156911104.0}"
          }
        }
      },
      "citation_ready": true,
      "evidence_files": [
        {
          "path": "evidence/qatar/market_summary.txt",
          "sha256": "d85aee21705eb0794d3c28b3af0fe34ec557f741634d7d696e2c23e7cbff2705",
          "bytes": 229,
          "modified_at_utc": "2026-08-12T13:42:30.278484+00:00"
        }
      ],
      "proof_files": [
        {
          "path": "proofs/qatar/._manifest.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:44+00:00"
        },
        {
          "path": "proofs/qatar/._market_summary.txt",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:04:42+00:00"
        },
        {
          "path": "proofs/qatar/manifest.json",
          "sha256": "18dfd92d7c35fec07baa26b341f67536453cf1364cb975500c47a9585af03365",
          "bytes": 1862,
          "modified_at_utc": "2026-08-12T10:04:44+00:00"
        },
        {
          "path": "proofs/qatar/market_summary.txt",
          "sha256": "d85aee21705eb0794d3c28b3af0fe34ec557f741634d7d696e2c23e7cbff2705",
          "bytes": 229,
          "modified_at_utc": "2026-08-12T10:04:42+00:00"
        }
      ]
    },
    {
      "code": "saudi",
      "exchange_name": "Saudi Exchange (Tadawul)",
      "month": "2026-07",
      "status": "failed",
      "confidence": 0.1,
      "currency": "SAR",
      "method": "saudi_monthly_browser",
      "source_url": "https://www.saudiexchange.sa/Resources/Reports-v2/Monthly_en.html",
      "source_date": null,
      "warnings": [
        "No market fields were extracted."
      ],
      "error": "Chrome remote debugging endpoint did not open on port 41395.",
      "metrics": {
        "index": null,
        "volume": null,
        "value": null,
        "market_cap": null
      },
      "previous_success": null,
      "citation_ready": true,
      "evidence_files": [],
      "proof_files": [
        {
          "path": "proofs/saudi/._manifest.json",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:08:20+00:00"
        },
        {
          "path": "proofs/saudi/._source.browser.html",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:08:20+00:00"
        },
        {
          "path": "proofs/saudi/._source.browser.txt",
          "sha256": "df38342ef2cfe964b913feb1c174273a7b209068da38f33ee7ac49692f35e413",
          "bytes": 4096,
          "modified_at_utc": "2026-08-12T10:08:20+00:00"
        },
        {
          "path": "proofs/saudi/manifest.json",
          "sha256": "d21e7debced473541a4e1c467aebceda530f95fee2c6be026c47c964b7f86c92",
          "bytes": 1451,
          "modified_at_utc": "2026-08-12T10:08:20+00:00"
        },
        {
          "path": "proofs/saudi/source.browser.html",
          "sha256": "202dd6397ce54bc62778969204efbc2c9609b394740dc13d03b6a91786369ff8",
          "bytes": 280751,
          "modified_at_utc": "2026-08-12T10:08:20+00:00"
        },
        {
          "path": "proofs/saudi/source.browser.txt",
          "sha256": "c5e941274882a28d91a3de3c6f8bead1c8d7620e4b27cef8fcb4e5236cfd4110",
          "bytes": 30199,
          "modified_at_utc": "2026-08-12T10:08:20+00:00"
        }
      ]
    }
  ]
}