dubai-02 evidence bundle
========================

dubai-02 edition 1, from wave 2 (edition id dubai-02-wave2). Pack dubai-02-v2 (pack hash
a985350a5cda3b7a7ca86bc53aa958c192d1ab988dde1816034d65bf13098a04). Collected 2026-09-23 between
02:36:12 and 05:41:21 UTC from ChatGPT (web search forced), Gemini and Google AI Mode through
DataForSEO, location United Arab Emirates (2784), language en, desktop, Windows. 2,400 runs:
40 prompts on 3 surfaces, 20 runs each. Wave 1 (edition id dubai-02-edition-1), collected
2026-09-19, ships alongside as a repeat measure.

This bundle holds derived tables and a hash manifest. It does not hold the raw responses.
See "Deliberately not included".

The page these files back ships in the bundle as page/index.html, as committed at
answer-census commit cce4c4be946ef69e77538c6c2d918d432b315cda. If the published page is ever edited, the two differ.

Contents
--------

LICENSE                                 Apache License 2.0, for the code.
LICENSE-DATA                            CC BY 4.0, for everything else.
manifest.txt                            This file.
page/index.html                         The edition page this bundle backs, as built from.
pack/dubai-02-v2.yaml                   The pack all 2,400 wave 2 runs used.
pack/dubai-02-v2.lock                   Its lock: file SHA-256, pack hash, frozen_at.
pack/provenance.json                    The decision and pack commits and the remote's push
                                        times for both, recorded before any wave 2 request.
timestamps.txt                          Collection start and end, the commit and push time of
                                        17e8485, and the first extraction run.
rules/wave2-decision.md                 The pre-registered procedure and threshold, as at
                                        17e8485 and as at release.
rules/committed-rules.md                The extraction and resolution rules, R1 to R7 with
                                        their amendments and the disclosure.
rules/committed-rules-r5.md             The number-only resolution rule, committed for this
                                        collection and not implemented in this edition.
rules/limitations.md                    The limitations section, as published.
review/round-1-findings.md              The four premerge rounds on the rule implementation,
review/round-2-findings.md              each stating how it was run.
review/round-3-findings.md
review/round-4-findings.md
wave2/runs.csv                          One row per run: prompt, surface, run index, model
                                        identifier as reported, payload_sha256.
wave2/attempts.csv                      Every paid request, including any that failed.
wave2/mentions.csv                      Every extracted mention, redacted, with channel and
                                        resolution path (card_prefix flagged).
wave2/cells/                            The per-cell tables the headline and the firm tables
                                        are computed from. Files: cell_firms.csv, drift_check.csv, q1_surface_overlap-2026-09-23.csv, q1_surface_overlap.csv, unresolved_for_review.csv.
wave2/names/engine_forms.csv            Per credited firm, each title the engines wrote for it,
                                        with the runs in which that title credited it.
wave2/names/engine_names.csv            Per firm, the form the engines most often wrote, which
                                        the page shows beside the register name.
wave1/                                  The same tables for wave 1, re-extracted under the same
                                        rules for the repeat measure.
reports/                                The output each page figure is read from, as run.
recompute/                              The independent reimplementation's result and its
                                        account of every difference.

Runs from this bundle
  analysis/dubai-02-wave2/headline.py   The headline, on the Python standard library alone:
                                        python3 analysis/dubai-02-wave2/headline.py
                                          wave2/cells/q1_surface_overlap.csv
                                        returns 104 of 115 pairs below the mean (90.4%),
                                        median ratio 0.652, REPLICATES. On wave1/cells/ it
                                        returns 37 of 42 (88.1%), median ratio 0.676.
  analysis/dubai-02-wave2/engine_names.py
                                        The page's engine forms, on the standard library:
                                        python3 analysis/dubai-02-wave2/engine_names.py
                                          wave2/names/engine_forms.csv
                                        writes wave2/names/engine_names.csv.

Ships for inspection, not for running
  analysis/                             Every other script: gate.py, which writes the cell
                                        tables; recompute.py, the independent
                                        reimplementation; the scripts behind the other
                                        figures; and the resolver source they import. They
                                        read the ledger databases, the DLD register and the
                                        raw answers, none of which ship (see "Deliberately
                                        not included"), so they show how each figure was
                                        computed and cannot be rerun from this bundle.
registry/brand_aliases.csv              Hand-researched brand to ORN aliases the resolver reads.
registry/name_classes.csv               Hand classes and owner rulings on strings.

Payload hashes
--------------

runs.csv carries the SHA-256 of every stored response, wave 1 and wave 2. Anyone given a
response can check it is the one measured. The responses are sent privately on request.

File hashes
-----------

SHA-256 and size in bytes of every file in the bundle except this manifest, sorted by path.

c95bae1d1ce0235ecccd3560b772ec1efb97f348a79f0fbe0a634f0c2ccefe2c       11358  LICENSE
b87947c663a62bdb78ad356e8f55833bac91473804d0edce15788a54b5dd1f07       19435  LICENSE-DATA
f3c7f1ec7e6e59c164b4d1a1fb1d89d14df715c3199d8f4e51c99b423d2fa2e2       12853  analysis/dubai-02-recompute/recompute.py
9013fc464f762f68b75d5afc89dc7ce9f3de78cd3de36ae9d73c37ecd47c82ee       70196  analysis/dubai-02-w0/gate.py
4afd37f1b1251a3237d1ee399264a0d92605517d726112c530b8131c40e7f50d        3586  analysis/dubai-02-wave2/before_after.py
e9286e36f210e96faf584a2c11c1c548a7bf897c065508b708e205736b651c9d        2529  analysis/dubai-02-wave2/card_rates.py
69aa655ce4cbafcd69047ed7f67a30764c5e94f6d0efecec146b756ee289d711        1518  analysis/dubai-02-wave2/combine_ledgers.py
e464415f5b76246b19b7d6c2539bec00041b1d86a0e2c1cfe6390918052c6b11        3686  analysis/dubai-02-wave2/containment_bound.py
f83c7c2253c828b21934ca66e64bb8a9887e9887da75c633b1fe9628f0991458        2250  analysis/dubai-02-wave2/dormant_resolved.py
5ec8c955768ac2b849761c5e13c4cc753c9fd97cf4393adfd8dd857b2e57ddac        3130  analysis/dubai-02-wave2/duplicate_sensitivity.py
0ed3a8c365bce1abfe59f4d22f5a82b12c1337b4b4a0d400aa7799c48c52c196        3268  analysis/dubai-02-wave2/engine_names.py
4757c2148a2f8d219aaa479272f801235ee31a08761295a91ef02897df18278f        2605  analysis/dubai-02-wave2/firm_tables.py
4b4cf91455073babf687a5246ff06db23ede0abc2b6ce352a56d4fff834bf8eb        3428  analysis/dubai-02-wave2/headline.py
687f21be73f835e68f59f367d7cfad2c33dc6d92d289575c61446003386f2bf5        2950  analysis/dubai-02-wave2/miss_scan_bound.py
99c1bd8d68b5dfbbbeaa7afc6c98feeca567139e4da57cea421060e497e0c05a        2372  analysis/dubai-02-wave2/own_site_probe.py
d99368c39f9f6162fb4aff3e08fbe3b5110083769a5c521fea635926848e5cfa        5897  analysis/dubai-02-wave2/permutation_null.py
922efe7fd0f164a7d9422b32186d3c2889e23eb1e3ea8d81480d763623eee167        7244  analysis/dubai-02-wave2/person_review_context.py
98cbcedf3d0170ec21fee723d3e138a12c1adc13e06eced467df18c42df0bbdd        6852  analysis/dubai-02-wave2/provenance.py
c96d3c46e1c79cd4b0748e7de903bf60f3704be8d7a7ddbb883ce1a792c605fc        4594  analysis/dubai-02-wave2/r2_sensitivity.py
83cb3d54694ae4653c99cf415f7968e0df512a011f534aafb890f2e371d19613        3120  analysis/dubai-02-wave2/resolution_support_counts.py
7afd37b111389c0932e3ac9bb43b7f22be335755da16046c4b5cd2fa56e463a7        2781  analysis/dubai-02-wave2/run_counts.py
fbb0943850a920947c24720f051bf07379e5569ff3ec90cc27db49c97c8fc758        2221  analysis/dubai-02-wave2/stability_blocks.py
128f11772437e2bbaf823593213bc54acdc858065d890e1b71f3aa53b2d6268c        2116  analysis/dubai-02-wave2/unresolved_counts.py
8517ca20afa578fe3012f4a4c85b132ffe99a8d65d073caa05b80ba3c46ec531        6752  analysis/dubai-02-wave2/variant_diversity.py
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855           0  analysis/packages/brokerage-census/brokerage_census/__init__.py
256c66f9d71b32c14f64f71aab25a89d702779c8563b65c7f4a26354f3b92c91         785  analysis/packages/brokerage-census/brokerage_census/generic.py
32a23366f3355a035d6caaa7f8a628ed81d6edda253e3cac4ab9ac542d9f419a        2653  analysis/packages/brokerage-census/brokerage_census/listing.py
bae7e9433c9d78c7e78346bf1d4253dc16460763f72f1ee1b8c3b0763043ce0c        6166  analysis/packages/brokerage-census/brokerage_census/register.py
b73d7ec4750579049625e3f1fa6e50044590997e0483636d92ff6e26cae750b2       20771  analysis/packages/brokerage-census/brokerage_census/resolution.py
c2babb64f7758ff0f60e923e3e2815e60c81693e0a1c9da90f8dea7af07e398e        1592  analysis/packages/brokerage-census/brokerage_census/suffixes.py
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855           0  analysis/packages/geocensus/geocensus/__init__.py
1919352bd6a029540a55689873a0fdbd43b63adffd55e81476265ac2678e5478        5965  analysis/packages/geocensus/geocensus/clients/dataforseo.py
28815ceb44f9a372922ccf55be43c1afd09c7d1fa70cd5f28cb520497d3f6324       15712  analysis/packages/geocensus/geocensus/clients/engines.py
ff681d837b7d8dea91569d4659b8179578b7893f0970558c145b4e59eb8eec51        1459  analysis/packages/geocensus/geocensus/collect/budget.py
04887135be15b69ff1e5a36fe1101c0b74453429453ee5942e0532e9590e5f4e       14179  analysis/packages/geocensus/geocensus/collect/collect.py
130effc3728f98c1efeb147e8e52a943d05002da2336abd900afdfc97d4b79e6       21051  analysis/packages/geocensus/geocensus/collect/ledger.py
6d4549c2e125ddaa9769fd55f1eedd0aadc5793b90130e2b5064c2b3371ce45e        2727  analysis/packages/geocensus/geocensus/collect/lock.py
72abe022c176aa45b5a781a0331d72a57959c24c06f43f034225c9dcd89283b1       17539  analysis/packages/geocensus/geocensus/collect/pack.py
8df1771029174a545074540fbe7a14094c0cabac7b7748990290ce3256c86ce3        4185  analysis/packages/geocensus/geocensus/collect/store.py
7bc99613deaa655b625f1c98b6c8d79907134c8f6d307d4a4de0849bc403ef43       23223  analysis/packages/geocensus/geocensus/extract/mentions.py
25bb2f86584fd500b6f249c62e3131991f791ea0df9f95310ace88c8021d8b17        2164  analysis/packages/geocensus/geocensus/text/normalize.py
c116faac764ebdff1044cc06528d289523775595994200d2ae2e2527b9b77bca       56621  analysis/packages/geocensus/geocensus/text/person_names.py
4585f9678b47fc5324f1a51396fbfb150077af674be625c5ecb18474919c162a        2170  analysis/packages/geocensus/geocensus/text/redact.py
766a0503f48de362d00ea847a240f3872b96f94366c9eb5faebebf54c46e0dd1         238  pack/dubai-02-v2.lock
56584ccca803b35b85073c8eacc2d999ec10b418235fa087f1b6d844c7849b5b        8560  pack/dubai-02-v2.yaml
fae24b041fc6126efa75cafbbd5062fa3dfef779a816ea66ad348201ca053265        1003  pack/provenance.json
f940df41953b9de4f74c584429f526fd6535d17ca5f8d3474cad0b90e15ddfab      228842  page/index.html
4be43e6c417840085d7c49bfc0f21ad6c2a0f3c986aafc5cbb02f9713f3c44c5        5202  recompute/README.md
131b53559b269e03ca822df662fc360e01dd6cfcfe9cfc11299bf2ad58fc7bc6       11523  recompute/result.txt
d9ecc113095fd6ad86e6a57b3a90a6c458c23ee676ec6e76c3e8cbfa9da9d36b        5942  registry/brand_aliases.csv
27b08434352a43b52ae054d26f7d52805b8e62a6863d97497ed809ca5ca6deeb       24433  registry/name_classes.csv
1e416048abed33c719c468e62094562526490a01b1891e0690bdacdb4e5bcb2c         820  reports/before-after.txt
fca80479dc188991779f3367c56ff3274895f240f370860ec07236fbe3129870        2718  reports/card-rates.txt
86f4823834819b2885c4276cda4b93d4ade58d42a52ed429d767f86e3a57e2eb         669  reports/containment-bound.txt
76dfd1c1e1517511cefef8f4e2dcd5894f3c5b09474a655cf555175df780bec2         854  reports/duplicate-sensitivity.txt
112fd6966b5d8285163b038634ef9d6bbb457fc85e04bf0a30d8d3ab01549fa8       33318  reports/firm-tables.md
189245b8fe545a2eff1d4517d3d55fad9175cb12491248383a863567c105e808        3316  reports/headline-rerun-2026-10-06.txt
29642d44660f65e593bca72c022098508a9b84987769f611ec1cb359ef1d6fe6        1531  reports/headline-run-extended.txt
b083a2bb0a678d1dbde29d1095899e04851da4cdf072651cf27e382bb3633d51        1153  reports/headline-run-preregistered.txt
ab40cd2aacca5fcf05c49b6a0044c45ff0a6e2d6f43ba6eabc46af6e9d29ba43         644  reports/own-site-probe.txt
bd54ec7085b49ab336c148cbe697e2d0a10ab9e478258459864f8776a60d09c8         453  reports/permutation-wave2.txt
b3e75d92677ce566f4c7b356ea80e597e44fe185e1cdc6a21b2a9ba31bb8d407        1325  reports/provenance-wave1.txt
162fd9cf627a20c518b5f5f4473671605dd31d3fbfe1c8d1136f5284719b77dc        1182  reports/provenance-wave2.txt
c3f9f7390294bba8b05ddcbe9b60b9a064306f60154048dc7ce5a67565d2aa4a        1408  reports/r2-sensitivity.txt
a2b4dac0a3262affd39b1fa9fad2616cd24a6bc9dc66d5d5fdfa85dfc0efec35         439  reports/resolution-support-counts-wave2.txt
f057f9144ccd770154f8d2060c0b784dd51ec5c342429721dad5b1135129a166         536  reports/run-counts.txt
d7e9b914d109419a67ef5c2952004768c577316ee168112fae6bebaf51bac3eb         246  reports/stability-r1.txt
5e626d15f987e767bf4af792662ba712dc6b319664e1d56b89e0aff3d4b12499         475  reports/unresolved-counts.txt
538f90400d7c5354eeb2bfad0097793fc7bf73d1b67a42ff35182cc84a480b09         808  reports/variant-diversity-wave1.txt
049c157c63bb2c4ef0794c68d2133c9cd7169029699ff99bcfe96d009fe66645         809  reports/variant-diversity-wave2.txt
6142ff77c58e830c4551877551cda651c91f80e2d6f0a828c0becdd19d9cb526        1296  reports/wave1-rerun.txt
289428cd249bc104ecb47ebdb3514550c704c8877c99eeef3d91d49ed1345e71        5390  review/round-1-findings.md
c0f2384caa7cdc056474250b6cc49df1e7d14e54b22d5fed810320a20bd893d1        5950  review/round-2-findings.md
57fe5642b4ae648bbb8590c15c0d2d6c5058b8f4a4ac8cd6d23514d285dd6f0d        4588  review/round-3-findings.md
6fb90450828c6a728fabc82227ff54b261c7cf3b94cc5ca7a9192c0d464f41ee        3211  review/round-4-findings.md
8faac4b113875e18feee6af83bb340f70f308a89cea2b337e9d085ca9391efb7        2531  rules/committed-rules-r5.md
c3c94ca634ef03ae5a91b379cc604eae053bb6ac991d25239de200a34abb6875       35814  rules/committed-rules.md
6192ecd1c64f1b06ad4dd2dca3186d371976f9c98a8fb36dc9eee3e1a01e27a6       12253  rules/limitations.md
2efed6878da3cc17e81d88492b9484eb524f03338399c012378d15f3cc9f307b       10565  rules/wave2-decision.md
6cf71fcbd25fc2314b3f71f7e07646ec22aa066bac73b68358747498bcbcddae        2565  timestamps.txt
3124cc98cbe64b2a8b4638b272dc229327b9c4ca229087274e85b4c60a3c00e3      462753  wave1/attempts.csv
e1889b0e4d80f1ae00f0dc60e8530731c8fc545a2ccee05f75ff775b5b78773f      338378  wave1/cells/cell_firms.csv
d9e45ad277de99b38a882f7a2007b8076747e9cb43680d0136867b61f8cdf3ef        1196  wave1/cells/q1_surface_overlap.csv
d36c9945d350f28f95c7f12ec4b6ec2103873f4d22421c11589b27fd40fe354e      203091  wave1/cells/unresolved_for_review.csv
dfb1de00fc0cebeebb506bf8d91c899c8e804b43030e309735e2b392725d7a0f    14276805  wave1/mentions.csv
be84da651e3fd0e1ad6aae61e971557c6433d48597112e345f534a9281fed687      930685  wave1/runs.csv
473cf5ec65f7d8eedfbd285e0e224c44317824ce018cafad176eefcf267fa785      782196  wave2/attempts.csv
d46aca7cbd5bb774564fbef22ae1ae88e217f14b520a4bfb4353e3f5e440c3a4      575549  wave2/cells/cell_firms.csv
709b8e23141bd979f692f87689d61f6bcfe8fbd077406ed74ae66ef1a2ce8989        3316  wave2/cells/drift_check.csv
7294e892c0f399c3957608439706a717e78962a25c89316f540643dafb68c710        2901  wave2/cells/q1_surface_overlap-2026-09-23.csv
dc874a17b21d2c417a56ccc050b7b4179218bd1db392146a8515b798fc0e0205        2908  wave2/cells/q1_surface_overlap.csv
80c0673a1181f42d8a398cda51d0ead4bb341cd7b865eeec354584209661051c      308406  wave2/cells/unresolved_for_review.csv
99c9ca0550edc3ed5cd88a9bc03e60a2cf6fc89a7475037cddb4ad4041b3b343    19548295  wave2/mentions.csv
8cbde66b44196b69c505bc9747db65ef82f6b1cf662b607a078dab7448bdab41      339782  wave2/names/engine_forms.csv
e30c2bb894be0ee5d8c10f809f50f0adda05667b5651aa24c8b02c371e5c42e3       11354  wave2/names/engine_names.csv
e14b15db2cc19159255d9215a8ab12e9bcf96d8c8b438182ca854606d340ddcf     1535608  wave2/runs.csv

Deliberately not included
-------------------------

1. The raw responses.
   They contain individuals' names, and the detector that finds names has known limits: a
   single-token name, and a name glued to the next word, are invisible to it. A name it cannot
   see in raw text is published if raw text ships, and never published if it does not. The
   payload hashes above stand in for the responses. Every file that does ship passed the
   repository's phone and name scan before release.

2. 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
   Dubai Pulse updates the dataset, so a later download will most likely match neither hash.

3. Internal working documents.
   Working notes from the run contain claims later revised. Their tables ship as CSV where a
   published figure rests on them; their prose does not.
