{
  "schema_version": 1,
  "generated_at": "2026-09-29T19:50:17",
  "site": "https://infogap.store",
  "note": "Every entry is generated from what actually exists on disk. If a number is not on disk, it is not in here.",
  "license": {
    "data": "CC BY-NC 4.0",
    "url": "https://creativecommons.org/licenses/by-nc/4.0/",
    "attribution_required": true,
    "commercial_use": "requires written permission",
    "attribution_text": "InfoGap (infogap.store) — link to the source page you used."
  },
  "linking_rules": {
    "concept": [
      ">=1 data page",
      ">=1 related concept page"
    ],
    "data": [
      "-> method page",
      "-> hub"
    ],
    "method": [
      "-> the data page it scores",
      "-> hub"
    ],
    "hub": [
      "-> every asset"
    ]
  },
  "publish_pipeline": [
    "1. write a spec JSON (kind, title, numbers with sources, links)",
    "2. python3 /opt/geo/publish.py --spec <spec.json>   (renders from /opt/geo/templates/)",
    "3. registry.json + sitemap.xml updated automatically",
    "4. IndexNow pushed for the new URL",
    "5. run logged to /opt/geo/out/publish_log.jsonl"
  ],
  "assets": [
    {
      "slug": "china-city-places",
      "title": "China city place datasets",
      "type": "dataset",
      "lang": "en",
      "definition": "One dataset per Chinese city or region. Each record is a place with its Chinese name, an English name, a rating and the district it sits in.",
      "data_source": "Our indicators are computed by InfoGap. Underlying geographic facts are drawn from publicly available sources; place names are normalised and translated by InfoGap.",
      "scale": "386 city datasets · 13,204 place records",
      "updated": "2026-09-25",
      "page_url": "https://infogap.store/china/",
      "dataset_url": "https://infogap.store/data/registry.json",
      "license": "CC BY-NC 4.0",
      "tier": 1,
      "status": "published",
      "links": {
        "method": "https://infogap.store/data/#methods",
        "hub": "https://infogap.store/data/"
      },
      "license_url": "https://creativecommons.org/licenses/by-nc/4.0/"
    },
    {
      "slug": "slice-matrix",
      "title": "Slice matrix: 18 decision slices, 6 language editions, 114 pages",
      "type": "dataset",
      "lang": "en",
      "definition": "One slice is one specification with a stated input, a stated output and a route to follow; one page is one specification rendered in one language.",
      "data_source": "Our own slice specifications, rendered by our own generator; the public registry that the pages are generated from is served with them. No third-party content is included.",
      "scale": "18 live slice specifications; 6 language editions per slice; 114 rendered pages; 2026-09-20 date the matrix was last generated",
      "updated": "2026-09-26",
      "page_url": "https://infogap.store/data/p/slice-matrix/",
      "dataset_url": "https://infogap.store/data/registry.json",
      "license": "CC BY-NC 4.0",
      "tier": 1,
      "status": "published",
      "links": {
        "data": [
          "https://infogap.store/slices/"
        ],
        "method": [
          "https://infogap.store/method/how-to-check-our-numbers/"
        ],
        "concept": []
      },
      "license_url": "https://creativecommons.org/licenses/by-nc/4.0/"
    },
    {
      "slug": "algo-explainers",
      "title": "Algorithm explainers",
      "type": "method",
      "lang": "en",
      "definition": "One page per algorithm: what it measures, what goes in, what comes out, and where it is wrong.",
      "data_source": "InfoGap algorithm layer.",
      "scale": "19 algorithm pages",
      "updated": "2026-09-22",
      "page_url": "https://infogap.store/algo/",
      "dataset_url": "https://infogap.store/data/registry.json",
      "license": "CC BY-NC 4.0",
      "tier": 2,
      "status": "published",
      "links": {
        "hub": "https://infogap.store/data/"
      },
      "license_url": "https://creativecommons.org/licenses/by-nc/4.0/"
    },
    {
      "slug": "life-chain",
      "title": "Life-chain explorer",
      "type": "tool",
      "lang": "en",
      "definition": "See the page itself — the definition is stated on the page.",
      "data_source": "InfoGap.",
      "scale": "1 entry point",
      "updated": "2026-09-22",
      "page_url": "https://infogap.store/life-chain/",
      "dataset_url": "https://infogap.store/data/registry.json",
      "license": "CC BY-NC 4.0",
      "tier": 2,
      "status": "published",
      "links": {
        "hub": "https://infogap.store/data/"
      },
      "license_url": "https://creativecommons.org/licenses/by-nc/4.0/"
    },
    {
      "slug": "lighting",
      "title": "Lighting / space design",
      "type": "tool",
      "lang": "en",
      "definition": "See the page itself — the definition is stated on the page.",
      "data_source": "InfoGap.",
      "scale": "1 entry point",
      "updated": "2026-09-22",
      "page_url": "https://infogap.store/lighting/",
      "dataset_url": "https://infogap.store/data/registry.json",
      "license": "CC BY-NC 4.0",
      "tier": 3,
      "status": "published",
      "links": {
        "hub": "https://infogap.store/data/"
      },
      "license_url": "https://creativecommons.org/licenses/by-nc/4.0/"
    },
    {
      "slug": "aime-number-theory",
      "title": "AIME number theory set",
      "type": "dataset",
      "lang": "en",
      "definition": "See the page itself — the definition is stated on the page.",
      "data_source": "InfoGap.",
      "scale": "1 entry point",
      "updated": "2026-09-22",
      "page_url": "https://infogap.store/aime/number-theory/",
      "dataset_url": "https://infogap.store/data/registry.json",
      "license": "CC BY-NC 4.0",
      "tier": 3,
      "status": "published",
      "links": {
        "hub": "https://infogap.store/data/"
      },
      "license_url": "https://creativecommons.org/licenses/by-nc/4.0/"
    },
    {
      "slug": "chinese",
      "title": "Chinese language pack",
      "type": "tool",
      "lang": "en",
      "definition": "See the page itself — the definition is stated on the page.",
      "data_source": "InfoGap.",
      "scale": "1 entry point",
      "updated": "2026-09-22",
      "page_url": "https://infogap.store/chinese/",
      "dataset_url": "https://infogap.store/data/registry.json",
      "license": "CC BY-NC 4.0",
      "tier": 3,
      "status": "published",
      "links": {
        "hub": "https://infogap.store/data/"
      },
      "license_url": "https://creativecommons.org/licenses/by-nc/4.0/"
    },
    {
      "slug": "ai-crawler-hits",
      "title": "AI crawler hits on our own site, 12-25 September 2026",
      "type": "dataset",
      "lang": "en",
      "definition": "One hit is one request line in our nginx access log whose user agent matches a known AI answer-engine crawler. Hits are counted whether or not the URL existed.",
      "data_source": "Our own nginx combined access logs on the infogap.store server, rotated files included, counted by our own script. No third-party analytics are involved, and the dataset is published with the same definition.",
      "scale": "103,222 request lines parsed; 1,722 hits from AI crawlers; 1,047 AI crawler hits answered with 404; 673 AI crawler hits answered with a real page; 10 AI crawler user agents seen in the window",
      "updated": "2026-09-26",
      "page_url": "https://infogap.store/data/p/ai-crawler-hits/",
      "dataset_url": "https://infogap.store/data/registry.json",
      "license": "CC BY-NC 4.0",
      "tier": 1,
      "status": "published",
      "links": {
        "data": [
          "https://infogap.store/data/ai_crawlers.json"
        ],
        "method": [
          "https://infogap.store/method/how-to-check-our-numbers/"
        ],
        "concept": []
      },
      "license_url": "https://creativecommons.org/licenses/by-nc/4.0/"
    },
    {
      "slug": "cn-geo-pages",
      "title": "GEO answer pages (Chinese)",
      "type": "tool",
      "lang": "zh",
      "definition": "Chinese-first asset on shengminglian.com.cn. Not yet published in English.",
      "data_source": "InfoGap (domestic site).",
      "scale": "see site",
      "updated": "2026-09-25",
      "page_url": "https://shengminglian.com.cn/geo/",
      "dataset_url": "https://infogap.store/data/registry.json",
      "license": "All rights reserved (pending English edition)",
      "tier": 1,
      "status": "needs-english",
      "links": {
        "hub": "https://infogap.store/data/"
      }
    },
    {
      "slug": "cn-hotlist",
      "title": "Hot-list evaluation board (Chinese)",
      "type": "dataset",
      "lang": "zh",
      "definition": "Chinese-first asset on shengminglian.com.cn. Not yet published in English.",
      "data_source": "InfoGap (domestic site).",
      "scale": "see site",
      "updated": "2026-09-25",
      "page_url": "https://shengminglian.com.cn/hotlist/",
      "dataset_url": "https://infogap.store/data/registry.json",
      "license": "All rights reserved (pending English edition)",
      "tier": 1,
      "status": "needs-english",
      "links": {
        "hub": "https://infogap.store/data/"
      }
    },
    {
      "slug": "cn-intel",
      "title": "Daily intel brief (Chinese)",
      "type": "tool",
      "lang": "zh",
      "definition": "Chinese-first asset on shengminglian.com.cn. Not yet published in English.",
      "data_source": "InfoGap (domestic site).",
      "scale": "see site",
      "updated": "2026-09-25",
      "page_url": "https://shengminglian.com.cn/intel/",
      "dataset_url": "https://infogap.store/data/registry.json",
      "license": "All rights reserved (pending English edition)",
      "tier": 2,
      "status": "needs-english",
      "links": {
        "hub": "https://infogap.store/data/"
      }
    },
    {
      "slug": "cn-shops",
      "title": "Industry assistant pages (Chinese)",
      "type": "tool",
      "lang": "zh",
      "definition": "Chinese-first asset on shengminglian.com.cn. Not yet published in English.",
      "data_source": "InfoGap (domestic site).",
      "scale": "see site",
      "updated": "2026-09-25",
      "page_url": "https://shengminglian.com.cn/shops/",
      "dataset_url": "https://infogap.store/data/registry.json",
      "license": "All rights reserved (pending English edition)",
      "tier": 2,
      "status": "needs-english",
      "links": {
        "hub": "https://infogap.store/data/"
      }
    },
    {
      "slug": "cn-algo",
      "title": "Algorithm gallery (Chinese)",
      "type": "tool",
      "lang": "zh",
      "definition": "Chinese-first asset on shengminglian.com.cn. Not yet published in English.",
      "data_source": "InfoGap (domestic site).",
      "scale": "see site",
      "updated": "2026-09-25",
      "page_url": "https://shengminglian.com.cn/algo/",
      "dataset_url": "https://infogap.store/data/registry.json",
      "license": "All rights reserved (pending English edition)",
      "tier": 2,
      "status": "needs-english",
      "links": {
        "hub": "https://infogap.store/data/"
      }
    },
    {
      "slug": "cn-trend",
      "title": "Trend evaluation (Chinese)",
      "type": "tool",
      "lang": "zh",
      "definition": "Chinese-first asset on shengminglian.com.cn. Not yet published in English.",
      "data_source": "InfoGap (domestic site).",
      "scale": "see site",
      "updated": "2026-09-25",
      "page_url": "https://shengminglian.com.cn/trend-eval/",
      "dataset_url": "https://infogap.store/data/registry.json",
      "license": "All rights reserved (pending English edition)",
      "tier": 3,
      "status": "needs-english",
      "links": {
        "hub": "https://infogap.store/data/"
      }
    },
    {
      "slug": "how-we-build-a-city-dataset",
      "title": "How we build a city dataset",
      "type": "method",
      "lang": "en",
      "definition": "One record = one place we hold: a Chinese name, an English name, a rating and the district it sits in.",
      "data_source": "Our indicators are computed by InfoGap. Underlying geographic facts are drawn from publicly available sources; place names are normalised and translated by InfoGap.",
      "scale": "13,204 place records; 386 city and region datasets; 384 pages that print their own record count",
      "updated": "2026-09-25",
      "page_url": "https://infogap.store/method/how-we-build-a-city-dataset/",
      "dataset_url": "https://infogap.store/data/registry.json",
      "license": "CC BY-NC 4.0",
      "tier": 1,
      "status": "published",
      "links": {
        "data": [
          "https://infogap.store/china/"
        ],
        "method": [],
        "concept": []
      },
      "license_url": "https://creativecommons.org/licenses/by-nc/4.0/"
    },
    {
      "slug": "how-to-check-our-numbers",
      "title": "How to check any number we publish",
      "type": "method",
      "lang": "en",
      "definition": "A figure is publishable on this site when someone who does not work here can recompute it from a file we serve.",
      "data_source": "Our own published files: the asset registry, the sitemap, and the per-dataset pages and JSON under /china/. Every figure on this page can be recomputed from the files we serve.",
      "scale": "17 assets in the machine-readable registry; 531 URLs in our sitemap; 1 published retraction (388 became 386)",
      "updated": "2026-09-26",
      "page_url": "https://infogap.store/method/how-to-check-our-numbers/",
      "dataset_url": "https://infogap.store/data/registry.json",
      "license": "CC BY-NC 4.0",
      "tier": 1,
      "status": "published",
      "links": {
        "data": [
          "https://infogap.store/china/",
          "https://infogap.store/data/p/ai-crawler-hits/",
          "https://infogap.store/data/p/china-city-place-datasets/",
          "https://infogap.store/data/p/slice-matrix/"
        ],
        "method": [
          "https://infogap.store/method/how-we-build-a-city-dataset/"
        ],
        "concept": []
      },
      "license_url": "https://creativecommons.org/licenses/by-nc/4.0/"
    },
    {
      "slug": "china-city-place-datasets",
      "title": "China city place datasets: 386 datasets, 786 files, 13,482 records",
      "type": "dataset",
      "lang": "en",
      "definition": "One record is one place we hold: a name in Chinese and English, a category, a rating, a coordinate and the district it sits in.",
      "data_source": "Our indicators are computed by InfoGap. Underlying geographic facts are drawn from publicly available sources; records are cleaned and translated by us and served as JSON next to each dataset page.",
      "scale": "386 city and region datasets; 786 JSON files served under /china/data/; 13,482 place records in the record files; 13,063 records printed by the dataset pages themselves",
      "updated": "2026-09-26",
      "page_url": "https://infogap.store/data/p/china-city-place-datasets/",
      "dataset_url": "https://infogap.store/data/registry.json",
      "license": "CC BY-NC 4.0",
      "tier": 1,
      "status": "published",
      "links": {
        "data": [
          "https://infogap.store/china/"
        ],
        "method": [
          "https://infogap.store/method/how-we-build-a-city-dataset/"
        ],
        "concept": []
      },
      "license_url": "https://creativecommons.org/licenses/by-nc/4.0/"
    },
    {
      "slug": "city-industry-matrix",
      "title": "China city x industry matrix",
      "type": "dataset",
      "lang": "en",
      "definition": "A 0/1 matrix: one row per Chinese city, one column per industry named in the city table, cell = 1 when that city's own record lists that industry. Six context columns (city slug, Chinese name, population, GDP, opportunity score, data status) precede the industry columns. The long-format file holds only the filled cells, one city/industry pair per row.",
      "data_source": "Derived by InfoGap from central.city_opportunities.industries (city-reported industry lists, ideographic-comma separated). Generated by /opt/internal_board/gen_geo_coverage.py every day at 04:20.",
      "scale": "384 City rows; 63 Industry columns; 1377 Filled city x industry cells; 24192 Possible cells; 5.69% Fill rate",
      "updated": "2026-09-29",
      "page_url": "https://infogap.store/data/p/city-industry-matrix/",
      "dataset_url": "https://infogap.store/data/registry.json",
      "license": "CC BY-NC 4.0",
      "license_url": "https://creativecommons.org/licenses/by-nc/4.0/",
      "citation": "According to InfoGap's city x industry matrix (source: the industry list each city row reports in our own city database; definition: a cell is 1 when that city's record names that industry), 1377 of 24192 possible city x industry cells are filled — 384 cities x 63 industries, a fill rate of 5.69% (as of 2026-09-29).",
      "update_frequency": "daily (regenerated 04:20 Asia/Shanghai)",
      "temporal_coverage": "2026-09-29",
      "downloads": [
        "https://infogap.store/data/dl/city-industry-matrix/city-industry-matrix.csv",
        "https://infogap.store/data/dl/city-industry-matrix/city-industry-matrix.json",
        "https://infogap.store/data/dl/city-industry-matrix/city-industry-combos.csv"
      ],
      "tier": 1,
      "status": "published",
      "links": {
        "method": [
          "https://infogap.store/method/how-to-check-our-numbers/"
        ],
        "data": [
          "https://infogap.store/data/p/china-city-index/",
          "https://infogap.store/data/p/geo-coverage-audit/"
        ]
      }
    },
    {
      "slug": "shelf-scoring",
      "title": "Shelf scoring: 838 tools under one rubric",
      "type": "dataset",
      "lang": "en",
      "definition": "One row per tool evaluated. Score = activity 30 + popularity 25 + usability 30 + compliance 15 = 100. Verdict: shelf at 70 or above, watch from 40 to 69, dropped below 40. Usability credit is only given when at least two independent signals agree. The private evidence blob behind each score is not published; the scores are.",
      "data_source": "InfoGap own shelf collector (github + Hacker News candidates, 2026-09-29 run), rubric shelf-v3. Source file: _data/shelf.json, generated 2026-09-29T08:16:17+08:00.",
      "scale": "838 Tools scored; 260 On the shelf (total >= 70); 542 On watch (40-69); 36 Dropped (< 40); 31.0% Shelf rate",
      "updated": "2026-09-29",
      "page_url": "https://infogap.store/data/p/shelf-scoring/",
      "dataset_url": "https://infogap.store/data/registry.json",
      "license": "CC BY-NC 4.0",
      "license_url": "https://creativecommons.org/licenses/by-nc/4.0/",
      "citation": "According to InfoGap's shelf scoring run (rubric shelf-v3: activity 30 + popularity 25 + usability 30 + compliance 15 = 100; source: our own collector over GitHub and Hacker News candidates), 838 tools were scored and 260 reached the shelf threshold of 70 or above, a shelf rate of 31.0%; 542 went to watch and 36 were dropped (as of 2026-09-29).",
      "update_frequency": "daily",
      "temporal_coverage": "2026-09-29",
      "downloads": [
        "https://infogap.store/data/dl/shelf-scoring/shelf-scoring.csv",
        "https://infogap.store/data/dl/shelf-scoring/shelf-scoring.json"
      ],
      "tier": 1,
      "status": "published",
      "links": {
        "method": [
          "https://infogap.store/method/how-to-check-our-numbers/"
        ],
        "data": [
          "https://infogap.store/data/p/world-country-industry/"
        ]
      }
    },
    {
      "slug": "world-opportunity",
      "title": "World opportunity & direction",
      "type": "dataset",
      "lang": "en",
      "definition": "One row per country x industry combination. Fields: opportunity score (0-100), stage, direction, slope, acceleration, remaining space, a one-line outlook, the multi-line synthesis conclusion, and the two derived series the engine scores (RCA and ECI). Scores, stages, directions and the conclusion are our own computations. Raw trade values are not part of this page or its download.",
      "data_source": "InfoGap curve engine v4.2 (file /opt/curve_engine/app_v4.2.py, sha256 d74c4aa5498d0d740d712e146f76a0b0377b71f1b8cf47f47f906452c378757a) run over our read-only copy of the country x industry series, 2015-2024. Scores, stages, directions and the synthesis conclusion are our computations. The engine file is referenced read-only and is never modified by this pipeline.",
      "scale": "1,000 Country x industry combinations scored; 179 Countries and regions; 87 Industries (HS2 chapters); v4.2 Curve engine version; 235 Combinations in the largest stage (Peak)",
      "updated": "2026-09-29",
      "page_url": "https://infogap.store/data/p/world-opportunity/",
      "dataset_url": "https://infogap.store/data/registry.json",
      "license": "CC BY-NC 4.0",
      "license_url": "https://creativecommons.org/licenses/by-nc/4.0/",
      "citation": "According to InfoGap's world opportunity & direction run (curve engine v4.2, file /opt/curve_engine/app_v4.2.py, sha256 d74c4aa5498d0d74; definition: one opportunity score per country x industry combination, derived from that combination's 2015-2024 series; as of 2026-09-29), 1,000 combinations across 179 countries and 87 industries are scored, the single largest stage is Peak with 235 combinations, and the engine file and its hash are published with the data.",
      "update_frequency": "daily (crontab 30 0 * * * on the host that serves this page)",
      "temporal_coverage": "2015/2024",
      "downloads": [
        "https://infogap.store/data/dl/world-opportunity/world-opportunity.csv",
        "https://infogap.store/data/dl/world-opportunity/world-opportunity.json",
        "https://infogap.store/data/dl/world-opportunity/world-opportunity-series.json"
      ],
      "tier": 1,
      "status": "published",
      "links": {
        "method": [
          "https://infogap.store/method/how-to-check-our-numbers/"
        ],
        "data": [
          "https://infogap.store/data/p/city-industry-matrix/"
        ]
      }
    }
  ]
}
