-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.html
More file actions
761 lines (711 loc) · 39.5 KB
/
Copy pathindex.html
File metadata and controls
761 lines (711 loc) · 39.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- ── Core SEO ─────────────────────────────────────────────────── -->
<title>Journal Trends — Where Should I Publish? Free Journal Statistics, Publication Trends & PPS Flags</title>
<!-- Google Analytics 4 (gtag.js) — loaded early; async so it never blocks render. -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-0Y9ND25YQW"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-0Y9ND25YQW');
</script>
<meta name="description" content="Free tool to compare academic journals before you submit. Decide where to publish — see country, institution and author publication trends, year-on-year growth, and Problematic Paper Screener (PPS) integrity-flag rates for any journal indexed in OpenAlex. Paste an ISSN, get interactive charts in seconds. No signup, runs in your browser.">
<meta name="keywords" content="journal trends, where should I publish, which journal should I publish in, journal statistics, journal metrics, publication trends, compare journals before submitting, free journal analysis, OpenAlex, ISSN lookup, problematic paper screener, PPS, predatory journal detection, journal selection tool, fastest growing journals, academic journal analysis, scientometrics, bibliometrics, country trends, institution trends, author productivity, retracted papers, paper mill detection">
<meta name="author" content="ach4l">
<meta name="theme-color" content="#0d1117">
<meta name="robots" content="index,follow,max-snippet:-1,max-image-preview:large,max-video-preview:-1">
<link rel="canonical" href="https://journaltrends.com/">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
<!-- ── Open Graph (Facebook, LinkedIn, Slack, etc.) ─────────────── -->
<meta property="og:type" content="website">
<meta property="og:site_name" content="journal-trends">
<meta property="og:title" content="Journal Trends — Where Should I Publish? Free Journal Statistics & PPS Flags">
<meta property="og:description" content="Compare academic journals before you submit. Country, institution and author publication trends, year-on-year growth, and Problematic Paper Screener flag rates — paste an ISSN, get interactive charts.">
<meta property="og:url" content="https://journaltrends.com/">
<meta property="og:image" content="https://journaltrends.com/og-image.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="Journal Trends — free interactive publication-trend explorer for academic journals">
<meta property="og:locale" content="en_US">
<!-- ── Twitter / X Card ─────────────────────────────────────────── -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Journal Trends — Where Should I Publish?">
<meta name="twitter:description" content="Free journal statistics — country, institution, author trends + PPS integrity flags for any academic journal. Paste an ISSN.">
<meta name="twitter:image" content="https://journaltrends.com/og-image.png">
<!-- ── JSON-LD structured data (helps Google rich snippets and AI agents) ── -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebApplication",
"name": "Journal Trends",
"alternateName": [
"journal-trends",
"JournalTrends",
"Where Should I Publish",
"OpenAlex Journal Statistics",
"Free Journal Analysis Tool"
],
"url": "https://journaltrends.com/",
"description": "Free, browser-based tool to compare academic journals before you submit. Country, institution and author publication trends, year-on-year growth, and Problematic Paper Screener (PPS) integrity-flag rates for any journal indexed in OpenAlex. Helps researchers decide where to publish, spot fast-growing journals, and check journal integrity signals.",
"applicationCategory": "EducationalApplication",
"applicationSubCategory": "Scientometrics, Bibliometrics, Research Integrity, Journal Selection",
"operatingSystem": "Any (browser)",
"browserRequirements": "Requires JavaScript and IndexedDB",
"isAccessibleForFree": true,
"offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" },
"creator": { "@type": "Organization", "name": "Journal Trends" },
"featureList": [
"Country-of-author trends per journal, year on year",
"Institution-of-author trends, top 20 per country",
"Author productivity rankings, top 30",
"Fastest-growing countries per journal",
"Problematic Paper Screener (PPS) flag rates and detector composition",
"Country and institution breakdown of flagged papers",
"Deep-linkable per-journal URLs (?issn=…)",
"Shareable chart images for LinkedIn, X, Instagram"
],
"potentialAction": {
"@type": "SearchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://journaltrends.com/?issn={issn}"
},
"query-input": "required name=issn"
},
"citation": [
{
"@type": "ScholarlyArticle",
"name": "OpenAlex: A fully-open index of scholarly works, authors, venues, institutions, and concepts",
"author": ["Priem, J.", "Piwowar, H.", "Orr, R."],
"datePublished": "2022",
"url": "https://arxiv.org/abs/2205.01833"
},
{
"@type": "ScholarlyArticle",
"name": "The 'Problematic Paper Screener' automatically selects suspect publications for post-publication (re)assessment",
"author": ["Cabanac, G.", "Labbé, C.", "Magazinov, A."],
"datePublished": "2022",
"url": "https://arxiv.org/abs/2210.04895"
}
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Journal Trends",
"url": "https://journaltrends.com/",
"logo": "https://journaltrends.com/favicon.svg",
"sameAs": [
"https://www.linkedin.com/company/journal-trends/"
],
"description": "A free, open-data project that visualises publication trends and Problematic Paper Screener flag rates for any academic journal indexed in OpenAlex."
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Who is the team behind this?",
"acceptedAnswer": {
"@type": "Answer",
"text": "This is an open-source project led by India Research Watch (IRW) — https://irw.co.in — and its founder Achal Agrawal (https://www.linkedin.com/in/achal-agrawal-phd-42331855/), part of Nature's 10, the list of people who impacted science the most in 2025. It builds on the expertise of the sleuth community in reading research-integrity signals in journals. Achal maintains the codebase with (more than) a little help from Claude Code (https://claude.com/product/claude-code)."
}
},
{
"@type": "Question",
"name": "Which journal should I publish in?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Choosing where to publish is one of the most consequential decisions in academic research. Journal Trends helps you analyze journal trends and visualize any abnormal patterns. Look for healthy contributor diversity, steady (not exploding) growth, and a low PPS flag rate."
}
},
{
"@type": "Question",
"name": "Is Journal Trends free? What is the catch?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Journal Trends is a free, no-signup tool that pulls publication metadata directly from OpenAlex and renders it as interactive charts in your browser. There's no paywall or trial. Every chart can be downloaded as a PNG or shared via a journal-specific URL. There is no catch — it's a community-driven initiative."
}
},
{
"@type": "Question",
"name": "How can I see publication trends for a specific journal?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Paste the journal's ISSN into the search box on journaltrends.com. The tool fetches the journal's papers from OpenAlex (or uses the backend cache if another visitor has already loaded it) and renders four tabs: Country trends, Institution trends, Author trends, and Problematic Paper Screener (PPS) flag breakdowns."
}
},
{
"@type": "Question",
"name": "What is the Problematic Paper Screener (PPS)?",
"acceptedAnswer": {
"@type": "Answer",
"text": "The Problematic Paper Screener is a community-maintained project by Cabanac, Labbé and Magazinov (2022) that automatically flags suspect publications using detectors like tortured phrases, citejacking, retraction signals, and feet of clay (clayFeet). Journal Trends overlays PPS flags onto each journal's profile so you can see flag rates over time, the detector mix, and which countries and institutions account for the flagged work."
}
},
{
"@type": "Question",
"name": "Is this journal predatory?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Journal Trends doesn't label journals as 'predatory' — the term is contested. But it surfaces three signals that often correlate with predatory practices: a huge increase in publication volume, heavy concentration of papers from a few countries, institutions or authors, and elevated Problematic Paper Screener flag rates. You can interpret the data and reach your own conclusions."
}
},
{
"@type": "Question",
"name": "Which countries publish the most in a given journal?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Each journal page includes a Country trends tab showing year-on-year publication counts and percentages by country, using fractional counting for multi-country papers (each paper splits credit equally between authors' countries). Click any country in the legend to pin its highlight across all charts and the tooltip."
}
},
{
"@type": "Question",
"name": "How is Journal Trends different from Scopus / Web of Science / Dimensions?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Journal Trends is free, open-data, and runs entirely in your browser. It uses OpenAlex (a fully-open scholarly index of 250M+ works) and the Problematic Paper Screener. It is not a replacement for commercial bibliometric databases, but a free complementary tool focused on country, institution and author trends and on integrity signals. Its sole purpose is to help researchers be more informed while choosing journals."
}
},
{
"@type": "Question",
"name": "Can I share a link to a specific journal?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. Every loaded journal lives at its own SEO-friendly URL of the form journaltrends.com/journal/<slug>-<issn> (for example, journaltrends.com/journal/reviews-of-modern-physics-0034-6861). Bookmark or share that URL; opening it auto-loads the same view, and the share-preview card on LinkedIn / X / Slack shows the journal-specific country chart as the thumbnail. Each chart card also has its own Share button that posts the individual chart directly to LinkedIn or X, or saves the chart image for Instagram."
}
}
]
}
</script>
<link rel="preconnect" href="https://api.openalex.org" crossorigin>
<link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin>
<!-- Absolute paths (leading slash) so the stylesheet resolves correctly on
sub-path URLs like /journal/<slug>-<issn>. Relative paths would
become /journal/<slug>-<issn>/src/style/main.css and 404. -->
<link rel="stylesheet" href="/src/style/theme.css">
<link rel="stylesheet" href="/src/style/main.css">
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.3/dist/chart.umd.min.js"></script>
</head>
<body>
<!-- ── Top navigation ──────────────────────────────────────────────── -->
<nav class="topbar" aria-label="Primary">
<a href="/" class="brand" aria-label="Journal Trends — home">
<svg class="brand-mark" viewBox="0 0 36 36" aria-hidden="true" focusable="false">
<defs>
<linearGradient id="jt-j-grad" gradientUnits="userSpaceOnUse" x1="0" y1="4" x2="0" y2="28">
<stop offset="0%" stop-color="#f7b731"/>
<stop offset="60%" stop-color="#f7b731"/>
<stop offset="60%" stop-color="#2ea8f5"/>
<stop offset="100%" stop-color="#2ea8f5"/>
</linearGradient>
<linearGradient id="jt-t-grad" gradientUnits="userSpaceOnUse" x1="0" y1="4" x2="0" y2="28">
<stop offset="0%" stop-color="#f7b731"/>
<stop offset="40%" stop-color="#f7b731"/>
<stop offset="40%" stop-color="#2ea8f5"/>
<stop offset="100%" stop-color="#2ea8f5"/>
</linearGradient>
</defs>
<!-- J: stem + bottom-left foot -->
<g fill="url(#jt-j-grad)">
<rect x="8" y="4" width="6" height="24" rx="1"/>
<rect x="2" y="22" width="12" height="6" rx="1"/>
</g>
<!-- T: cap + centred stem -->
<g fill="url(#jt-t-grad)">
<rect x="18" y="4" width="16" height="6" rx="1"/>
<rect x="23" y="4" width="6" height="24" rx="1"/>
</g>
</svg>
<!-- Structural divs (not spans) so the wordmark and tagline natively
stack vertically — independent of CSS state. Inline colour styles
on the JT spans guarantee the right hue even with a stale cached
stylesheet; sizes live in CSS so they can respond to viewport. -->
<div class="brand-text">
<div class="brand-name">
<span class="brand-journal" style="color:#2ea8f5">Journal</span><span class="brand-trends" style="color:#f7b731">Trends</span>
</div>
<div class="brand-tagline">Choose journals wisely.</div>
</div>
</a>
<span class="topbar-spacer"></span>
<a class="topbar-link" href="/blog/unknown-country-coverage.html">Blog</a>
<button class="topbar-link" id="nav-about" type="button">About</button>
</nav>
<header class="app-header">
<h1>Publication trends for any academic journal</h1>
<p class="subtitle">
Paste an ISSN. The page fetches publication metadata from
<a href="https://openalex.org" target="_blank" rel="noopener">OpenAlex</a>
and renders country, institution, author, and
<a href="https://www.irit.fr/~Guillaume.Cabanac/problematic-paper-screener" target="_blank" rel="noopener">Problematic Paper Screener</a>
flag trends — all in your browser.
</p>
</header>
<!-- ── About modal (opened from menu) ────────────────────────────── -->
<div class="modal-backdrop" id="about-modal" role="dialog" aria-modal="true" aria-labelledby="about-title">
<div class="modal modal-wide">
<h2 id="about-title">About journal-trends</h2>
<p>
<strong>journal-trends</strong> is a small, free, open-data tool that
visualises publication-trend statistics for any academic journal indexed
in <a href="https://openalex.org" target="_blank" rel="noopener">OpenAlex</a>.
Paste an ISSN and the page fetches the journal's publication metadata
from OpenAlex and renders interactive country, institution, author,
and Problematic-Paper-Screener (PPS) flag trends.
</p>
<h3>How it works</h3>
<ul class="about-list">
<li>The browser hits the OpenAlex API directly to fetch the journal's
works (a few seconds for small journals, longer for very large ones).</li>
<li>A small companion backend caches the rolled-up aggregations per
ISSN so subsequent visitors get the same view instantly.</li>
<li>The backend also joins per-paper DOIs against a copy of the
Problematic Paper Screener dataset and stores per-journal PPS
roll-ups alongside the OpenAlex aggregation.</li>
<li>Loaded journals deep-link via <code>?issn=<issn></code> in the
URL — bookmark or share the link.</li>
</ul>
<h3>Data sources & citations</h3>
<p>
<strong>Publication data — <a href="https://openalex.org" target="_blank" rel="noopener">OpenAlex</a></strong><br>
<span class="muted">Priem, J., Piwowar, H., & Orr, R. (2022). OpenAlex:
A fully-open index of scholarly works, authors, venues, institutions,
and concepts. ArXiv.
<a href="https://arxiv.org/abs/2205.01833" target="_blank" rel="noopener">arxiv.org/abs/2205.01833</a></span>
</p>
<p>
<strong>Problematic-paper flags — <a href="https://dbrech.irit.fr/pls/apex/f?p=9999:1" target="_blank" rel="noopener">The Problematic Paper Screener</a></strong><br>
<span class="muted">Cabanac, G., Labbé, C., & Magazinov, A. (2022).
The 'Problematic Paper Screener' automatically selects suspect
publications for post-publication (re)assessment. arXiv.
<a href="https://arxiv.org/abs/2210.04895" target="_blank" rel="noopener">arxiv.org/abs/2210.04895</a></span>
</p>
<h3>License & source code</h3>
<p>
Journal Trends is free, open-source software released under the
<a href="https://opensource.org/licenses/MIT" target="_blank" rel="noopener">MIT License</a>.
The codebase lives at
<a href="https://github.com/Journal-Trends" target="_blank" rel="noopener">github.com/Journal-Trends</a>
— bug reports, feature requests, and pull requests are welcome.
</p>
<h3>Disclaimer</h3>
<p class="disclaimer">
This site is based on third-party data — primarily
<strong>OpenAlex</strong>, a community-maintained open dataset that may
contain inaccuracies, omissions, or out-of-date records — and on the
Problematic Paper Screener, whose flags are best-effort indicators of
suspect publications. <strong>A flag is not proof of misconduct, and
the absence of a flag is not proof of correctness.</strong> The
information shown here is provided for research and educational
purposes only. We make <strong>no warranty</strong> as to its accuracy,
completeness, or fitness for any purpose, and accept <strong>no
responsibility or liability</strong> for any decisions or conclusions
drawn from the information presented.
</p>
<div class="modal-actions">
<button class="btn primary" id="about-close-btn">Close</button>
</div>
</div>
</div>
<!-- ISSN input -->
<div class="search-wrap">
<div class="search-row">
<input
type="text"
id="search-input"
class="search-input"
placeholder="Type journal name or ISSN (e.g. Cell, 0092-8674)"
autocomplete="off"
spellcheck="false"
aria-label="Journal name or ISSN">
<button class="btn primary" id="search-lookup-btn">Lookup</button>
</div>
<div class="error hidden" id="issn-error" style="margin-top:10px"></div>
<div class="autocomplete-list" id="autocomplete-list" role="listbox"></div>
</div>
<!-- Selected source banner -->
<div class="selected-source" id="selected-source">
<div>
<div class="name" id="selected-source-name">—</div>
<div class="meta" id="selected-source-meta">—</div>
<div class="meta last-updated hidden" id="selected-source-updated" title=""></div>
</div>
<div class="actions">
<button class="btn" id="selected-clear-btn">Change</button>
<button class="btn primary" id="selected-fetch-btn">Fetch & analyze</button>
</div>
</div>
<!-- Scopus indexing card (populated by src/ui/scopus-card.js) -->
<div id="scopus-card-host" class="hidden"></div>
<!-- Error banner -->
<div class="error hidden" id="error-banner"></div>
<!-- Progress -->
<div class="progress-wrap" id="progress">
<div class="progress-status">
<span id="progress-label">Preparing…</span>
<span class="pct" id="progress-pct">0%</span>
</div>
<div class="progress-bar"><div class="progress-bar-fill" id="progress-fill"></div></div>
</div>
<!-- Tabs + chart panels -->
<div class="tabs-wrap" id="tabs-wrap">
<div class="tabs" role="tablist">
<button class="tab active" data-tab="country" role="tab">Country trends</button>
<button class="tab" data-tab="institution" role="tab">Institution trends</button>
<button class="tab" data-tab="author" role="tab">Author trends</button>
<button class="tab" data-tab="pps" role="tab">PPS</button>
</div>
<div class="tab-panel active" id="tab-country" role="tabpanel">
<div class="controls">
<span class="controls-label">View:</span>
<button class="btn active" id="country-mode-pct">Stacked %</button>
<button class="btn" id="country-mode-abs">Absolute</button>
<label class="infer-toggle hidden" id="country-infer-toggle"
title="Recover country info for Unknown papers using each author's affiliation history">
<input type="checkbox" id="country-infer-check" checked>
<span>Infer Unknown</span>
</label>
<button class="btn danger hidden" id="country-clear-pins">✕ Clear pins</button>
</div>
<div class="legend-wrap" id="country-legend"></div>
<div class="charts-grid">
<div class="card">
<div class="card-title">Country share per year — fractional counting</div>
<div class="canvas-wrap"><canvas id="country-bar"></canvas></div>
</div>
<div class="card">
<div class="card-header-row">
<div class="card-title" id="country-line-title">Papers published per year</div>
<div class="card-controls">
<button class="btn danger hidden" id="mix-clear-pins">✕ Clear pins</button>
</div>
</div>
<div class="legend-wrap hidden" id="mix-legend"></div>
<div class="canvas-wrap"><canvas id="country-line"></canvas></div>
</div>
</div>
</div>
<div class="tab-panel" id="tab-institution" role="tabpanel">
<div class="controls">
<span class="controls-label">Country:</span>
<select class="country-select" id="institution-country"></select>
<span class="controls-label" style="margin-left:14px">View:</span>
<button class="btn active" id="institution-mode-pct">Stacked %</button>
<button class="btn" id="institution-mode-abs">Absolute</button>
</div>
<div class="legend-wrap" id="institution-legend"></div>
<div class="charts-grid">
<div class="card">
<div class="card-title">Top 20 institutions per year — stacked, fractional counting</div>
<div class="canvas-wrap canvas-wrap-lg"><canvas id="institution-bar"></canvas></div>
</div>
<div class="card">
<div class="card-title">Top 20 institutions per year — trendlines</div>
<div class="canvas-wrap canvas-wrap-lg"><canvas id="institution-line"></canvas></div>
</div>
</div>
</div>
<div class="tab-panel" id="tab-pps" role="tabpanel">
<div class="pps-status muted" id="pps-status"></div>
<div class="pps-empty hidden" id="pps-empty">
<p>This source has no PPS data attached.</p>
<p class="muted" style="font-size:0.78rem;margin-top:6px">
That happens when the journal was cached before the PPS dataset was loaded
on the backend. Re-running a fresh fetch (clear local cache, re-Lookup) will
populate it.
</p>
</div>
<div class="charts-grid pps-grid hidden" id="pps-grid">
<!-- Card 1: flagged share year-on-year -->
<div class="card">
<div class="card-title">Flagged share, year on year</div>
<div class="canvas-wrap canvas-wrap-sm"><canvas id="pps-flagged"></canvas></div>
</div>
<!-- Card 2: detector composition -->
<div class="card">
<div class="card-header-row">
<div class="card-title">Detector composition, year on year (top 15)</div>
<div class="card-controls">
<button class="btn active" id="pps-detector-mode-pct">Stacked %</button>
<button class="btn" id="pps-detector-mode-abs">Absolute</button>
</div>
</div>
<div class="legend-wrap" id="pps-detector-legend"></div>
<div class="canvas-wrap canvas-wrap-md"><canvas id="pps-detector"></canvas></div>
</div>
<!-- Card 3: country share of flagged papers -->
<div class="card">
<div class="card-header-row">
<div class="card-title">Country share of flagged papers, year on year (top 15 + Other)</div>
<div class="card-controls">
<button class="btn active" id="pps-country-mode-pct">Stacked %</button>
<button class="btn" id="pps-country-mode-abs">Absolute</button>
</div>
</div>
<div class="legend-wrap" id="pps-country-legend"></div>
<div class="canvas-wrap canvas-wrap-md"><canvas id="pps-country"></canvas></div>
</div>
<!-- Card 4: institution share within country -->
<div class="card">
<div class="card-header-row">
<div class="card-title">Institution share of flagged papers, year on year (top 15 + Other)</div>
<div class="card-controls">
<span class="controls-label">Country:</span>
<select class="country-select" id="pps-institution-country"></select>
<button class="btn active" id="pps-institution-mode-pct">Stacked %</button>
<button class="btn" id="pps-institution-mode-abs">Absolute</button>
</div>
</div>
<div class="legend-wrap" id="pps-institution-legend"></div>
<div class="canvas-wrap canvas-wrap-lg"><canvas id="pps-institution"></canvas></div>
</div>
</div>
</div>
<div class="tab-panel" id="tab-author" role="tabpanel">
<div class="controls">
<span class="controls-label">Show top:</span>
<button class="btn" data-author-top="10">10</button>
<button class="btn active" data-author-top="20">20</button>
<button class="btn" data-author-top="30">30</button>
</div>
<div class="legend-wrap" id="author-legend"></div>
<div class="card">
<div class="card-title">Top authors by paper count — presence counting</div>
<div class="canvas-wrap canvas-wrap-lg"><canvas id="author-line"></canvas></div>
</div>
</div>
</div>
<div id="tooltip"></div>
<!-- Ticker + Recently-checked block, near the bottom -->
<div class="ticker" id="journals-ticker" aria-live="polite">
<span class="ticker-count" id="ticker-journals">—</span>
<span class="ticker-label">journals containing</span>
<span class="ticker-count" id="ticker-papers">—</span>
<span class="ticker-label">papers analyzed using Journal Trends.</span>
</div>
<!-- Recently checked journals (top 5 by updated_at, fetched from backend) -->
<section class="recent-wrap hidden" id="recent-wrap" aria-labelledby="recent-title">
<div class="recent-title" id="recent-title">Recently checked</div>
<div class="recent-list" id="recent-list" role="list"></div>
</section>
<!-- v0.19 — sibling "follow / feedback / contribute" row.
Three small CTA blocks that share the same visual treatment as the
original LinkedIn block, just laid out side-by-side and wrapped to a
second row on narrow viewports. -->
<div class="follow-row">
<div class="follow-us">
<span>Follow us on</span>
<a class="follow-linkedin"
href="https://www.linkedin.com/company/journal-trends/?viewAsMember=true"
target="_blank" rel="noopener"
aria-label="Follow Journal Trends on LinkedIn">
<svg viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" focusable="false">
<path fill="#0a66c2"
d="M20.5 2h-17A1.5 1.5 0 0 0 2 3.5v17A1.5 1.5 0 0 0 3.5 22h17a1.5 1.5 0 0 0 1.5-1.5v-17A1.5 1.5 0 0 0 20.5 2zM8 19H5v-9h3v9zM6.5 8.25a1.75 1.75 0 1 1 1.8-1.75 1.78 1.78 0 0 1-1.8 1.75zM19 19h-3v-4.74c0-1.42-.6-1.93-1.38-1.93A1.74 1.74 0 0 0 13 14.19a.66.66 0 0 0 0 .14V19h-3v-9h2.9v1.3a3.11 3.11 0 0 1 2.7-1.4c1.55 0 3.36.86 3.36 3.66V19z"/>
</svg>
</a>
<span>for updates.</span>
</div>
<div class="follow-us">
<span>Send us</span>
<a class="follow-feedback"
href="https://docs.google.com/forms/d/e/1FAIpQLSfFXn89994TW6iv5yI_ghjMpjHxFjaNQk8XdLtg_fw1t__LUQ/viewform"
target="_blank" rel="noopener"
aria-label="Share feedback via Google Form">
<svg viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" focusable="false">
<path fill="#26de81"
d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H7l-5 4V6c0-1.1.9-2 2-2zm2 4v2h12V8H6zm0 4v2h12v-2H6z"/>
</svg>
</a>
<span>— bug reports, requests, ideas.</span>
</div>
<div class="follow-us">
<span>Contribute on</span>
<a class="follow-github"
href="https://github.com/Journal-Trends"
target="_blank" rel="noopener"
aria-label="Contribute on GitHub">
<svg viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" focusable="false">
<path fill="#c9d1d9"
d="M12 2C6.48 2 2 6.58 2 12.26c0 4.5 2.87 8.32 6.84 9.67.5.1.68-.22.68-.49 0-.24-.01-.88-.01-1.72-2.78.62-3.37-1.36-3.37-1.36-.45-1.18-1.11-1.5-1.11-1.5-.91-.63.07-.62.07-.62 1.01.07 1.54 1.06 1.54 1.06.9 1.56 2.35 1.11 2.92.85.09-.66.35-1.11.63-1.37-2.22-.26-4.55-1.14-4.55-5.07 0-1.12.39-2.04 1.03-2.76-.1-.26-.45-1.3.1-2.72 0 0 .84-.27 2.75 1.05A9.4 9.4 0 0 1 12 7.34c.85.005 1.71.12 2.51.34 1.91-1.32 2.75-1.05 2.75-1.05.55 1.42.2 2.46.1 2.72.64.72 1.03 1.64 1.03 2.76 0 3.94-2.34 4.81-4.57 5.06.36.32.68.94.68 1.9 0 1.37-.01 2.48-.01 2.82 0 .27.18.6.69.49A10.04 10.04 0 0 0 22 12.26C22 6.58 17.52 2 12 2z"/>
</svg>
</a>
<span>— pull requests welcome.</span>
</div>
</div>
<!-- Project license — visible on the homepage and again in the footer. -->
<div class="license-line">
Journal Trends is free, open-source software released under the
<a href="https://opensource.org/licenses/MIT" target="_blank" rel="noopener">MIT License</a>.
</div>
<!-- ── Visible FAQ — mirrors the FAQPage JSON-LD above so crawlers see ──
the same content rendered in the DOM. Native <details> accordions
keep the page tidy while remaining crawlable in their collapsed
state. Targets common search-engine queries:
"who is behind journal trends" / "India Research Watch"
"which journal should I publish in"
"is journal trends free"
"compare journals before submitting"
"is this journal predatory"
"problematic paper screener" / "PPS flags"
"journal trends vs Scopus / Web of Science / Dimensions" -->
<section class="faq" aria-labelledby="faq-title">
<h2 class="faq-title" id="faq-title">Common questions</h2>
<details class="faq-item">
<summary>Who is the team behind this?</summary>
<p>This is an open-source project led by
<a href="https://irw.co.in" target="_blank" rel="noopener">India Research Watch (IRW)</a>
and its founder
<a href="https://www.linkedin.com/in/achal-agrawal-phd-42331855/" target="_blank" rel="noopener">Achal Agrawal</a>, part of
<em>Nature's 10</em> — the list of people who impacted science the
most in 2025. It builds on the expertise of the sleuth community
in reading research-integrity signals in journals. Achal maintains
the codebase with (more than) a little help from
<a href="https://claude.com/product/claude-code" target="_blank" rel="noopener">Claude Code</a>.</p>
</details>
<details class="faq-item">
<summary>Which journal should I publish in?</summary>
<p>Choosing where to publish is one of the most consequential
decisions in academic research. Journal Trends helps you analyze
journal trends and visualize any abnormal patterns. Look for
healthy contributor diversity, steady (not exploding) growth, and
a low PPS flag rate.</p>
</details>
<details class="faq-item">
<summary>Is Journal Trends free? What is the catch?</summary>
<p>Journal Trends is a free, no-signup tool that pulls publication
metadata directly from OpenAlex and renders it as interactive
charts in your browser. There's no paywall or trial. Every chart
can be downloaded as a PNG or shared via a journal-specific URL.
There is no catch — it's a community-driven initiative.</p>
</details>
<details class="faq-item">
<summary>How can I see publication trends for a specific journal?</summary>
<p>Paste the journal's <abbr title="International Standard Serial Number">ISSN</abbr>
into the search box at the top of this page. The tool fetches the
journal's papers from OpenAlex (or uses the backend cache if
another visitor has already loaded it) and renders four tabs:
<strong>Country trends</strong>, <strong>Institution trends</strong>,
<strong>Author trends</strong>, and <strong>Problematic Paper
Screener (PPS)</strong> flag breakdowns.</p>
</details>
<details class="faq-item">
<summary>What is the Problematic Paper Screener (PPS)?</summary>
<p>The
<a href="https://www.irit.fr/~Guillaume.Cabanac/problematic-paper-screener"
target="_blank" rel="noopener">Problematic Paper Screener</a>
is a community-maintained project by Cabanac, Labbé and Magazinov
(2022) that automatically flags suspect publications using detectors
like tortured phrases, citejacking, retraction signals, and
<em>feet of clay</em> (clayFeet). Journal Trends overlays PPS flags
onto each journal's profile so you can see flag rates over time, the
detector mix, and which countries and institutions account for the
flagged work.</p>
</details>
<details class="faq-item">
<summary>Is this journal predatory?</summary>
<p>Journal Trends doesn't label journals as "predatory" — the term
is contested. But it surfaces three signals that often correlate
with predatory practices: a huge increase in publication volume,
heavy concentration of papers from a few countries, institutions
or authors, and elevated Problematic Paper Screener flag rates.
You can interpret the data and reach your own conclusions.</p>
</details>
<details class="faq-item">
<summary>Which countries publish the most in a given journal?</summary>
<p>Each journal page includes a Country trends tab showing
year-on-year publication counts and percentages by country, using
fractional counting for multi-country papers (each paper splits
credit equally between authors' countries). Click any country in
the legend to pin its highlight across all charts and the tooltip.</p>
</details>
<details class="faq-item">
<summary>How is Journal Trends different from Scopus / Web of Science / Dimensions?</summary>
<p>Journal Trends is free, open-data, and runs entirely in your
browser. It uses
<a href="https://openalex.org" target="_blank" rel="noopener">OpenAlex</a>
(a fully-open scholarly index of 250M+ works) and the Problematic
Paper Screener. It is not a replacement for commercial bibliometric
databases, but a free complementary tool focused on country,
institution and author trends and on integrity signals. Its sole
purpose is to help researchers be more informed while choosing
journals.</p>
</details>
<details class="faq-item">
<summary>Can I share a link to a specific journal?</summary>
<p>Yes. Every loaded journal lives at its own SEO-friendly URL of
the form <code>journaltrends.com/journal/<slug>-<issn></code> —
for example
<a href="/journal/reviews-of-modern-physics-0034-6861"><code>/journal/reviews-of-modern-physics-0034-6861</code></a>.
Bookmark or share that URL; opening it auto-loads the same view
and the share-preview card on LinkedIn / X / Slack shows the
journal-specific country chart as the thumbnail. Each chart card
also has its own <strong>Share</strong> button (top-right) that
posts the individual chart directly to LinkedIn or X, or saves the
chart image for Instagram.</p>
</details>
</section>
<footer class="attributions">
<div class="attr-block">
<div class="attr-label">Publication data</div>
<div class="attr-body">
<a href="https://openalex.org" target="_blank" rel="noopener">OpenAlex</a>
— <span class="attr-cite">
Priem, J., Piwowar, H., & Orr, R. (2022). OpenAlex: A fully-open
index of scholarly works, authors, venues, institutions, and concepts.
ArXiv. <a href="https://arxiv.org/abs/2205.01833"
target="_blank" rel="noopener">arxiv.org/abs/2205.01833</a>
</span>
</div>
</div>
<div class="attr-block">
<div class="attr-label">Problematic-paper flags</div>
<div class="attr-body">
<a href="https://dbrech.irit.fr/pls/apex/f?p=9999:1"
target="_blank" rel="noopener">The Problematic Paper Screener (PPS)</a>
— <span class="attr-cite">
Cabanac, G., Labbé, C., & Magazinov, A. (2022). The 'Problematic
Paper Screener' automatically selects suspect publications for
post-publication (re)assessment. arXiv.
<a href="https://arxiv.org/abs/2210.04895"
target="_blank" rel="noopener">arxiv.org/abs/2210.04895</a>
</span>
</div>
</div>
<div class="attr-block">
<div class="attr-label">License</div>
<div class="attr-body">
Journal Trends is free, open-source software released under the
<a href="https://opensource.org/licenses/MIT" target="_blank" rel="noopener">MIT License</a>.
Source code:
<a href="https://github.com/Journal-Trends" target="_blank" rel="noopener">github.com/Journal-Trends</a>.
</div>
</div>
<div class="attr-block disclaimer-block">
<div class="attr-label">Disclaimer</div>
<div class="attr-body disclaimer">
Data is sourced from OpenAlex (a community-maintained open dataset)
and the Problematic Paper Screener. Both may contain inaccuracies; PPS
flags are indicators, not proof of misconduct. The information here is
provided for research and educational purposes only with no warranty.
We accept no responsibility or liability for decisions based on it.
See <button class="link-btn" id="footer-about-link" type="button">About</button>
for the full disclaimer.
</div>
</div>
</footer>
<!-- Absolute path so the SPA module loads correctly on sub-path URLs
(e.g. /journal/<slug>-<issn>). -->
<script type="module" src="/src/main.js"></script>
</body>
</html>