Factor library · editions
Assemble, validate, and publish factor editions; a published edition is frozen and cited by its content hash
AnnotationCompanies pattern (spec iii 7.6):
system_admin only, cross-tenant, outside tenant navigation. Any other caller receives the platform's standard not-found response, indistinguishable from a nonexistent page. The sidebar menu placement is a proposal| Edition | Status | Date | Contents | Coverage check | Content hash | Validation | Actions |
|---|---|---|---|---|---|---|---|
| 2027.0 | StagingNot visible to any company | Imported 28 Aug 2026importRunId 000341 |
217 factor rows · 38 carriers · 9 activity types · 2 GWP sets · 41 FX pairsStaged | Runs with validation · waiting on the 2 findings | Assigned at publish | 2 findings | |
| 2026.1 | PublishedCited by locked cycles | Published 10 Feb 2026importRunId 000287 |
214 factor rows · 38 carriers · 9 activity types · 2 GWP sets · 41 FX pairs | PassedCovers everything 2025.2 covered | 3f9c…a217 |
Passed | |
| 2025.2 | PublishedCited by the FY2024 cycle | Published 11 Feb 2025importRunId 000201 |
209 factor rows · 36 carriers · 9 activity types · 2 GWP sets · 40 FX pairs | Passed | b7d2…41c8 |
Passed |
The coverage check compares an edition's carrier, country, and period coverage with the previous edition and flags anything the new edition would stop covering. Assemble re-runs the import from the edition's manifest, replacing the staged rows wholesale; there is no row-level editing here by design.
Validation report · edition 2027.0
Run against the staged rows after the 28 Aug 2026 import
2 findings
One source snapshot is missing its attribution lineVINTAGE_INCOMPLETE
The DESNZ snapshot named by the import manifest carries no attribution sentence, and every row from that source must ship with one. Fix the repository content (add the attribution line to the source snapshot), then use Assemble to re-run the import. Re-importing replaces the staged rows for this edition.
Two factor rows cover the same fuel, country, and date rangeVINTAGE_OVERLAP
Two natural gas rows for Singapore both claim Jan 2026 to Dec 2026, so the calculation could not pick between them. Fix the repository content (remove or re-range one of the pair), then use Assemble to re-run the import.
Publish 2027.0
Publishing is unavailable until the validation report shows zero findings. Publishing is permanent because locked reporting cycles cite an edition by its content hash: a published edition does not change afterwards, and corrections ship as the next edition rather than as an edit to this one. Publishing holds a short exclusive lease on the edition store, so a concurrent import or second publish is refused rather than interleaved.
Latest import job · edition 2027.0
Everything staged came from what the manifest names
Completed 28 Aug 2026
Manifest
editions/2027.0/manifest in the factor content repositorySource snapshotsDESNZ UK 2027 file revision 1 · EMA GEF 2025 file revision 1 · IPCC AR6 and AR5 · SEFR 2027 file revision 1
Staged217 factor rows, 2 GWP sets, 41 FX rates
Run byPlatform operations · 28 Aug 2026 at 16:41
importRunId 000341
Variants · the publishing state, the lease refusal, and the publish confirmation · annotation frames only, the white surfaces are the proposal
The editions table row while 2027.0 is publishing · Status is a lifecycle column state
Publishing is a state of the Status column (staging, publishing, published), drawn here as a variant row so the live worklist above keeps showing the current staging state.
An import attempted during that publish · refused, nothing staged or lost
The lease refusal in words with the pathway (wait, then Assemble); the code constant sits in muted text. This is the refusal the publish lease exists to produce instead of interleaving writes.
Publish confirmation dialog · once both findings are fixed
One confirmation, in words that repeat the consequence rather than "Are you sure". The confirm button repeats the edition number so an operator with two editions open cannot publish the wrong one on muscle memory. After a successful publish the table row flips to Published with its new hash; a fresh edition reads "Not yet referenced by any cycle" until a cycle's methodology lock names it.
Annotation · not proposed UI
Spec iii 3.3 · immutability, hash, lease.
Immutability: once published, an edition's rows are frozen and every later correction becomes a row in the next edition, never an edit to this one.
Hash: the content hash is computed over the edition's complete row set at publish time and fingerprints exactly what locked cycles keep citing, shown truncated in the edition table.
Lease: publishing holds a short exclusive lease on the edition store so a concurrent import or second publish is refused rather than interleaved, which is the refusal the two variant drawings above make visible.
The user-facing word "factor edition" maps to the spec term "vintage"; the finding codes keep the spec's VINTAGE_ prefix.
Annotation · not proposed UI
Spec iii 4.2 · imports are manifest-driven.
An import is driven by a manifest in the factor content repository that names the target edition, the source snapshots, and their revisions; the import job stages exactly what the manifest names and nothing hand-entered.
That is why both findings route the operator to fix the repository content and Assemble again: the staged rows have no edit surface here by design, and a re-import wholesale replaces the staged rows for the edition.
Validation runs after every import and gates the Publish action, in the table's Actions column and in the report's publish strip alike.
Annotation · not proposed UI
Spec iii 7.6 · placement and access.
This page follows the Companies pattern: a
system_admin operator surface, cross-tenant, outside tenant navigation, with non-system_admin callers receiving the platform's byte-identical unknown-route 404.
A staging edition is invisible to every customer company; tenants only ever meet published editions through a cycle's methodology lock, which is also the only tenant-visible moment in this whole flow.
The "Internal operations" group, the Factor Library item, and its three always-visible sub-items are a menu placement proposal.
Annotation · question for the PM
One retention question this page does not settle.
Import job records and validation reports for replaced staging attempts are drawn as kept (the latest is shown, history implied).
Whether older job records are retained forever, pruned after a period, or folded into the audit trail is an operational storage decision the spec leaves open.
The drawing assumes at least the latest per edition survives, since it is the evidence behind the publish gate.