dubai-01 evidence bundle ======================== Pilot study dubai-01. Pack dubai-brokerage-v1 (pack hash fda99b65dcec970bf572e1c3c54630e44a1b838fe34af4cd2f9447ecdcea7359). Collected 2026-09-16 from the ChatGPT engine (web search forced, location United Arab Emirates, language en) via DataForSEO. 50 runs: 10 prompts, 5 runs each. This bundle holds the raw responses, the ledger tables, the pack, the resolver source, the resolution table, the hand-read ground truth and the analysis tables the published figures were computed from. Contents -------- LICENSE Apache License 2.0, for the code. LICENSE-DATA CC BY 4.0, for everything else. See Licensing below. responses//.json Raw API response for each run, original filenames, unmodified as stored at collection. runs.csv payload_sha256 is the SHA-256 of each file. The responses contain third-party business listings (names, addresses, phone numbers, ratings) reproduced as the engine returned them. runs.csv, attempts.csv, mentions.csv Ledger tables, every column, exported from SQLite. pack/dubai-brokerage-v1.yaml The pack all 50 runs used. Frozen in answer-census commit 330df4a2e02ae77315faf40b3ff658d367e25465, 2026-09-16 10:43:08 +0800. analysis/*.csv Instability analysis tables (resolved entities). matcher/brokerage_census/ Resolver source. matcher/geocensus/text/normalize.py Name normalization the resolver imports. With matcher/ on PYTHONPATH, the resolution, register, listing and generic modules import on their own. identity.py and cli.py need the full geocensus package. registry/brand_aliases.csv Hand-researched brand to ORN aliases the resolver reads. registry/name_classes.csv Hand classes (not_a_firm, developer, portal and so on). resolution.csv Every extracted candidate: resolution path, class, ORNs and registered name, with the rule or hand research that produced each match. ground-truth/run_NN.names.txt Hand read of 12 runs (sample A), one organisation name per line. ground-truth/README.md What the ground truth is and where it came from. ground-truth/index.csv Maps each names file to its run. Written for this bundle from the sample record. ground-truth/handread-ground-truth.md Provenance document for the names files, unedited. scoring/RULE.md The scoring rule, committed before the scorer ran. scoring/score_extraction.py The scorer. It needs the full repo (ledger, raw register) to run. scoring/results.csv One row per ground-truth name and per extracted name, per channel variant, with decision and reason. scoring/summary.txt Recall and precision with Wilson 95% intervals. Ground truth provenance ----------------------- The hand read was done blind: the reader worked from the answer text and did not see the extractor's output. The names files were not written by the reader. They were transcribed from the session output where the reader pasted each block, collected in handread-ground-truth.md, which marks the amendments applied during transcription and ends with the line "Do not run the diff yet." The document is shipped as it stands. Pack hash --------- The pack hash is not the SHA-256 of the YAML file. It is the SHA-256 of this JSON object, serialized with sorted keys, no whitespace (separators "," and ":"), non-ASCII left unescaped, UTF-8 encoded: pack_id, engine, location_code, language_code, runs_per_prompt, task_options, and prompts as a list of {id, text} in file order, with {variables} in each text substituted from the pack's variables block. File hashes ----------- SHA-256 and size in bytes of every file in the bundle except this manifest, sorted by path. LICENSE c95bae1d1ce0235ecccd3560b772ec1efb97f348a79f0fbe0a634f0c2ccefe2c 11358 LICENSE-DATA 71e2810b9cf2db29e251c0bd6fc7f0edbd4dfead2919141d71a247c8cda3d96a 19496 analysis/03_jaccard_pairs.csv 0049ce04af3c9c8f8619df24f6b0fe33abb4b3c7c09f6662c565c5e9f37c0ce8 10876 analysis/03_set_stats.csv 9c833b177472c61c8c19cf365781b5f99a8aa1dd02afa9e3bed7914a7d0ce703 2256 analysis/04_edition_c.csv b6a3667e16ce232d9a10a2a337e7767314d229063e402f8c966237cde7fbe555 203 analysis/05_position1_by_entity_c.csv b9d50d09a45edd1723280ef68196e5296a350eee63621e8e32a81b5b5656a716 1053 analysis/05_position1_by_prompt_c.csv bafbe376dae3f8458d69f6462b8bf34ae6df94541d75fb6a07da7cc3f697f1e5 1629 analysis/05_position1_runs_c.csv 314306fd9f566fdd85238f617d1e7c1731029b614b1fbf5c4ee2a8ab2ed357d2 5278 analysis/06_reach_c.csv e5cd20ac4c224daae591213e38f022b6e732e6c9bc20a7c2170be6e236e74754 14433 analysis/07_candidate_counts_per_run.csv f47a635e460fae7fd62d3880fe1fbfd3b778c7724cd42c7da8f6e52724df47e6 1221 attempts.csv fc0be68fadef4fe6e349df1a82ccd0975d9b15416c014ffda356db852336e72a 15650 ground-truth/README.md 2286528d4ccd51f1aa75259d32209425562873f10374ae0c19964a6574b469d4 1425 ground-truth/handread-ground-truth.md bf11b63aa86b37f58beb5a64e10a3402db587a1941a0c2b0efbf181ca62f4a54 5727 ground-truth/index.csv d34484397c0fdfca087c4b30d46fd0166a8ed6191b24d06391d38ea099dc593e 855 ground-truth/run_02.names.txt ba02c8406bf886558e97a027454eb08b22e26539981ceab71dc9e1c741ab1956 204 ground-truth/run_03.names.txt 7241a2cbca1337e31ac1a689c6d26769effe7c72fbae85c2b9b9240400f2e5ab 216 ground-truth/run_04.names.txt 4259777b5b5be0f8561cf957ec12b1b70a3f3e81b6638df4d8be685a68e002c3 68 ground-truth/run_05.names.txt 20984d57113fc62573d4b4d1f5e0449ead4bf9092785e7b36b3dbb7c3e7d927d 184 ground-truth/run_06.names.txt 5a18a3970ebc229f6cdcf35606494b84577c6db2ef5641a7340747596c8d5153 251 ground-truth/run_07.names.txt 8ee5e361caf4407914d946ae03e7e432a3fd03f179d56b4ad92f19b28448c842 264 ground-truth/run_08.names.txt ad61ec627702af5391a4e4952ef22e4e1533339fe78ab2212df4b9ac7176dde4 102 ground-truth/run_09.names.txt db8590115bc0f70ac83e4a6a75b0dc524eb4bc70baaf56d56b4a096eab9a20c3 156 ground-truth/run_10.names.txt 2b0c0ff06281c6312cbc8b6c276f661edda057a1088e3b902dc2b6945ae59402 153 ground-truth/run_11.names.txt 875105ff59be4815e04752bc89198c24ee943cc9a217d4200ca648864d14dc48 158 ground-truth/run_12.names.txt 475ebf9cbb83be553c5fcbd85fe6d6522e66af111e0ed951e762f3d8a8ff1cd1 146 ground-truth/run_16.names.txt c8edd4b72b012c8f4672bd4f485fd1a9494b80b4132e77230afbc551d53f5a55 365 matcher/brokerage_census/__init__.py e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 matcher/brokerage_census/cli.py 28921cb688f7bc8477c7b08c1b183fcad0996ad8156f1cce2dc0f0f862690471 4343 matcher/brokerage_census/generic.py 256c66f9d71b32c14f64f71aab25a89d702779c8563b65c7f4a26354f3b92c91 785 matcher/brokerage_census/identity.py 1c0d24729a13d9196bf0be12423ef38a8a0c38b3c78c760be355e497268dbeec 6086 matcher/brokerage_census/listing.py 32a23366f3355a035d6caaa7f8a628ed81d6edda253e3cac4ab9ac542d9f419a 2653 matcher/brokerage_census/register.py bae7e9433c9d78c7e78346bf1d4253dc16460763f72f1ee1b8c3b0763043ce0c 6166 matcher/brokerage_census/resolution.py 5b714c9ec76cd608234edc0f54b33278e16aa1ee6f5981cc60daa186c5cfd0fb 13078 matcher/brokerage_census/suffixes.py c2babb64f7758ff0f60e923e3e2815e60c81693e0a1c9da90f8dea7af07e398e 1592 matcher/geocensus/__init__.py e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 matcher/geocensus/text/__init__.py e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 matcher/geocensus/text/normalize.py 25bb2f86584fd500b6f249c62e3131991f791ea0df9f95310ace88c8021d8b17 2164 mentions.csv 59fe20318945d3c43693040e668d8e8aec587e401e22f5f0d0467b5906808fa7 557954 pack/dubai-brokerage-v1.yaml 6a64bc4eb14726a66585144da5d3eb786e462ef4644344d1034d0ef550e47375 1952 registry/brand_aliases.csv a0f81aa4e2e08a2974304b245a992a2b4222ff2aed931c954b26a0d25a843916 1539 registry/name_classes.csv 5a1b73c33ceeb4b8eebfb42aaad65063aaabb85a4091cfd65beeab95cc9c519a 2934 resolution.csv 175ca2506281c1174d6e696f7debf86663f9ef1b78f83c26ecc4964ef76d2187 38107 responses/best-agencies/0.json d21a7ac62aa484adfe77ab3e8386d2232264cce18a7dc3d71523559f25ac9e52 31287 responses/best-agencies/1.json b6ff1aee2a270cd78235729c669a76b33fd70e1914b7c90f3f3ee640fbcdd942 27427 responses/best-agencies/2.json 3dc59b0e2a3261aebb79d3d4eea5b31a45a42055be9869aa2a60d02cda9070bf 23345 responses/best-agencies/3.json b6c8e6338e1920cb05d0515c6e7f9c1c546263ea5b7be7e8dd24170e3e598f9d 26523 responses/best-agencies/4.json 43271296e468a621e52614c83ba08f3ffffbf6d2b4a3240e27a3845287932295 28638 responses/buy-apartment/0.json 4ae36a3864f488147ae6096176f678b2aa33d70c837a612632234145ab093fe6 25189 responses/buy-apartment/1.json 625fa70e31907c978602a20d7093c22893e1b5b167be0b1a540c265e5c8c2d19 22248 responses/buy-apartment/2.json 6dab796967333645845ae918752cdae21a5475f84e71e668f1b00868c8b62bf5 22980 responses/buy-apartment/3.json 7072c33195e1c8079a5973e1d31a78295f98f3b14b096eaed609ed644e3ba744 21572 responses/buy-apartment/4.json 542a2dcc74bba6002ab7f29fda21342d17fe4ade5773b65c863347661a8881af 24407 responses/buy-in-area/0.json c0afefd83c30ede1e8b394a150b6efac7091d8896289efd5e805662fa1194ff3 33957 responses/buy-in-area/1.json bced22e95d208a84d0d2af4f042d2e4d4fb5d377d476fe1e5599668872d869a3 23190 responses/buy-in-area/2.json 3c40ce386a6958c48b0acaab3cac98e10ae95a13c170da51d8a757e5da648046 22763 responses/buy-in-area/3.json e4cdc8b4019b66cb56c6796a3ea77677dc917a9d58425f2b2dc751900701d58d 22053 responses/buy-in-area/4.json 82caa6b44e657c62deb2d1d0dfaedab98901f0aa3c0a0f5eb6d23d9531b25ca2 21216 responses/investor/0.json 42d3b351cf6ed045fcc13dde0411462247a061203e2441bd0fbbe0bf96af99c1 29279 responses/investor/1.json 0590aeb8c24df3f0c4a817fb2ba02419a1a8151fbbf57043a64f70d63e9800e0 24007 responses/investor/2.json 350dc6abfa3db67ab725f69e7e822de4d5aaf334d975f228f08618a449d12128 13336 responses/investor/3.json b6d11e6f23718900eb49518c859cf7f46bd49979fedf957e6f4ccc925d6adf6c 27801 responses/investor/4.json 1e67b0786d44811eb181dc9c0f48d3b2ad0da431d08ca5e6a44eb748f3748b57 15309 responses/luxury/0.json 1f65735b3da7e75211ac9bc4587e673e9bc5fc25f0793060775f0cf505886c2e 22610 responses/luxury/1.json c79428123628ecb221c7aaf232a65d260f93af59ecba97fdcd52a90200bc44de 17504 responses/luxury/2.json 47ad5d9234aee0838fbb8228fd08699c35e1cbb1730f46c6f90657dbb8a4c1a8 15862 responses/luxury/3.json 7f45993fad5f54233561d19729d0c2ba6c1659e08e5dc615ffb1d5e3fec95e31 18156 responses/luxury/4.json 055aff41126d06054876cb7a45b6d6f91e6b9ca5e41f49e4e6cbd2f4b375e151 20344 responses/most-reputable/0.json 9f2d90791cc39b069b5c1c1a367c87805b5df1e01f5c011f5ce15c7c052831a7 31713 responses/most-reputable/1.json f24543381e8cacce4971cfc0f540a292b948b6193fc1ad8c15ad9eeed48151a0 33014 responses/most-reputable/2.json 023e1eac0b68e5541676ca2dbc35492fb7557f649425f95c990808b1ebe8abed 24094 responses/most-reputable/3.json dd6aa153988e7c8c1702ca535449bc0beaf31e0b14f5b11088d8ca283d0cfe4f 16088 responses/most-reputable/4.json 0e7904cf6bf411fcaf5efbba806a3aea8803fff0351e3da0918be9fbfba21cc6 30999 responses/off-plan/0.json 4367701db36a79c9e7cac0c0464e13d5b452bcc36cadaf0bbeca7bd32c4a32d9 6582 responses/off-plan/1.json 5e149dbc0fe46b8b7e168e0297cdc5d689e70e2a76dc29d54ecb55bf4acef708 11413 responses/off-plan/2.json b1c31f82a43e7f3b3a0cd0021d6657a2dc753af26754c46e2c68f1ddd6862703 6063 responses/off-plan/3.json 841b24dacc8d16298b8c38bc61b723b2227b9dbe3de7983fe4cded25898ddb49 15965 responses/off-plan/4.json 075e6e0c8f4a7e071b83283c3771f2f876fa8d29f4a559b785f537e51da5c75d 24438 responses/relocating/0.json f6d4a6fb5386424169911bf301fa9a737bdacbb77a2958199ae924ce95469c3d 10832 responses/relocating/1.json a1ba58ea700ec2a6bb857cbdeed3967843905fea5de7c021e2f042bc486e2686 1506 responses/relocating/2.json 1e22a259b7d2bb214e72849bae822209a25cdaa8e71bfb6408fdb986a637879a 22874 responses/relocating/3.json da6685e13578ae387ab8bba7393be13afa6721d7adb60ed1eb3b4233344ae0fc 20084 responses/relocating/4.json a3f2e92c7da73041c8d12c6c709cb504bae2a7072dc94b7a8f8bfa6b43c8b874 13876 responses/rent-apartment/0.json 67c728a52d87cfa1c9e4167f5412328faa2c30c91b684907c50febf6e795fa6e 18742 responses/rent-apartment/1.json 94ad1c9638f5a544e69e88706a7d335e50148185206841f8ea2bc57f7273b4b0 19580 responses/rent-apartment/2.json 6477559e6d7ccfe7c7c947dff8bc69da68d23e7208262740cd9449ad4bf8df66 21069 responses/rent-apartment/3.json 8255b10926f99d72ece70f6c5d140eb95bd5e62355aedf00bb136eee9a76eda5 22393 responses/rent-apartment/4.json fc7fc7a4968a469d90bad281dbe20cb237cc2c09f00956f6a8d7265a89595aa4 22625 responses/sell-apartment/0.json 8c079e8d0da1f9c57646e637c4bb94d9954e168da4281356d9e9af10fc04c721 23900 responses/sell-apartment/1.json e4207c0fd68fd614f8551c2f7f2a8d2f291835192f70196d2f4fb8879a033cf0 19133 responses/sell-apartment/2.json 4fc436d283a2493f74509befa1d344c2f9fa460717485588729a683628075cd7 29685 responses/sell-apartment/3.json cf76e4b8561cc3f948db32587c45440077d0b1e66646db77f143e48b818fd7c1 21261 responses/sell-apartment/4.json b582a127a15ea789cedef8439d0d9b9e99565142c134360ad55b9d0ad107314b 22659 runs.csv 135796addf4685c994c7d83be319868281d7bd94ebd37fa882d85e5b40d13541 29146 scoring/RULE.md 3c6046b9cf34bdaa99c4f67923078cb3fbe0e85a1ac2b91137b779be027f9e0f 6213 scoring/results.csv a122290dc6fc8abf2644c7b35e3b6cd0c3e0d03d06fef55eaa3f96a901986a5f 191080 scoring/score_extraction.py a326bd2578c40013c2faefa706f6d3e466bb8cc17b5912c0b0ee5e71ee4fc3d0 9270 scoring/summary.txt 7eb7ceaf6c63640e3eca404aacbf88445a5a6c5a6e2bb7582fe0f3ce990bc423 1313 Licensing --------- Code (matcher/, scoring/score_extraction.py): Apache License 2.0, in LICENSE. Data (everything else): CC BY 4.0, in LICENSE-DATA, which also says how to attribute. CC BY is chosen because it requires attribution. DataForSEO's terms of service do not address redistribution of API responses; the only relevant clause, 7.1, bars using search-engine data to compete with or adversely affect search engine providers, which a methods study does not do (read 2026-09-18). Deliberately not included ------------------------- 1. The Dubai Land Department broker register. Source: https://www.dubaipulse.gov.ae/data/dld-registration/dld_brokers-open It is a public government dataset and is not ours to republish. The study used the export downloaded on 2026-09-16 and built a one-row-per-ORN firm table from it: raw export, brokers-2026-09-16.csv SHA-256 20c008c3d48942a321bc47dc2f38e70e3442535e045a14048b67da8c1c53f806 firm table, firms.csv SHA-256 1b4546fbbd28340af3208fd2e7b19b38fda1b1ec9cf26716dab4b38d2d4882ae The firm table rebuilds byte for byte from the raw export with brokerage-census register --csv brokers-2026-09-16.csv --as-of 2026-09-16 Dubai Pulse updates the dataset, so a later download will most likely match neither hash. 2. analysis/2026-09-instability-v3/FINDINGS.md. An internal working document. It contains claims that were later retracted, and shipping it would republish them. Its tables are included above as CSV; its prose is not. Regenerated files ----------------- Nothing was regenerated. Every file is archived as committed, except four written for this bundle: ground-truth/index.csv (a lookup table), ground-truth/README.md, LICENSE-DATA, and LICENSE (copied from the answer-census repository). The recall and precision figures in scoring/ were computed on 2026-09-18, after collection, replacing earlier figures whose scoring was not recorded. The rule (scoring/RULE.md) was committed before the scorer was written or run, and the scorer was run once.