Skip to content
Panorama Open Scholarly Index

Record schema

The fields of a journal record, as published in /data/journal/{code}.json and the Discovered shards. Each field states its basis so declared claims are never mistaken for measurements. Machine-readable copy: https://data.posi.panorama-sg.com/site/v1/meta/schema.json.

Provenance basis

Identifier
A persistent identifier, checked against the issuing registry where possible.
Declared
Stated by the publisher about itself (website, author guidelines). Not independently measured.
Registry
Taken as-is from an open scholarly registry (Crossref, OpenAlex, DOAJ, ISSN Portal).
Computed
Calculated by posi-engine from registry data under a versioned, published specification.
Curated
Assigned by a POSI collection rule (e.g. admission gate, benchmark selection).

Fields

FieldTypeBasisSourceMeaning
posi_idstring · POSI-J-######Identifierposi-data registry/Permanent POSI identifier. Never reused, never reassigned.
journal_codestringCuratedposi-data corpus/URL-safe key used in record paths (/journal/<code>/).
titlestringRegistryISSN Portal / CrossrefJournal title as registered with the ISSN Portal.
alternate_titlesarray · string | { title, type, lang?, until? }Curatedposi-data corpus/Other titles the journal is known by: former titles, translations, abbreviations, and variants such as a Crossref/OpenAlex title that lags a rename. Searchable; never the display title.
issn_onlinestring · ####-####IdentifierISSN Portal / CrossrefElectronic ISSN. Null when none is registered - never guessed.
issn_printstring · ####-####IdentifierISSN Portal / CrossrefPrint ISSN. Null when none is registered.
openalex_source_idstring · S#########IdentifierOpenAlexOpenAlex source record the ISSN resolves to.
publisherstringRegistryCrossref / OpenAlexPublisher name as registered.
registration_countrystringRegistryISSN PortalCountry of ISSN registration - not necessarily where the journal operates.
countrystringDeclaredPublisherCountry the publisher states it operates from.
languagestringDeclaredPublisher / DOAJPrimary publication language.
frequencystringDeclaredPublisherDeclared publication frequency. Observed cadence may differ.
open_accessboolean | nullRegistryDOAJ / OpenAlexWhether the journal is recorded as fully open access. null when it is not known, for example a journal DOAJ does not list and no other source describes.
licensestringDeclaredPublisher / DOAJDefault article license.
peer_review_typestringDeclaredPublisherDeclared peer-review model. POSI does not observe review directly.
doaj_statusenumRegistryDOAJlisted · application_submitted · not_listed · null (not checked).
website_urlurlDeclaredPublisherJournal home page.
apcobject · { amount, currency, note, source_url, checked_at }DeclaredJournal websiteThe APC the journal states on its own website, with the page it is stated on and the date POSI checked it. An amount of 0 means the journal states it charges no APC. Absent when POSI could not find a stated APC.
article_countintegerRegistryCrossrefDOIs registered under the journal ISSN at the data cutoff.
psc_categorystring · P#.##ComputedOpenAlex topics → PSC crosswalkPOSI Subject Classification category derived from the journal’s OpenAlex topic distribution.
psc_confidenceenumComputedposi-enginehigh · low. Low means no single topic dominated - common for multidisciplinary journals.
pqfobjectComputedposi-engine (PQF v1.0)Editorial-selection evidence score, six sub-factors. Admission gate for the Core Collection only.
early_stage_ratingobjectComputedposi-engine (AJR-E)Lifecycle stage and, for a journal 12-59 months old where rateable, its AJR-E score and rating. Core Collection journals only. Null fields are never filled with estimates.
mature_ratingobjectComputedposi-engine (AJR-M, rate-mature.mjs)For a journal 60 months or more old: its AJR-M rating status, score and rating where rateable, model version and rating date. Core Collection journals only; published from AJR-M-1.2.
collectionenumCuratedposi-datacore · curated · benchmark · discovered. Only core is certified; curated is a POSI curated record outside the Core Collection.
verificationenumCuratedDerived (see Provenance)VERIFIED · PARTIALLY_VERIFIED · NEEDS_CHECK · REJECTED.
updated_atdatetimeCuratedposi-dataLast time any field of the record changed.

Index file keys

The files under /data/index/ use one-letter keys to stay small. The CSV versions use full column names.

KeyFieldNote
idposi_id
cjournal_code
ttitle
iissn_online, issn_printarray, online first, de-duplicated
ppublisher
coregistration_country ?? countrynormalised to an English display name
spsc_category
kcollection
vverification
oaopen_access
ddoaj_status
narticle_count
uupdated_atdate only

See Provenance and verification for how k and v are assigned.