- π Calculate overall GPA using a 7-point scale
- π Visualise GPA trends across semesters
- π₯§ Generate grade distribution charts
- π Analyse mark distributions
- π View detailed course performance breakdowns
- π Process UON transcripts directly from PDF files
- π Calculate Honours WAM by default (2000+ level courses)
- π Additional WAM calculations for reference:
- Cumulative WAM (all courses)
- Level-specific WAM (e.g., 3000+ level courses)
- π Track WAM trends across semesters
- π View mark distribution with WAM thresholds
- π See detailed course-by-course breakdown
- π Process UON transcripts directly from PDF files
A Weighted Average Mark (WAM) is the average mark achieved across all completed units in a program, weighted according to unit value and academic level. Unlike the GPA, which uses grade points, WAM uses the actual percentage marks and applies weighting based on course levels.
The Honours WAM (used for determining honours classification) is calculated using only 2000+ level courses with the following weightings:
- 2000 level courses: Weight = 2
- 3000 level courses: Weight = 3
- 4000/5000/6000 level courses: Weight = 4
- Python 3.8 or higher
pip
(Python package installer)
git clone https://github.com/swazau/UON_GPA.git
cd UON_GPA
setup.bat
git clone https://github.com/swazau/UON_GPA.git
cd UON_GPA
chmod +x setup.sh && ./setup.sh
git clone https://github.com/swazau/UON_GPA.git
cd UON_GPA
python -m venv venv
# Activate the virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
Create a CSV file with your grade data, including:
semester
: e.g., '2023-S1'course_code
: e.g., 'COMP1010'grade
: HD, D, C, P, F, UPmark
: 0-100units
: Credit units
Use samplegrades.csv
as a template. Alternatively, provide an unofficial transcript as a PDF (e.g., transcript.pdf
), and the program will extract the data using the --pdf
flag. For best results, ensure the PDF follows the University of Newcastle format.
Tip: If you would pefer to provide your own csv, use ChatGPT to reformat your transcript into CSV by providing it with samplegrades.csv
and your transcript PDF.
python gpa.py
python wam.py
python gpa.py your_grades_file.csv
python wam.py your_grades_file.csv
python gpa.py transcript.pdf --pdf
python wam.py transcript.pdf --pdf
The --pdf
flag uses transcript_processor
to extract data and generate visualisations.
The program generates:
- Detailed GPA calculations in the console
- Four visualisation files:
grade_distribution.png
: Pie chart showing grade distribution by unitsmark_distribution.png
: Histogram of numerical markscourse_performance.png
: Bar chart of performance by coursegpa_trend.png
: Line chart showing semester and cumulative GPA trends
The program generates:
- Honours WAM calculation (2000+ level courses) prominently displayed
- Additional WAM calculations for reference in the console
- Three visualisation files:
wam_comparison.png
: Bar chart comparing different WAM calculationswam_mark_distribution.png
: Histogram with WAM thresholdswam_trend.png
: Line chart showing semester and cumulative WAM trendshonours_threshold.png
: The Honours Thresholds graph is a custom horizontal bar chart that visually displays where your calculated WAM
Grade | Points | Description |
---|---|---|
HD | 7 | High Distinction |
D | 6 | Distinction |
C | 5 | Credit |
P | 4 | Pass |
F | 0 | Fail |
Grade | Mark Range | Value for WAM |
---|---|---|
HD, D, C, P | 50-100 | Actual percentage mark |
F | 45-49 | Actual percentage mark |
F | 0-44 | Fixed value of 44 |
UP | N/A | Fixed value of 58 |
You can modify the grade points in the GPAVisualiser
class initialisation if your institution uses a different scale.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- University of Newcastle GPA Calculator
- University of Newcastle WAM Calculation Guideline
- Pandas for data manipulation
- Matplotlib and Seaborn for visualisation