Navigation
Tools
Language

31 Countries · Bidirectional · Formula Transparent

The International Academic
Intelligence Platform.

Transparent grade conversion, GPA calculation, and in-depth education system guides for international students, admissions offices, and academic institutions worldwide.

31
Countries
3
Live Tools
961
Conversion Pairs
100%
Formula Transparent

Everything You Need for
International Academic Navigation.

Built for students, administrators, and institutions who need reliable, explainable grade equivalency.

🧮

Modified Bavarian Formula

Official DAAD-approved formula for all conversions to Germany, with complete step-by-step derivation shown.

🎓

Pass/Fail Verdict

Every conversion result shows pass/fail status, performance classification, and contextual interpretation based on destination country rules.

↔️

Fully Bidirectional

All 31 countries are both source and destination. Any-to-any conversion pair is supported.

📖

Education System Guides

Long-form country guides covering degree structure, grading scales, GPA methods, passing marks, and international recognition.

📊

GPA Calculator

Weighted GPA computation across 4.0, 4.3, 4.5, and 5.0 scales. Includes cumulative GPA tracking across semesters.

🌐

Multi-Language Interface

Available in 8 languages. Switch language from the header to access the full platform in your preferred language.

International Grade Converter

Select source and destination countries, enter your grade, and receive a fully transparent conversion with formula breakdown.

Grade Conversion Tool

FORMULA TRANSPARENT
Converted Grade

Conversion Result

PASS

📐 Formula Used

    🔢 Step-by-Step Calculation

    Grade Level Source Scale Destination Scale Classification
    ⚠ Academic Disclaimer: This conversion is provided for informational purposes only. Final grade recognition, equivalency, and admission decisions rest solely with the receiving institution. GradeScope does not represent any official academic body. Results should be verified with your target institution.

    GPA Calculator

    Calculate your GPA across multiple grading scales — 4.0, 4.3, 4.5, or 5.0. Add your courses, assign grades and credits, and get a full weighted breakdown instantly.

    Course Grade Entry

    Course Name Credits Grade

    📈 Cumulative GPA (Optional)

    Enter your existing GPA and credit hours to calculate your new cumulative GPA including these courses.

    Grade Scale Reference 4.0 SCALE
    Letter GradePercentageGrade PointsClassification

    📊 Your GPA Result

    🎓

    Add your courses and click Calculate GPA to see your result.

    Flashcard Study Tool

    Paste your study notes or upload a text file — the tool automatically converts your content into interactive flip flashcards. No AI. Your content, structured your way.

    📝 Your Study Notes

    DETERMINISTIC PARSER
    Split cards by:

    🃏 Flashcard Viewer

    🃏

    Paste your notes and click Generate Flashcards to start studying.

    Your content is parsed locally — nothing leaves your browser.

    Architecture & Schema

    Database design, conversion logic, and folder structure for building GradeScope.

    -- ─────────────────────────────────────────────
    -- GradeScope: Core Database Schema
    -- ─────────────────────────────────────────────
    
    CREATE TABLE countries (
      id              UUID PRIMARY KEY,
      name            VARCHAR(100)   NOT NULL UNIQUE,
      iso_code        CHAR(2)        NOT NULL,
      scale_type      VARCHAR(30),   -- 'percentage','gpa','german','classification'
      min_grade       DECIMAL(6,2),
      max_grade       DECIMAL(6,2),
      passing_grade   DECIMAL(6,2),
      grade_direction VARCHAR(4),    -- 'asc' (higher=better) or 'desc' (lower=better)
      formula_type    VARCHAR(30),   -- 'linear','bavarian','classification'
      special_notes   TEXT,
      created_at      TIMESTAMP DEFAULT NOW()
    );
    
    CREATE TABLE grade_classifications (
      id              UUID PRIMARY KEY,
      country_id      UUID REFERENCES countries(id),
      label           VARCHAR(100),  -- e.g. 'First Class Honours'
      min_percent     DECIMAL(6,2),
      max_percent     DECIMAL(6,2),
      gpa_equivalent  DECIMAL(4,2),
      sort_order      INT
    );
    
    CREATE TABLE conversion_overrides (
      id              UUID PRIMARY KEY,
      src_country_id  UUID REFERENCES countries(id),
      dst_country_id  UUID REFERENCES countries(id),
      formula_type    VARCHAR(30),   -- override formula for this specific pair
      notes           TEXT
    );
    
    CREATE TABLE conversion_log (
      id              UUID PRIMARY KEY,
      src_country_id  UUID,
      dst_country_id  UUID,
      input_grade     DECIMAL(6,2),
      output_grade    DECIMAL(6,2),
      formula_used    VARCHAR(30),
      session_id      UUID,
      created_at      TIMESTAMP DEFAULT NOW()
    );
    
    // ─────────────────────────────────────────────
    // GradeScope: Conversion Logic Architecture
    // ─────────────────────────────────────────────
    
    // 1. Normalize to percentage (0-100)
    function normalizeToPercent(grade, country) {
      if (country.scale_type === 'percentage') {
        return grade; // already 0-100
      }
      if (country.grade_direction === 'desc') {
        // e.g. Germany 1.0=best, 4.0=pass, 5.0=fail
        return ((country.max_grade - grade) /
                (country.max_grade - country.min_grade)) * 100;
      }
      // linear ascending (e.g. Philippines 1.0=best handled separately)
      return ((grade - country.min_grade) /
              (country.max_grade - country.min_grade)) * 100;
    }
    
    // 2. Convert from percentage to destination scale
    function fromPercentToScale(pct, country) {
      if (country.formula_type === 'bavarian') {
        return applyBavarianFormula(pct, country);
      }
      if (country.formula_type === 'classification') {
        return applyClassification(pct, country);
      }
      // linear default
      return country.min_grade +
        ((pct / 100) * (country.max_grade - country.min_grade));
    }
    
    // 3. Modified Bavarian Formula (Germany only)
    // Formula: Xd = 1 + 3 × ((Nmax − Nd) / (Nmax − Nmin))
    // Xd = German grade | Nd = input grade | Nmax = source max | Nmin = source passing
    function applyBavarianFormula(inputGrade, srcCountry) {
      const Nd   = inputGrade;
      const Nmax = srcCountry.max_grade;
      const Nmin = srcCountry.passing_grade;
      const Xd   = 1 + 3 * ((Nmax - Nd) / (Nmax - Nmin));
      return Math.min(4.0, Math.max(1.0, Math.round(Xd * 10) / 10));
    }
    
    // 4. Classification mapping (UK / Ireland)
    function applyClassification(pct, country) {
      const classes = country.grade_classifications;
      return classes.find(c => pct >= c.min_percent && pct <= c.max_percent)
        || classes[classes.length - 1];
    }
    
    // 5. Main entry point
    function convertGrade(grade, srcCountry, dstCountry) {
      const pct    = normalizeToPercent(grade, srcCountry);
      const result = fromPercentToScale(pct, dstCountry);
      return { result, pct, formula: dstCountry.formula_type };
    }
    
    gradescope/
    ├── frontend/
    │   ├── public/
    │   │   ├── index.html
    │   │   └── assets/
    │   ├── src/
    │   │   ├── pages/
    │   │   │   ├── Home.jsx
    │   │   │   ├── tools/
    │   │   │   │   ├── GradeConverter.jsx
    │   │   │   │   └── index.jsx          ← tools directory
    │   │   │   └── blog/
    │   │   │       ├── index.jsx          ← country grid
    │   │   │       └── [country].jsx      ← dynamic country pages
    │   │   ├── components/
    │   │   │   ├── layout/
    │   │   │   │   ├── Header.jsx
    │   │   │   │   ├── Footer.jsx
    │   │   │   │   └── NavDropdown.jsx
    │   │   │   ├── converter/
    │   │   │   │   ├── CountrySelect.jsx
    │   │   │   │   ├── GradeInput.jsx
    │   │   │   │   ├── ResultDisplay.jsx
    │   │   │   │   ├── FormulaBlock.jsx
    │   │   │   │   ├── StepByStep.jsx
    │   │   │   │   └── ScaleTable.jsx
    │   │   │   └── blog/
    │   │   │       ├── CountryCard.jsx
    │   │   │       └── CountryPage.jsx
    │   │   ├── lib/
    │   │   │   ├── conversion/
    │   │   │   │   ├── index.js           ← main entry
    │   │   │   │   ├── linear.js
    │   │   │   │   ├── bavarian.js        ← Germany only
    │   │   │   │   └── classification.js  ← UK/Ireland
    │   │   │   └── countries/
    │   │   │       ├── database.js        ← all 29 countries
    │   │   │       └── scales/
    │   │   │           ├── argentina.js
    │   │   │           ├── germany.js     ← Bavarian config
    │   │   │           ├── uk.js          ← classification config
    │   │   │           └── ...            ← one file per country
    ├── backend/                           ← API (Node/FastAPI)
    │   ├── routes/
    │   │   ├── convert.js
    │   │   └── countries.js
    │   ├── services/
    │   │   └── conversionEngine.js
    │   └── db/
    │       └── migrations/
    ├── content/
    │   └── countries/                     ← MDX blog content
    │       ├── argentina.mdx
    │       ├── germany.mdx
    │       └── ...                        ← one per country
    └── README.md
    
    // ─────────────────────────────────────────────
    // GradeScope: Frontend Architecture Notes
    // ─────────────────────────────────────────────
    
    // Framework: Next.js (App Router) + Tailwind CSS
    // Blog: MDX with gray-matter frontmatter
    // Forms: React Hook Form + Zod validation
    // SEO: next/metadata per page
    
    // Route structure:
    /                        → Home page
    /tools                   → Tools index
    /tools/grade-converter   → Conversion tool
    /tools/gpa-calculator    → (future)
    /blog                    → Country grid
    /blog/[country]          → Dynamic country page
    
    // SEO metadata per country page:
    export const metadata = {
      title: `${country} Grading System Explained | GradeScope`,
      description: `Grade scale, degree structure, passing marks,
        and conversion guide for ${country}.`,
      keywords: [country, 'grading system', 'grade conversion',
                 'academic equivalency'],
      openGraph: { type: 'article', ... }
    }
    
    // Country page structured data (JSON-LD):
    {
      "@type": "Article",
      "name": "Germany Grading System",
      "about": { "@type": "Country", "name": "Germany" }
    }
    

    About GradeScope

    Built for Students
    Who Cross Borders.

    GradeScope is a free international academic intelligence platform designed to make grade conversion, GPA calculation, and education system understanding accessible to every student, institution, and admissions office in the world.

    🎯

    Our Mission

    To eliminate confusion in international academic transitions by providing transparent, formula-driven grade conversions — not black-box guesses. Every result comes with a full explanation of the method used.

    🌍

    Global Coverage

    We support 31 countries and 961 conversion pairs. Whether you're converting a US GPA to a German note, a UK classification to an Australian percentage, or a Nigerian CGPA to a French mention — we've got you covered.

    What Makes Us Different

    Formula Transparent

    Every conversion shows the exact formula — Modified Bavarian, linear interpolation, or classification-based — so you always know how your grade was calculated.

    Pass/Fail Verdict

    We apply each destination country's actual passing threshold — not just a number, but a real academic verdict that matters for admissions and enrollment.

    Fully Free

    GradeScope is completely free to use. No subscriptions, no paywalls on core features. We believe academic tools should be accessible to every student worldwide.

    Multi-Language

    Available in 8 languages including Arabic (RTL), Chinese, German, French, Spanish, Portuguese, and Turkish — so students can navigate in their own language.

    31
    Countries
    961
    Conversion Pairs
    3
    Live Tools
    8
    Languages

    "Grades should be a bridge, not a barrier. GradeScope exists to make sure your academic achievements are understood — wherever in the world you choose to go."

    — THE GRADESCOPE TEAM

    Get In Touch

    We'd Love to
    Hear From You.

    Have a question, suggestion, or just want to say hi? Reach us directly on Instagram — we read every message.

    Find Us On
    @grade_scope
    instagram.com/grade_scope
    💬
    Questions
    Ask us anything about grade conversion or GPA calculations.
    💡
    Suggestions
    Want a new country or feature? We want to know.
    🤝
    Partnerships
    Schools, universities, and institutions are welcome to reach out.

    Legal

    Privacy Policy

    Last updated: February 2026

    Summary: GradeScope does not sell your data, does not use advertising trackers, and does not require an account to use the platform. This policy explains what limited data we may collect and why.

    1. Who We Are

    GradeScope ("we", "us", "our") is an international academic intelligence platform providing free grade conversion, GPA calculation, and education system information. You can reach us via Instagram at @grade_scope.

    2. Information We Collect

    GradeScope is designed to work with minimal data collection. Specifically:

    • Usage Data: We may collect anonymous, aggregated usage statistics (pages visited, tools used) through standard web hosting logs. This data cannot identify you personally.
    • Local Storage: Some settings (like your preferred language) may be stored locally in your browser. This data never leaves your device.
    • Grade Inputs: Grades and GPA values you enter into our tools are processed entirely in your browser and are never transmitted to our servers.
    • Flashcard Content: Notes you paste or upload in the Flashcard Tool are parsed locally in your browser. No content is uploaded or stored on our servers.

    3. Cookies

    GradeScope does not use advertising cookies or third-party tracking cookies. We may use minimal functional cookies or browser local storage to remember your language preference. No personal profiles are built from your usage.

    4. How We Use Information

    Any anonymous usage data collected is used solely to improve the platform — understanding which tools are used most, which countries are searched, and how to prioritise new features. This data is never sold, shared with third parties for commercial purposes, or used to build personal profiles.

    5. Third-Party Services

    GradeScope loads fonts from Google Fonts. Google's own privacy policy applies to those requests. We do not use Google Analytics, Facebook Pixel, or any other advertising or behavioural tracking tools. Our Contact page links to Instagram, which is governed by Meta's privacy policy.

    6. Children's Privacy

    GradeScope is intended for users aged 13 and above. We do not knowingly collect personal data from children under 13. If you believe a child has provided us with personal information, please contact us via Instagram and we will promptly address the concern.

    7. Your Rights

    Depending on your location, you may have rights under GDPR, CCPA, or other privacy laws regarding access to, correction, or deletion of your personal data. Since GradeScope collects virtually no personal data, there is typically nothing to access or delete. For any privacy-related requests, contact us at @grade_scope on Instagram.

    8. Changes to This Policy

    We may update this Privacy Policy from time to time. When we do, we will update the "Last updated" date at the top of this page. We encourage you to review this policy periodically. Continued use of GradeScope after any changes constitutes your acceptance of the updated policy.

    9. Contact Us

    For any questions about this Privacy Policy or your data, please reach out to us on Instagram: @grade_scope