Methods
The site’s one rule is that a number a page shows is a number a filing or a published series actually states, carried with enough context to be checked. This page explains the vocabulary the pages use to keep that promise. The full design record — every decision with the failure that forced it — lives in the project repository’s DECISIONS.md; this is the reader’s version.
What a T-1 is
Texas requires each crude pipeline and storage operator to file a monthly Form T-1: who it received oil from, who it delivered to, facility by facility, with tank stocks, and a page-one recap stating the month’s totals. The filings arrive as PDFs — a large share of them scans, read by OCR — and the form states no route: a barrel is received and delivered, but never attributed to a segment. The pages inherit both facts. A “route” shown for a filer is its largest placed receipt and delivery points, labelled as exactly that; and every sheet carries a coverage status instead of an assumption that it was read correctly.
Coverage: absent · withheld · nil · complete — and verified
Each section of each filing is scored by reconciling the filer’s own stated page-one total against the sum of the detail lines we read. complete means the two agree; nil means the filer stated zero and the detail agrees; withheld means the detail could not be vouched — the stated total is there but the lines don’t reconcile, or the page could not be read; absent means the section simply isn’t in the filing. Verified is stricter than present: a total we had to derive from our own detail sum checks nothing (it would be the same number twice), so it is reported as unchecked rather than passing.
That distinction is not pedantry. The Gray Oak pipeline’s recap pages were misclassified for five filings, every total was silently derived, and the sheets scored complete, delta 0 while one month reported deliveries at roughly three times the line’s nameplate. Fixing the classifier moved 435 million barrels from complete to withheld — a gain, because the number was always unvouched and is now labelled so. The write-up is in Notes.
Movement verdicts on the Flows board
A month-over-month delta is only called a movement when both months’ detail is present and reconciled against the filer’s own stated totals. Otherwise the verdict is coverage, with the blocking month and reason named — because the line table cannot tell a stopped flow from an unfiled one, and the biggest “change” on a board is otherwise usually an artefact of an absent page. Blocked deltas are shown at full size in their own column, never hidden: the biggest one is often the most important thing on the screen.
Basis order: T-1 > FERC > EIA
Where a quantity could come from more than one source, a filing beats a regulator aggregate and a regulator aggregate beats a national series — the more specific document wins, and a publisher’s silence never overrules a filing that exists. Every published figure carries a basis code naming which source it stands on, so a derived number can never be read as a reported one.
What cannot means
Every artifact family publishes its own limits: a cannot block naming the fields it refuses to state, why, and what would unblock each. Pages render those reasons verbatim at the section that wanted the number — omitted, not filled with zero, because a sentence that says less is true and a “0” is a claim.
Unexplained
A region’s balance adds what it produces, what it imports, its net receipts from other regions and what it draws from stock, then takes away what it refines and what it exports. What is left is shown as Unexplained (the model’s residual). It is reported, never absorbed: a month the arithmetic cannot close is a month the page says so.
Exports basis
Each region’s exports figure in a monthly report says where it came from. Where it is not EIA’s own published figure, the report marks it with an asterisk that links here.
- Reported: EIA published it.
- Closure: EIA did not publish this PADD’s figure, but did publish the national total and every other PADD’s, so this one is the difference.
- PADD 4 assumed zero: PADD 4’s figure is unpublished and closure cannot resolve it, so the balance takes it as zero. In the months where closure can test that, PADD 4’s exports come out within one thousand barrels a day of zero.
- Not published: no figure and no way to derive one. The cell is blank, and so is that region’s Unexplained.
Two cautions we apply to ourselves
District is a hand-off point, not a location. T-1 line rows are sometimes filed under the district where custody changed, not where the facility is — confirmed independently on both sides of the form — so no page infers geography from the district column alone.
A pin is an inference. A facility “location” is a name-match against the Census gazetteer with a stated method and confidence, corroborated where the filing’s own stock page names the same county. Matches that rest on the name alone are drawn hollow, and a name that could not be matched is listed with the refusal rather than guessed.
Coverage of the whole T-1 corpus, filing by filing, is charted at Coverage.
Sources
One page, every publisher. Nothing on this site cites a private feed, a scraped terminal, or a paid dataset: each source below is a public record or a published series, and each is pulled with its own vintage so a revision never overwrites what was previously read. The live per-family coverage and build dates are on Data; this page says who publishes what.
Railroad Commission of Texas — Form T-1 (Monthly Transportation and Storage Report). The heart of the flows layer: each crude pipeline and storage operator’s monthly receipts and deliveries, named counterparty by counterparty, with tank stocks. Filed as PDFs — many of them scans, read by OCR — which is why every figure carries a coverage status rather than being presented as simply “the data”.
Railroad Commission of Texas — Form R-1 (Monthly Report of Refinery). The refinery-side mirror: crude receipts by source, runs, and stocks, per Texas refinery.
Railroad Commission of Texas — P-5 organisation registry and production ledgers (leases, wells, permits, custody). The identity spine that lets a counterparty spelling resolve to a company, and the Texas production detail under the state totals.
FERC — Form 6 and Form 6-Q. Annual and quarterly reports of oil pipeline companies: interstate pipeline throughput, used where a T-1 does not reach.
EIA. The published national and PADD-level series the balance is built from and reconciled against — production, refinery inputs, imports, exports, stocks, inter-PADD movements, and EIA’s own adjustment line, which is the yardstick the residual is measured with.
Canada Energy Regulator (CER). Pipeline throughput, tolls, and crude exports by destination — the Canadian side of the border story.
Alberta Energy Regulator (ST53), Saskatchewan pool data, StatCan, C-NLOPB. Provincial production detail behind the CER picture.
New Mexico OCD. Well-level production for the New Mexico side of the Permian.
US Census gazetteer. The place-name reference that lets a facility spelling be matched to a real Texas place — always recorded as a match with a stated method and confidence, never as a surveyed location.
Basis order, everywhere a number could come from more than one of these: a filing beats a regulator aggregate beats a national series (T-1 > FERC > EIA). The reasoning, with the cases that forced it, is on Basis order above.
Coverage
Filing-by-filing coverage of every T-1 filer: Open the coverage atlas →
Cite
Every entity page carries its own “Cite this page” block with the page’s stable URL and the artifact vintage behind it — that block is the preferred citation, because it names exactly what you read and when it was built. For the site as a whole:
…
Underlying data. Every figure originates in a public record — RRC Forms T-1 and R-1, FERC Forms 6/6-Q, EIA published series, CER and provincial publications — and those primary sources are always the right thing to cite for the filed numbers. What this site adds, and what a citation of it covers, is the reading: OCR, reconciliation, coverage scoring, identity resolution, and the published artifacts that hold the result.
Licence. Not yet chosen — the underlying records are public, and a licence for the derived artifacts will be stated here (and in every entity page’s JSON-LD) once decided. Until then, treat the artifacts as source-available for verification and quotation with attribution, and ask before commercial redistribution.
Contact. Through the project repository.
Limits
What each artifact family says it cannot tell you, as its manifest’s cannot block states it. The list is read from site/artifacts/manifest.json when the site is built.
atlas
- a pin for every named facility — a facility is drawn only where its name could be matched to a real place; the ones that could not be are listed with the reason each was refused, rather than being dropped or guessed at Unblocked by: a better gazetteer match, or the filer writing a name that resolves.
- the history of a facility that was refused a pin — these are listed so the gap is visible, not opened — a place with no location cannot be shown on a map, and a chart of it would imply this project knows where it is Unblocked by: that facility being placed.
- barrels on lines that name no facility at all — they are counted and reported as their own total rather than spread across the places that were named, which would move volume to wherever the paperwork happened to be legible Unblocked by: nothing here — the filing does not say.
balance
- residual — The residual is what the arithmetic did not close, not a measured flow. A large one means a term is missing or mis-stated, and this artifact cannot say which.
- national_terms / residual_incl_national_terms — eia_adjustment and transfers_to_supply have no PADD breakdown. They are carried on P3 as a MEMO column beside an untouched residual, never folded into it: the attribution holds from 2022 and fails by -55..-207 kb/d across 2016-21, so both halves are reported and neither is preferred.
- exports_basis — EIA withholds a PADD's crude exports in ~1,200 month-cells. Where exactly one region is blank the closure recovers it exactly (CLOSURE); where two are, only a combined total is determined and the cells stay NOT_PUBLISHED rather than being split by a share.
- region — US and P1-P5 only. There is no state-level or basin-level balance in this artifact; the basin work lives under network/ and t1/.
basis
- the basis mix under a single year's pipeline weights — one calendar year's filings can be applied to the whole history as a way of inspecting the model rather than reading it; every published figure here uses each year's own filings on its own months Unblocked by: a page that charts the model under a pinned year, which would have to say on the page that the weights are not the month's own.
- the basis of a single named pipeline — these are corridor totals — every pipeline crossing the same boundary is summed before the shares are worked out, so a corridor that is nine-tenths measured says nothing about which of its pipelines the missing tenth belongs to Unblocked by: the per-pipeline map, which already publishes each line's own basis.
- a basis for the national identity's own terms — production, imports, refinery inputs and exports are published figures with no allocation step behind them, so they have no basis mix to show; this bar is about pipeline flows only, and showing the two side by side under one word would suggest they were measured the same way Unblocked by: nothing — the two are different questions and the page keeps them in different panels on purpose.
egress
- utilisation_* (trailing months) — A month is blank because its REFINING band is unavailable, not because egress stopped. The band comes from EIA's PADD 3/4 refinery utilisation applied to nameplate capacity, which publishes later than the state production it is differenced against, so the newest one to three months have a numerator and no denominator to subtract. The rows are kept with the figures they do have rather than truncated, so the blank is visible.
- production (months after the last RRC basin reading) — The Texas basin series carry zero-filled placeholder months past the end of real reporting. Until 2026-10-02 they were published as production 0.0, OBSERVED; the production reader now treats a trailing run of zeros in a basin's PRODUCTION as no reading, so those months are ESTIMATED_RRC_LAG — EIA's Texas total scaled by the basins' trailing share — and say so. That rule is safe only because basin production is never genuinely zero; it is not applied to any series where zero is a real reading.
- stock_change (permian) — Hard 0.0. In-basin stock movement is not measured at basin grain by any public publisher, so the mass balance assumes none. Every barrel of a real build or draw lands in egress instead.
- capacity (denominator changed 2026-10-19) — The Permian denominator was re-sourced on 2026-10-19 and every month's utilisation moved with it. Centurion went from 1,500 to 170 kb/d: 170 is its two long-haul lines to Cushing (Reuters, 2019), and the 1,500 was Energy Transfer's whole gathering-and-transport system. Sunrise II was added at 500 from 2018-11 (Plains 10-K; Plains' Q3-2018 call); it had been missing. Basin went from 450 to 460 (Plains FY2016 10-K, the last figure published), and Gray Oak now steps 900 -> 980 (April 2025) -> 1,020 (April 2026) instead of reading 1,020 throughout. Net, the denominator is 820-1,320 kb/d smaller, and utilisation is 6-16 points higher a year from 2019 and 29 points higher in 2018. Four months exceed 100%: 2018-03, 2018-04 and 2018-10, before Sunrise II was in service, when the basin's pipes were full and crude also left by truck and rail (EIA, 2019-03-26: the earlier 'pipeline capacity constraints from the Permian region to Cushing have been largely removed'), and 2019-07 at 101%, before Cactus II, EPIC and Gray Oak opened. Sunrise II itself reads 14-36% utilised, and that is expected: it ends at Wichita Falls, and EIA credited it with about 120,000 b/d of new takeaway in early 2019 because the outlets beyond Wichita Falls bind it.
- capacity (pre-service months) — A month before a pipeline's earliest SOURCED in-service level contributes 0.0 to the denominator and is flagged PRE_SERVICE — never a guessed earlier nameplate. `capacity_basis` names which edges the period's denominator was built from.
- refining_low/central/high (western_canada, 2017-02 and 2020-07) — Those two rows come back differing in the LAST BITS from one call to the next in the same process, so something upstream is not summing them in a fixed order and float addition is not associative. Every figure in this family is therefore published at ten significant digits, at which the two calls agree exactly. The wobble is ~1e-13 relative and reaches no reader; it is recorded because a number that is not reproducible is a different kind of number from one that is, and the fix belongs in model/egress.py.
- declared nodes — Only the nodes in egress.DECLARED_NODES are published, and this artifact is GENERATED by iterating that table. A node added there appears here on the next publish; one removed stops appearing loudly. There is no hand-typed node list in this publisher.
facility
- a throughput from any one filer's lines — a handoff between two held filers is on both returns. `throughput` counts it once, from the delivering side, and leaves self and intra-group lines out; `monthly` keeps every line as filed, so summing it states the same barrel twice Unblocked by: nothing — it is what the form asks two companies to do.
- a coordinate for a facility with no accepted override — the geocoder writes proposals (t1_geo_proposal) and nothing else; a pin is an inference and only a human moves one into config/t1_facilities.yaml geo_overrides (DECISIONS.md 2.19) Unblocked by: an accepted geo_override naming its source.
- a facility for an unresolved string — a raw facility string never becomes a node on its own; it reaches one only through the alias table or a valid R-1 id. Unresolved lines are in t1_facility_review, not here Unblocked by: an alias in config/t1_facilities.yaml.
- a barrel's route inside a system — the T-1 loses routing inside a filer's system; tracing would be proportional mixing labelled as observation (spec §10.6) Unblocked by: nothing in this family.
freshness
- as_of — Staleness is a function of TODAY, so this is the one artifact here whose bytes move without any warehouse change. `as_of` is pinned to the publish DATE (midnight UTC) rather than the wall clock, so two publishes in one day are byte-identical and the daily movement is a real reading rather than a clock artifact. The date it was taken against is in this manifest, not in the payload.
- RRC_R1 — Declared in config/source_cadence.yaml and writes ZERO rows to series/movements — its data lives in the r1_* tables — so it is scored on a lag it cannot report. This is why the report covers 18 of 19 declared sources rather than 19 of 19.
- status — LATE and STALE are measured against each source's own documented cadence in config/source_cadence.yaml, not against a single threshold. Several sources (RRC, RRC_T1, FERC) have a long OK lag BY DESIGN, so a large lag here is not by itself a fault.
- latest_period — This is max(period) in the warehouse, and a node's data vintage is NOT max(period): several sources carry zero-filled placeholder months past the end of real reporting. Zero is also a legitimate reading for exports, so 'last non-zero' is not a safe substitute either. model/node_provenance.py reports both dates and the gap; this artifact reports only the first.
geo_tx
- (every layer) — Display outlines for one map, not geography to measure with: clipped to a box and simplified to ~220 m. Area, length or point-in-polygon answers come from geo/, which this only derives from.
identity
- a throughput for any system — barrels_named counts each side of a handoff separately, because two filers reporting one transfer both name it. It is filing volume and must never be compared to a capacity Unblocked by: nothing here — it is a property of what the form asks.
- a company for every system — an unbridged system is a name this project declined to resolve, usually because several P-5 organisations matched it and choosing one would have been a guess (model/tx_name_bridge.py) Unblocked by: a ruling, or a P-5 name that resolves uniquely.
- blame for a `receiver_withheld` edge — the counterparty's detail did not reconcile to their own page 1, so this project declined to write it. The barrels are missing from the warehouse, not from the filing Unblocked by: a re-read of that filing that reconciles.
- a merged facility — a facility carries no registration on the T-1 form, so merging two keys is inference. The worklist proposes; config/t1_facility_rulings.yaml is where a decision goes, under a `why` a human wrote Unblocked by: a ruling.
network
- weight_year — one calendar year's FERC weights can be pinned and applied to all history, which is a way of inspecting the model rather than reading it; every published figure uses each year's own weights on its own months Unblocked by: a page that charts the model under a single year's weights, at which point the pinned tables are published beside these.
- one pipeline's monthly history in a single file — the months are grouped by year, so a whole pipeline across forty years is spread across forty files; the index beside them says what each line has and over which period, which is what a reader asking about one line is told Unblocked by: a page that charts a single pipeline over its whole life.
pipelines
- n_months == 0 — Ten of the eleven intra_P3 pipelines have never carried a monthly figure — 3,721 kb/d of nameplate with no barrels behind it. They are PRESENT in this artifact by name, with source NONE and automation_status UNSOURCED. Dropping them would publish a corridor that looks fully covered because everything uncovered in it had been filtered out.
- blocker vs blocker_class — `blocker` is keyed on the SOURCE, so the 26 pipelines with no publisher at all share ONE paragraph and cannot differ from each other — it reads as one fact and is seven. `blocker_class` and `blocker_detail` are per PIPELINE and say which: no Texas Form T-1 registration exists under any spelling (permanent); the filings are held and complete and the form certifies one system-wide total rather than the line (permanent unless the form changes); the filings are held and the itemised detail does not reconcile to the certified page-1 total, so no month clears the one-barrel wiring gate; a registration exists and nobody has fetched it; the filing arrived and did not read; the carrier is outside Texas and files no T-1 at all; and the carrier files but moves no crude. Only the fourth is a fetch.
- blocker classes with no members — The counts in this manifest are taken from the classes that OCCUR, so four declared classes appear nowhere in it — AWAITING_GRAIN_RULING, READABLE_NOT_WIRED, T1_ROWS_ABSENT and NOT_ASSESSED. That is a result, not an omission: as of 2026-08-24 every held Texas registration this artifact covers has been ruled, so 'held and awaiting a decision' — which was the cheapest work on this page for three rounds — has no occupants left. The classes stay declared and reachable, because a class deleted for being empty cannot go red when it refills.
- intra_P3 coverage — The one intra_P3 line that reports is Zydeco, which runs Houston to Louisiana — so the corridor named for Permian egress contains no Permian egress. The Permian barrels that do exist sit in corridors of their own (cactus_ii_t1, epic_crude_t1, gray_oak_t1, wink_webster_t1 and bridgetex_t1 to the Gulf; basin_t1, sunrise_ii_t1 and centurion_t1 to Cushing), all RRC_T1, and are 8 to 17 months deep.
- per-month detail — This family publishes the per-PIPELINE summary only. The month-by-month allocation behind it is network/year/*.json; republishing it here would be a second copy that can go stale against the first.
- automatable vs seam — `automatable` is a claim about the NUMBER — could a cron refresh this pipeline's figure. It is not a claim about the FETCH, which is `seam` in config/sources.yaml. CER is legitimately automatable and still needs a human for the workbook anyone would use.
prices
- value — A BENCHMARK, not a realisation. Cushing WTI is the price at one hub and Henry Hub at another; neither is what any barrel or molecule on any pipeline in this model was actually sold for. Nothing here says what a shipper paid or received, and a curve drawn beside a flow does not make the two causal.
- frequency — MONTHLY ONLY. The daily series is in the warehouse -- 27,659 of the 28,975 rows -- and is deliberately not published: no page draws it, and it would be twenty times this file to serve a chart that plots months. Read it from the warehouse if you need it.
- period — The monthly figure is EIA's OWN average of its daily prints, not a resampling of ours. That is why both frequencies are stored and why this family republishes rather than derives: a mean we computed would be a number EIA never published, sitting in a file that looks like EIA's.
- location — NO WAHA, and no Permian or regional basis of any kind. EIA publishes none -- checked by exhaustion across petroleum/pri/spt (11 series) and natural-gas/pri/fut (5) on 2026-09-07. A Permian gas basis story needs a source this project does not have.
- units — Nominal USD as published. No currency conversion and no inflation adjustment, so a 1986 figure and a 2026 figure are not comparable in real terms.
product
- a filer that has never filed a T-1 — these pages are built from filings, so an operator who has filed nothing has no page here; that is an absence of paperwork and not a claim that the operator moved nothing Unblocked by: the operator filing, or another publisher stating a volume for it.
- months after the newest filing on file — every figure is a month somebody filed, so the series stops where the filings stop rather than being carried forward to today Unblocked by: the next quarter's filings being read.
reconcile
- padd_residual.verdict — There is no verdict column on the third arm and its absence is deliberate. The question — is a PADD's leftover residual attributable to the two national-only terms — answers 'partly': it holds from 2022 and fails by -55..-207 kb/d across 2016-21. A column reading PASS would be a claim the numbers do not support.
- national.diff — The national arm cannot see a corridor error at all. Inter-PADD receipts cancel to zero on the US row BY CONSTRUCTION, so a 24-year sub-1-kb/d pass on this arm says nothing about the PADDs — which is how a missing P2->P4 backhaul of ~275 kb/d survived 11 years. That is what the padd arm is for.
- padd.built vs published — The corridor reconstruction is DIFFED against EIA's published net receipts, never used in place of them. The balance prefers the published term per (region, month); the reconstruction is the map's detail beneath it and the thing this check grades.
restatements
- revision — nothing in series or movements distinguishes a filer's amended filing from our own second OCR of the same one. n_vintages counts OUR pulls and is published under that name; a boolean called `revision` would label a re-read as a correction by the filer Whose change it was. When a filed document is read a second time and reads differently, nothing we hold says whether the filer amended it or we simply read it better. So every count here is of OUR readings, and none of it is attributed to a filer Unblocked by: an amendment marker captured from the filing itself.
- attribution for a publisher_figure source — a change in an API figure is the publisher's only if our own transform did not change between the two pulls. The warehouse stores no code version beside the row, so it cannot rule that out — which is why publisher_figure is a separate value from publisher_vintage rather than being called 'the publisher' Whether a published figure moved because the publisher revised it or because we changed how we handle it. Nothing is recorded alongside a stored figure to tell the two apart, which is why only one row above claims a change was the publisher's Unblocked by: a code revision stamped on the row at ingest.
- what a reader was served before the artifacts were committed — the manifest arm can only see committed revisions of site/artifacts. Anything republished before the first commit of that tree moved no file a reader could have fetched, so it is counted in the warehouse arm and nowhere else What this site served before its published files were first put under version control. Nothing changed under a reader before that date because nothing had been served, so the file count below is a floor that only moves forward Unblocked by: nothing — this is a floor on history, and it only moves forward.
- an exactly-duplicated row told apart from two identical readings — neither series nor movements carries a line number, so a row written twice and two genuine lines that agree to the barrel are the same four columns. This module collapses exact duplicates before summing — see `deduplication`, which publishes what that removed rather than absorbing it — because the alternative reports a figure as doubled when a reader was served the same number both times A figure stored twice by accident, told apart from two genuine entries that agree to the barrel. Nothing numbers the lines, so the two look identical; duplicates are collapsed before anything here is counted, and how many were collapsed is stated below Unblocked by: a line ordinal on the movement/series row.
- a figure held in a table this module does not count — the warehouse carries `pulled_at` on more tables than TABLES names, and a table nothing asks about returns no restatements — which reads exactly like a table whose figures never moved. `table_coverage` counts the gap from the warehouse itself rather than from a list kept here, because a hand-kept list would be blind to a new table in the same way the code is. Six of the remaining tables are a PRINCIPLED refusal rather than a to-do: the four v_r1_* detail views take their vintage from the parent filing and have no PARTITION BY of their own, and v_t1_line_latest and v_t1_stock_latest partition at FILING grain, so neither defines the figure this module would count. `refused_figures` carries the same limit one level down, for a column inside a table that IS counted A figure kept somewhere other than the collections counted here. This model stores several kinds of reading, and a collection nothing asks about looks the same as one where nothing ever changed. Some of the rest cannot be counted this way at all — they record a whole document being re-read rather than one number, so there is no single figure to compare against its earlier self. How many are uncounted is stated below Unblocked by: a figure grain defined for each remaining table, which six of them do not have and are not going to.
- first_value as the number a reader saw — first_value is the earliest reading in the warehouse, which is not necessarily a reading that was ever published. It is the closest thing to it the data holds, and is named for what it is Whether the earliest reading held was ever actually published. It is the closest thing we have to the first number a reader saw, and it is labelled as the first reading rather than as the first published figure Unblocked by: the manifest arm, once the artifact tree has history.
sd
- (every file) — A snapshot of the warehouse at publish time, not a live answer. A panel built from these files is as current as the last publish, and says so in its own `period`.
- hub_<id>_detail / padd_<P>_detail pipeline rows — build_alloc() rows, the same ones network/ publishes per year. They are a second copy, kept equal to network/ by tests/test_publish_sd.py; republish both together.
- basin_<id> — api.basin() at every month. Its newest 24 rows are the same rows atlas/basin/<id>.json publishes for the atlas page, kept equal by tests/test_publish_sd.py; republish both together.
- padd_extras — Only the /api/padd/{P} columns balance/us.json does not carry. The identity terms (production, imports, net_receipts, stock_draw, refinery_inputs, exports, residual) are NOT here: read them from balance/us.json, which is their one copy.
t1
- source_file — no column in t1_line or t1_acquisition names the PDF a row came from; doc_id and viewer_url are empty in all 245 acquisition rows and the 1,368 files on disk follow no naming convention Unblocked by: a source_file column written at ingest (re-ingest of all filings).
- page_image / sheet number — `page` is the FORM section (1A/1B/2). The schema holds no physical page or sheet number, so a citation cannot point at an image Unblocked by: capturing the PDF page index during parsing.
- revision — nothing distinguishes a filer's amended filing from our own re-read of the original. `n_vintages` counts OUR pulls and is published under that name; a boolean called `revision` would label a re-OCR as a correction by the filer Unblocked by: an amendment marker captured from the filing itself.
- a citation for the stock terms of the closure — the ref grain is (registration, period, page) and t1_stock carries no `page`. So the closure's two stock inputs can be shown but not cited, while its three flow inputs can — and the payload lists only the refs that exist rather than minting one for the stock table that would resolve to nothing Unblocked by: a `page` column on t1_stock, captured at parse time.
- a top-counterparty share for most facilities — 371 of the corpus's 444 facility-sides have exactly one counterparty carrying barrels, so a 'top exposure' figure would read 100% on five in six — measuring how thinly the T-1 form describes a facility, under a word that means concentration risk. The share is published for the 73 facility-sides that have something for it to be a share OF, and refused as `sole_named` with its counterparty count everywhere else Unblocked by: nothing in the T-1 form. A facility's real counterparty mix is not a thing this filing reports; only the counterparties this filer transacted with there are.
The tree as a whole
- sha256 (41 of 462 files) — Carries its own generated_at, so its bytes move on every publish with no data change behind them. Those files are listed with a null digest rather than omitted, because a file left out of the manifest is served to a reader all the same.
- seam (families with no `feeds` declaration) — A family's seam is derived from config/sources.yaml: it is `ci` only if EVERY source declaring it in `feeds` is `ci`. A family no source names is `unknown`, which is the honest answer and is not the same as `ci`. Guessing one wrong drops a family out of the CI build with nothing failing.
- freshness of a family — This manifest describes the tree on disk. It does not run the other publishers, so it cannot tell a family that is up to date from one whose publisher has not been run since its inputs moved. `built_at` says when these BYTES were produced, not whether they are still what the warehouse would produce.
- cannot (families that publish no manifest) — Every `cannot` here is collected from the family's own manifests. A family that publishes none contributes nothing, and is reported with `describes_itself: false` rather than as having no limits.
- whether a family describes ITSELF (this file describes it either way) — This manifest lists every file under the root, so any count of `published files no manifest describes` reads zero once this file is committed — zero BY CONSTRUCTION, not because the gap closed. `restatements.artifact_history` reported 169 such files and says in its own docstring that it publishes the number because `a number nobody can see gets fixed by nobody`; this file landing took it to 0 without a single family gaining a description. A measurement driven to zero by the arrival of a new describer is the same fault as a count taken from a declaration instead of from the code, so the number is carried HERE instead, per family and in total, as `n_files_no_family_manifest_describes`. A describer may report the gap it closed; it may not be the reason the gap reads shut.
- n_files_no_family_manifest_describes (counted structurally, so it does not match a filename-based count) — A file counts as described if some OTHER file under this root carries a non-empty `files` list naming it, resolved against that file's own directory. That is deliberately not a `*manifest.json` name match: `atlas/`, `basis/`, `network/` and `product/` publish their descriptions as `index.json`, which are manifests under another name and are exactly what a name list misses — the same reason the volatile split above is structural. The two definitions differ by 234 files and so by an order of magnitude: a name match puts the gap at 247, and the four `index.json` describers account for every one of the 234. The structural remainder is 13 — `geo`'s 11 payload files, which have no describer of any kind; `t1/index.json`, which no `t1` manifest lists although 222 of that family's other files are described; and `restatements.json`, which is the instrument `artifact_history` excludes from its own reading and which is a published payload file here all the same.
- which publisher owns a directory — This manifest describes a tree, not the modules that wrote it, so it cannot tell one publisher's directory from a directory two publishers both write. That is not hypothetical: a second publisher of `reconcile/` landed with a stale-file sweep over a root it did not exclusively own and deleted another module's three files, and nothing here would have shown it — a swept file and a file never published are the same absence. The convention the episode settled on is that under this root a directory is one publisher's or it is nobody's, and it is a convention, not something this manifest enforces.