{
  "schemaVersion": "1.0",
  "published": "2026-07-20",
  "contractFields": {
    "processing": "Where computation or lookup happens.",
    "outboundRequests": "Data sent to a named third party after a user action; an empty list means no tool lookup request.",
    "notChecked": "Material facts the tool cannot establish.",
    "decisionBoundary": "The decision the output must not make on the user's behalf."
  },
  "tools": [
    {
      "id": "phd-timeline-planner",
      "name": "PhD Timeline Planner",
      "url": "/tools/phd-timeline-planner/",
      "status": "production",
      "methodVersion": "1.0",
      "reviewed": "2026-07-20",
      "purpose": "Turn a registration date and pace choice into a printable milestone sequence.",
      "processing": "local-browser",
      "outboundRequests": [],
      "sources": [{"name": "UGC (Minimum Standards and Procedure for Award of Ph.D. Degree) Regulations, 2022", "url": "https://www.ugc.gov.in/", "access": "official source; users must locate and confirm the current regulation and institutional ordinance"}],
      "outputs": ["dated milestone table", "six-year regulatory maximum marker", "printable view"],
      "notChecked": ["university-specific ordinances", "approved extensions", "supervisor or committee availability", "institutional processing time"],
      "limitations": "Milestone timing beyond the national minimum and maximum is a planning sequence, not a regulatory deadline schedule.",
      "decisionBoundary": "The plan does not determine eligibility to submit or override a university ordinance.",
      "userDataStorage": "No registration date or pace choice is sent to Gurjas."
    },
    {
      "id": "sem-sample-size-calculator",
      "name": "SEM Planning Bounds Explorer",
      "url": "/tools/sem-sample-size-calculator/",
      "status": "production",
      "methodVersion": "1.1",
      "reviewed": "2026-07-20",
      "purpose": "Compare three disclosed SEM sample-planning approximations.",
      "processing": "local-browser",
      "outboundRequests": [],
      "sources": [{"name": "Method references listed on the tool page", "url": "/tools/sem-sample-size-calculator/#main", "access": "public citations"}],
      "outputs": ["three approximation values", "largest displayed bound", "copyable planning note"],
      "notChecked": ["model degrees of freedom", "target effect or fit statistic", "estimator", "distribution", "missingness", "non-independence", "convergence", "model misspecification"],
      "limitations": "The approximations are educational planning bounds and are not a model-specific analytic or Monte Carlo power analysis.",
      "decisionBoundary": "The largest displayed value is not a universally sufficient sample size.",
      "userDataStorage": "No entered parameters are sent to Gurjas."
    },
    {
      "id": "reliability-validity-kit",
      "name": "Reliability and Convergent Validity Calculator",
      "url": "/tools/reliability-validity-kit/",
      "status": "production",
      "methodVersion": "1.1",
      "reviewed": "2026-07-20",
      "purpose": "Calculate composite reliability, average variance extracted and Cronbach's alpha with explicit data checks.",
      "processing": "local-browser",
      "outboundRequests": [],
      "sources": [{"name": "McNeish (2018), Thanks Coefficient Alpha, We'll Take It From Here", "url": "https://doi.org/10.1037/met0000144", "access": "DOI record"}],
      "outputs": ["composite reliability", "average variance extracted", "Cronbach's alpha", "data warnings"],
      "notChecked": ["confidence intervals", "omega", "ordinal alpha", "item-total diagnostics", "discriminant validity", "HTMT", "model fit", "measurement invariance"],
      "limitations": "Displayed thresholds are common reference markers, not universal pass/fail rules; alpha alone does not establish unidimensionality or reliability.",
      "decisionBoundary": "The output does not establish that an instrument is valid or suitable for a particular study.",
      "userDataStorage": "Raw responses and loadings remain in the user's browser."
    },
    {
      "id": "predatory-journal-checker",
      "name": "Journal Evidence Checker",
      "url": "/tools/predatory-journal-checker/",
      "status": "production",
      "methodVersion": "2.0",
      "reviewed": "2026-07-20",
      "purpose": "Assemble source-labelled journal identity, registration, indexing-snapshot and clone-alert evidence.",
      "processing": "direct-third-party-requests plus dated local snapshots",
      "outboundRequests": [
        {"recipient": "OpenAlex", "data": "journal name or ISSN", "trigger": "Search button", "url": "https://api.openalex.org/"},
        {"recipient": "Crossref", "data": "candidate ISSN", "trigger": "automated evidence lookup after Search", "url": "https://api.crossref.org/"},
        {"recipient": "DOAJ", "data": "candidate ISSN", "trigger": "automated evidence lookup after Search", "url": "https://doaj.org/api/v3/docs"}
      ],
      "sources": [
        {"name": "OpenAlex", "url": "https://openalex.org/", "access": "live public API"},
        {"name": "Crossref", "url": "https://www.crossref.org/", "access": "live public API"},
        {"name": "DOAJ", "url": "https://doaj.org/", "access": "live public API"},
        {"name": "Scopus source list", "url": "https://www.scopus.com/sources", "access": "dated local reference snapshot"},
        {"name": "ABDC Journal Quality List", "url": "https://abdc.edu.au/abdc-journal-quality-list/", "access": "dated local reference snapshot"},
        {"name": "Retraction Watch hijacked-journal register", "url": "https://retractionwatch.com/the-retraction-watch-hijacked-journal-checker/", "access": "dated local reference snapshot"}
      ],
      "outputs": ["source-labelled evidence rows", "identity candidate", "13-signal website checklist summary", "manual verification links"],
      "notChecked": ["current website domain", "editorial-board identities", "peer-review conduct", "invoice payee", "Web of Science status", "email authenticity"],
      "limitations": "Database absence can reflect coverage or naming differences. Local indexes can lag official sources. No weighted legitimacy score or automatic verdict is calculated.",
      "decisionBoundary": "The dossier does not decide whether a journal is legitimate or safe to submit to.",
      "userDataStorage": "The query goes directly from the browser to named databases; Gurjas does not receive it. Checklist answers remain in the browser."
    },
    {
      "id": "journal-finder",
      "name": "Literature-neighbour Journal Shortlist",
      "url": "/tools/journal-finder/",
      "status": "beta",
      "methodVersion": "0.2-beta",
      "reviewed": "2026-07-20",
      "purpose": "Find journal-type, ISSN-bearing OpenAlex sources connected to matching literature.",
      "processing": "direct-third-party-requests",
      "outboundRequests": [{"recipient": "OpenAlex", "data": "title, keywords or acknowledged abstract up to 1,200 characters", "trigger": "Find journals button", "url": "https://api.openalex.org/"}],
      "sources": [{"name": "OpenAlex", "url": "https://openalex.org/", "access": "live public API"}],
      "outputs": ["journal-only candidate shortlist", "ISSNs", "matching-work count", "OpenAlex record link"],
      "notChecked": ["current journal scope", "editorial quality", "acceptance probability", "submission fit", "current indexing", "fees"],
      "limitations": "OpenAlex coverage and source classification can be incomplete; matching-work count can favour large journals and is not a quality score.",
      "decisionBoundary": "A displayed source is a literature neighbour to investigate, not an endorsement or submission recommendation.",
      "userDataStorage": "The query goes directly from the browser to OpenAlex; Gurjas does not receive it."
    },
    {
      "id": "apc-checker",
      "name": "Recorded APC Lookup",
      "url": "/tools/apc-checker/",
      "status": "production",
      "methodVersion": "1.1",
      "reviewed": "2026-07-20",
      "purpose": "Report article-processing-charge and open-access fields recorded in OpenAlex.",
      "processing": "direct-third-party-requests",
      "outboundRequests": [{"recipient": "OpenAlex", "data": "journal name or ISSN", "trigger": "Check button", "url": "https://api.openalex.org/"}],
      "sources": [{"name": "OpenAlex", "url": "https://openalex.org/", "access": "live public API"}],
      "outputs": ["disambiguated source candidates", "recorded APC fields", "recorded open-access and DOAJ fields", "works count"],
      "notChecked": ["quoted invoice amount", "journal domain", "payee", "bank details", "acceptance state", "waiver eligibility", "current publisher price"],
      "limitations": "OpenAlex fields can be incomplete, converted or out of date. A fee record is neither an endorsement nor a warning.",
      "decisionBoundary": "The lookup cannot validate an invoice, establish legitimacy or determine whether to pay.",
      "userDataStorage": "The query goes directly from the browser to OpenAlex; Gurjas does not receive it."
    },
    {
      "id": "naac-readiness-scorecard",
      "name": "Institutional Evidence Readiness",
      "url": "/tools/naac-readiness-scorecard/",
      "status": "production",
      "methodVersion": "1.1",
      "reviewed": "2026-07-20",
      "purpose": "Inventory present, partial and missing institutional records across the legacy RAF seven-criteria structure.",
      "processing": "local-browser",
      "outboundRequests": [],
      "sources": [{"name": "NAAC manuals", "url": "https://naac.gov.in/index.php/en/resources/publications/manuals/2-uncategorised/248-affiliated-constituent-colleges-manual-in-multi-languages", "access": "official source; current framework must be confirmed"}],
      "outputs": ["criterion-wise evidence status", "present/partial/missing counts", "remediation priorities", "printable summary"],
      "notChecked": ["record authenticity", "record currency", "cross-system reconciliation", "current BAF/MBGL rules", "accreditation outcome"],
      "limitations": "The questions use a legacy RAF evidence structure and do not reproduce BAF/MBGL scoring. Answers are self-reported, not verified evidence.",
      "decisionBoundary": "No accreditation percentage, grade prediction or official readiness score is calculated.",
      "userDataStorage": "Answers remain in the user's browser."
    },
    {
      "id": "research-readiness-triage",
      "name": "Research Readiness Triage",
      "url": "/tools/research-readiness-triage/",
      "status": "production",
      "methodVersion": "1.0",
      "reviewed": "2026-07-20",
      "purpose": "Turn eight self-reported evidence-control states into a gap register and next-control plan.",
      "processing": "local-browser",
      "outboundRequests": [],
      "sources": [
        {"name": "Gurjas Methods", "url": "/methods/", "access": "public first-party methodology"},
        {"name": "Gurjas Ethics Charter", "url": "/ethics-charter/", "access": "public first-party governance framework"}
      ],
      "outputs": ["not-yet-evidenced control list", "partial-evidence list", "recorded-evidence list", "decision-specific route", "copyable triage record"],
      "notChecked": ["whether a claimed record exists", "domain-specific completeness", "legal or ethics approval", "current regulatory requirements", "statistical adequacy", "evidence quality", "decision-maker acceptance"],
      "limitations": "The inventory is unweighted and self-reported. A not-applicable selection can hide an essential control and must be justified outside the tool.",
      "decisionBoundary": "The output is not a readiness score, verification, ethics decision, risk probability or success prediction.",
      "userDataStorage": "All selections remain in the user's browser and are cleared when the page is closed or refreshed."
    },
    {
      "id": "grant-deadline-tracker",
      "name": "Grant Deadline Tracker",
      "url": "/tools/grant-deadline-tracker/",
      "status": "living-resource",
      "methodVersion": "2026-07 snapshot",
      "reviewed": "2026-07-03",
      "purpose": "Keep selected Indian social-science and interdisciplinary funding calls visible with official links.",
      "processing": "static-page",
      "outboundRequests": [],
      "sources": [
        {"name": "ICSSR announcements", "url": "https://icssr.org/announcements", "access": "official public source"},
        {"name": "ANRF portal", "url": "https://www.anrfonline.in/", "access": "official public source"}
      ],
      "outputs": ["scheme name", "funder", "recorded window or deadline", "review-date status", "official source link"],
      "notChecked": ["eligibility for a particular applicant", "unannounced extensions", "portal-only amendments", "scheme completeness"],
      "limitations": "Deadlines and statuses are dated pointers from selected official announcements and can change without notice.",
      "decisionBoundary": "The tracker does not promise availability or replace the official call and portal.",
      "userDataStorage": "No application or personal data is collected. Following an official link leaves gurjas.org."
    }
  ]
}
