NuminorBeta

Which China A-share datasets are point-in-time, and which only look like it

Short answer: a dataset is point-in-time only if every row tells you two separate things, the fiscal period the figure covers and the date that figure became public. Plenty of China datasets carry the first and not the second. A row dated only by its period-end reads as point-in-time to any backtest, and is not, because the figure was not knowable on the date you just stamped it with.

The two dates, and why one is not enough

The fiscal period-end says what the number is about. The disclosure date says when anyone outside the company could have known it. For A-share filings those two dates sit roughly one to four months apart.

ChinaScope C2C Disclosed is the clearest case. Its trade-relationship tables carry rpt, the fiscal period-end the figures cover, and no separate public-filing date, because the filing date is not part of what companies disclose there. Dating a row by rpt alone treats it as knowable at period-end, roughly one to four months before it actually was. (Data cut 2026-05-16.)

The dataset's own profile says so plainly: use it for relationship structure and magnitudes rather than as a point-in-time series.

Lagging the data does not fix it

The common workaround is to lag everything by a quarter and call it safe. It is half a fix, and the half it misses is the one that matters.

Lagging closes the timing gap. It does not close the restatement gap. In C2C Disclosed the figures are the currently reported ones, so when a filer restates a prior period the restated value replaces the original. A restated figure carries information that did not exist on the original filing date, however far you lag it. (ChinaScope C2C Disclosed, data cut 2026-05-16.)

Which datasets carry both dates

datasetwhat it carriesas of
Fundamentalsreport_date and publish_date on every filing2026-04-14
Financial Notesreport_end_date and publish_date on every row2026-04-09
SAMreport_date and publish_date on every record2026-02-26
RFP-Bidspublic award date result_date; monthly graphs stamped by statistics-month2026-05-29
SmarTagnewsts, the moment the article was captured and tagged; append-only2026-09-16
Affiliaterpt on every row; publish_date on two tables only2026-05-16
C2C Disclosedrpt only, no filing date2026-05-16

Affiliate deserves its own line. Every row is dated by its fiscal period-end, and the two top-10 shareholder tables additionally carry publish_date, the date the shareholding was disclosed. For those two tables you have both the period the data describes and the date it became public, which the profile calls the tightest control in the dataset. The rest of Affiliate does not have it. (Data cut 2026-05-16.)

The cutoff rule, and the restatement rule

For a no-look-ahead view, filter publish_date <= D. Where a line was restated, the row you want is the one with the greatest publish_date at or before D. That is the figure that was known on D, as opposed to the figure that is correct today. (ChinaScope Fundamentals, data cut 2026-04-14.)

Three ways to get it subtly wrong

Mistaking the ingest stamp for an as-of. In C2C (PIT), ann_collection_time is not an as-of date. The profile calls this the most common way to get a point-in-time read subtly wrong on that dataset. The same warning appears on Relationships (PIT). (Data cuts 2026-08-22 and 2026-08-23.)

Mistaking the feed's reproducibility axis for publication. In Fundamentals, as_of is the date Numinor learned a version, used to reproduce exactly what the feed served on a past run. It is not the same as "public by date D". A filing captured by the feed but stamped with a later stated disclosure date is still returned on the reproducibility axis, carrying its own publish_date for you to filter on. Two axes, two questions, and they answer different ones. (Data cut 2026-04-14.)

Grouping a bitemporal panel without an as-of filter. In C2C (PIT) one period appears many times on purpose, because that is what a bitemporal panel is. Grouping without an as-of filter double-counts. Filter publish_date <= as_of first, then take the latest row per key. (Data cut 2026-08-22.)

Restatement rates are not uniform inside one dataset

Relationships (PIT) carries a 5% to 7% restatement rate on subsidiaries and a 70% to 76% rate on equity investments. Same dataset, same delivery, an order of magnitude apart. Do not assume one cadence across tables, and do not size your rebuild window from the calmest table in the set. (Data cut 2026-08-23.)

Identity has to be point-in-time too

A no-look-ahead price series joined to today's company master is still look-ahead, because the master knows which companies survived.

The ChinaScope Reference master is served as a daily bitemporal panel, so you can reconstruct the company and security universe as it was known on any past date. Delisted securities are retained with their list_edt, and a delisting only removes a security from as-of views on or after its delisting date. Earlier as-of views still contain it, so you never have to source a separate dead-tickers file. (As described in the July 2026 profile.)

In SAM, a fact row is served only when its period row carries a valid, non-look-ahead publish date and is flagged is_valid = True. Respect is_valid when filtering to current, admissible rows. (Data cut 2026-02-26.)

Datasets this page draws on

Related questions