Metrics & Calculations
Comprehensive documentation of all metrics and calculations used in the MTMT Statistics system.
Note: By default, Norway Level 0 publications are included in all calculations. Use the toggle on the statistics page to exclude them from Q-score, I-score, and Impact Factor calculations. Excluded publications still appear in publication lists.
Q Score (Quality Score)
The Q Score measures the quality of publications based on their type, venue, and impact. It is calculated differently for articles and books, and always multiplied by the author's share.
Journal Articles
For journal articles, the Q Score depends on whether the journal has an Impact Factor:
- With Impact Factor: Q Score = max(0.6, Impact Factor) × Author Share
- Without Impact Factor:
- Foreign edition: 0.4 × Author Share
- Hungarian edition: 0.3 × Author Share
Requirements: The article must be a reviewed journal article with a valid article type (szakcikk, összefoglaló cikk, konferenciaközlemény, rövid közlemény, or sokszerzős vagy csoportos szerzőségű szakcikk).
// Q Score calculation for Journal Articles
async getQScore(authorShare: number, impactFactor: number) {
if (
this.otype === "JournalArticle" &&
this.journal?.reviewType === "REVIEWED" &&
this.isValidArticleType()
) {
// With Impact Factor
if (impactFactor > 0) {
this.qscore = Math.max(0.6, impactFactor) * authorShare;
}
// Without Impact Factor
else {
this.qscore = (this.foreignEdition ? 0.4 : 0.3) * authorShare;
}
return { qscore: this.qscore, source: "articles" };
}
}Books and Book Chapters
For books and book chapters, the Q Score is based on page length:
- 100+ pages:
- Foreign language: 2 × Author Share
- Hungarian language: 1 × Author Share
- 10-99 pages:
- Foreign language: 0.2 × floor(pages/10) × Author Share
- Hungarian language: 0.1 × floor(pages/10) × Author Share
- Less than 10 pages: Q Score = 0
Conference Papers
Conference papers in book chapters require ISBN/ISSN and minimum 4 pages:
- Foreign language: 0.2 × Author Share
- Hungarian language: 0.1 × Author Share
// Q Score calculation for Books
if (this.isBook() || this.isBookChapter()) {
const pageLength = this.getPageLength();
if (pageLength >= 10) {
let baseScore;
// Books with 100+ pages
if (pageLength >= 100) {
baseScore = this.foreignLanguage ? 2 : 1;
}
// Books with 10-99 pages
else {
baseScore = (this.foreignLanguage ? 0.2 : 0.1) *
Math.floor(pageLength / 10);
}
this.qscore = baseScore * authorShare;
return { qscore: this.qscore, source: "books" };
}
}Q Score Aggregation
The total Q Score is separated into two categories:
- fromArticles: Sum of Q Scores from journal articles and conference papers
- fromBooks: Sum of Q Scores from books and book chapters
- total: fromArticles + fromBooks
I Score (Independent Citation Score)
The I Score counts independent citations from scientific publications, excluding self-citations and citations from non-scientific sources (theses, other publications).
Calculation Rules
- Only external citations are counted (not self-citations)
- Only citations from scientific publication types:
- Könyvrészlet (Book Chapter)
- Könyv (Book)
- Folyóiratcikk (Journal Article)
- Egyéb konferenciaközlemény (Other Conference Paper)
- Excludes citations from:
- Thesis (dissertations)
- PublicationOther (non-scientific publications)
I Score WOS
A subset of I Score that only counts citations indexed in Web of Science (WoS) or WoS-CSCD.
// I Score calculation
getIScore() {
let iscoreWos = 0;
if (this.published && this.citations) {
this.iscore = this.citations.reduce((score, citation) => {
if (citation.externalCitation && citation.related?.type?.label) {
const citingType = citation.related.type.label;
// Only count scientific publication types
if ([
"Könyvrészlet",
"Könyv",
"Folyóiratcikk",
"Egyéb konferenciaközlemény"
].includes(citingType)) {
// Check for Web of Science citation
if (citation.related.identifiers?.some((i) =>
["WoS", "Wos-CSCD (Chinese)"].includes(i.source?.label || "")
)) {
iscoreWos++;
return score + 1;
}
return score + 1;
}
}
return score;
}, 0);
// Count scientific citations (exclude Thesis and Other)
this.scientificCitationCount = this.citations.reduce(
(acc, citation) =>
citation.related?.otype !== "Thesis" &&
citation.related?.otype !== "PublicationOther"
? acc + 1
: acc,
0
);
return {
iscore: this.iscore,
iscoreWos,
scientificCitations: this.scientificCitationCount
};
}
return { iscore: 0, iscoreWos: 0, scientificCitations: 0 };
}Impact Factor (IF)
Impact Factor is retrieved from the IF list CSV file, matching journals by ISSN or name for the publication year.
Matching Process
- Load Impact Factor data from /iflist.csv
- Find entries matching the publication year (or latest available year if newer)
- Match by:
- Electronic ISSN (eISSN)
- Print ISSN (pISSN)
- Journal name (case-insensitive)
Note: If a publication year is newer than the latest IF list year, the system uses the latest available IF data.
Impact Factor Metrics
- total: Sum of all Impact Factors for publications with IF
- relative: Sum of (Impact Factor × Author Share) for weighted calculation
- publicationsWithIF: Count of publications that have an Impact Factor
- singleAuthorPublicationsWithIF: Count of single-author publications with IF
// Impact Factor lookup
const getImpactFactor = async (pub: Publication): Promise<number> => {
if (!pub.journal) return 0;
if (!IFData) await loadImpactFactorData();
if (!IFData || !maxIFYear) return 0;
const targetYear = Math.min(pub.publishedYear, maxIFYear);
// Match by ISSN or journal name
const exactMatch = IFData.find(
(ifct) =>
ifct.year === targetYear &&
(ifct.eissn === pub.journal?.eIssn ||
ifct.pissn === pub.journal?.pIssn ||
ifct.eissn === pub.journal?.pIssn ||
ifct.pissn === pub.journal?.eIssn ||
(pub.journal?.label &&
ifct.journal.toUpperCase() === pub.journal.label.toUpperCase()))
);
return exactMatch?.if ?? 0;
};H-Index
The H-Index is a metric that measures both the productivity and citation impact of a researcher's publications.
Definition
An author has an h-index of h if they have h publications that have each been cited at least h times.
Calculation Algorithm
- Collect all scientific citation counts for the author's publications
- Sort citations in descending order
- Find the largest index h where the citation count at position h is ≥ h
Example:
Citations: [10, 8, 5, 4, 3, 2, 1]
- Position 1: 10 citations ≥ 1 → ✓
- Position 2: 8 citations ≥ 2 → ✓
- Position 3: 5 citations ≥ 3 → ✓
- Position 4: 4 citations ≥ 4 → ✓
- Position 5: 3 citations ≥ 5 → ✗
H-Index = 4
// H-Index calculation
const calculateHIndex = (citations: number[]): number => {
if (!citations.length) return 0;
// Sort citations in descending order
citations.sort((a, b) => b - a);
// Find the largest h where h papers have at least h citations
return citations.findIndex((c, i) => c <= i) || citations.length;
};
// Example: [10, 8, 5, 4, 3] -> h-index = 4
// (4 papers have at least 4 citations each)Publication Ratings (D1, Q1-Q4)
Publications are assigned ratings based on their journal's quartile ranking in the Impact Factor list.
Rating Categories
- D1: Top tier (top 10%)
- Q1: First quartile (top 25%)
- Q2: Second quartile (25-50%)
- Q3: Third quartile (50-75%)
- Q4: Fourth quartile (75-100%)
- N/A: No rating available (no ranking available)
Rating Source
Ratings come from the ratingsForSort field in the MTMT publication data, which is determined by the journal's quartile in the Impact Factor database.
Yearly Aggregation:
The system tracks the count of publications in each rating category per year, allowing for trend analysis and cumulative statistics.
Data Sources
Impact Factor List
The Impact Factor data is loaded from /iflist.csv, which contains:
- Journal name
- Print ISSN (pISSN)
- Electronic ISSN (eISSN)
- Impact Factor value
- Quartile ranking (D1, Q1-Q4)
- Category median IF
- Year
Norway List
The Norway list (/norwaylist.csv) contains journals with quality ratings that affect metric calculations:
- Print ISSN and Online ISSN
- Level ratings by year (0-2 scale):
- Level 0: Bad quality - publications from these journals do not count for Q-score, I-score (citations), or rankings (D1, Q1-Q4)
- Level 1: Normal quality - publications count normally
- Level 2: Good quality - publications count normally