Automatic Summation and Grading in Markbook and Internal Assessment and Differences between them

Please what is the difference between markbook and internal assessment? We noticed that both does almost the samething. After entering student scores/marks in markbook or internal assessment, please how can we setup Gibbon to automatically calculates the total scores/marks for a particular subject in a class and automatically grades that subject for the students in that class. For example, if a student has 15 marks as test and 60 marks as exam, how can Gibbon automatically sum it to 75 marks and also automatically grades it as
“A”? Or must the teacher also enters the total marks and also the grades manually by themselves?
We also discovered that the markbook can be set up to have a “cumulative” column. What’s the work of the cumulative column and why is it that after all we did, the column is blank? What are we missing and what kind of data should we expect in that column?


The Markbook is designed for teachers and departments to manage their own assessment: they create and populate the columns. It is designed for ongoing assessment that is not school-wide. The Internal Assessment module is somewhat different, in that an administrator would create columns for the whole school (or some parts of it), in which more formal assessment data would be stored.

The Internal Assessment module does not support summation of grades, but the Markbook does (thanks to some brilliant work by @skuipers). You can Enable Column Weighting in Markbook Settings (under Admin > School Admin in the main menu), which then allows totals to be calculated.

In terms of the blank column you are seeing, perhaps you have not set column weightings for the individual columns in question (after enabling the option above if needed).



Now if markbook is not school-wide but internal assessment is and markbook can be summed up to get total but internal assessment can not be summed up, so if we allow the teachers to use the markbook and summed up their total and automatically grade (is this possible?) the student based on that total, how can the markbook be linked up with the internal assessment so that the internal assessment can extract scores and grades from certain columns from the markbook? Is this possible? Do you understand my question? I mean can the internal assessment extract scores and grades from the markbook? If yes, how? And after extraction can it be used for final student result reporting or report card? How? Please which is best between markbook and internal assessment to be used for final student result or assessment reporting? Or can any of them (markbook or internal assessment) be used for final assessment reporting or report card?

Is it possible to restrict teachers from changing the scores and grades after the final student result report or assessment reporting has been made? Do you understand this question?

Can the markbook automatically sum up the total and automatically grade the students in a particular subject/class based on that total? Let’s say if grade “A” is between score 70 to 100. If a student’s total is 75, can the markbook automatically grade the student grade “A”? Also, is there a way we could write somewhere in the report the meaning of the grade. I mean saying 70 to 100 is grade “A”, 50 to 69 is grade “B”, 40 to 49 is grade “C” and so on?

Also, can markbook and internal assessment be used at the same time in an academic year or just one in a particular academic year?

You said: “The Internal Assessment module is somewhat different, in that an administrator would create columns for the whole school (or some parts of it), in which more formal assessment data would be stored.”
Please how do mean “… (or some parts of it)…”? Are you saying that the teachers or department can also create some columns in the internal assessment?
Please what do you mean by “…in which more formal assessment data would be stored.”? Are you saying that the markbook cannot be used for final assessment reporting and that for that to happen (some or all) the scores and grades in the markbook must be transfered to the internal assessment in order to be stored as formal assessment data for final assessment reporting or report card? If yes, how can the transfer of the scores and grades be automatically transfered from the markbook to the internal assessment so that final assessment reporting can be done? Also, how can final assessment reporting be done?

Please what is column weighting all about in the markbook? This is really confusing. For a secondary school that doesn’t use weighing, what is the ideal weighing value to be used for the individual column? I was thinking its supposed to be one weighting value for the whole columns for a particular subject in a class and that weighting is used only in the universities?
What I meant by summation is the automatic total for all the individual scores in the individual columns (in a separate column) and also automatic grades based on the total (probably on another column). I hope you understand what am saying now.

Do you understand my questions? Please am sorry if am asking too many questions. Your response and clarifications would be of great help to the school.

Frank, these are a lot of questions! Please keep in mind we only have limited time and resources to offer, and somethings you will need to try and work out on your own.

For your first questions, I would look at see if you can use the Data Admin module on our Extend page to export from the Markbook and import back into Internal Assessment. I am not sure if this is possible, but worth investigating. Alternatively, I am sure Rapid36 can customise their reporting software to pull the cumulative total from the Markbook and put it into a report for you.

As I mentioned, ICHK is a lot less focused on academic measurement, and so we have not developed in this way.

In terms of Internal Assessment, you can adjust the permissions (using Manage Roles and Manage Permissions in Admin > User Admin) to give anyone access to create assessment columns, if you want…

In term of weightings in the Markbook, I don’t have a complete answer, you will need to seek input from @skuipers. At ICHK we have weightings and totals disabled, and so I only have some knowledge of this functionality.


Thank you so much for your response.
I had been trying out weighing, Cummulative column and Final Grade column but am still REALLY confused as they’re not giving what am expectin.
What we need is how to automatically total the scores (e.g. exam + test scores = automatic total score) and automatically grade (e.g. automatic grade “A” if a students total score is between 70 and 100) each student in a course or class.
Please how do I contact @skuipers ?


No problem : )

@skuipers will be notified as you mentioned her, and when she is back online (she is on leave at the moment), I am sure she will get back in touch with you.

One thing to note with the cumulative scores, is that a column does not get counted until it is “live”: for this to happen you need to set a Go Live date in the column (either when you edit it or enter data), and that date needs to have been reached.

Does that fix the issue for you?


Thank you for your reply.
I think you got my question wrongly. I didn’t say the Cummulative column isn’t working but I said it isn’t giving expected values. It’s giving more of like the mean of all the scores. This isn’t what we want to achieve. What we want to achieve is to get the total scores for each students (e.g. individual scores in test column + individual scores in exam column) and then the grade (e.g. grade “A”) each student based on each total score .
Please do you understand my question up to this level?

Happy New Year.


Sorry for the misunderstanding. In this case we will need to wait for input from @skuipers who should be back any day now.

I do know that under Weightings (see image below for link location), once you establish your weightings, it will show you a formula of what is being calculated. Perhaps this will help understand what is going on?



Thanks for your reply.
Yes I know about that and I have tried it but it’s not solving our problem. My previous post contains what we want to achieve but the weighting is not giving us expected results.
I hope @skuipers will be here soon so this would be solved.
Thank you so much for your help, Ross.

Hi Frank,

Marks and grading can certainly be complex yet necessary for many schools, so I appreciate the situation you’re in.

The ‘Enable Column Weighting’ feature in the markbook calculates an average rather than a sum of grades, and the weightings relate to how the average is calculated. It is also currently limited to percent grade scales, and is off by default because this method does not nessesarily apply to all schools.

It sounds like your school requires a sum rather than an average, so the cumulative marks and weightings may not be the best fit. The markbook provides an Export to Excel option, which could be used to calculate the sums & grades you need using spreadsheets outside Gibbon.

Calculating the sums and letter grades could also potentially be done through a custom query in the Query Builder module. The following is an example of a query that would sum up Test and Exam marks for each student’s courses, and provide a letter grade (similar to the example you provided):

courseName as 'Course', 
studentName as `Student`, 
test as 'Test Marks', 
exam as 'Exam Marks', 
(test+exam) as 'Total', 
(CASE WHEN (test+exam) >= 80 THEN 'A' 
    WHEN (test+exam) >= 65 THEN 'B' 
    WHEN (test+exam) >= 50 THEN 'C' 
    ELSE 'D' END) as 'Grade' 
    gibbonCourse.nameShort as courseName, 
    CONCAT(surname, ', ', preferredName) as studentName, 
    IFNULL(SUM((CASE WHEN gibbonMarkbookColumn.type='Test' THEN CAST(attainmentValue AS UNSIGNED) END)),0) as `test`, 
    IFNULL(SUM((CASE WHEN gibbonMarkbookColumn.type='Exam' THEN CAST(attainmentValue AS UNSIGNED) END)),0) as `exam`
    FROM gibbonMarkbookColumn
    JOIN gibbonCourseClass ON ( gibbonMarkbookColumn.gibbonCourseClassID = gibbonCourseClass.gibbonCourseClassID )
    JOIN gibbonCourse ON ( gibbonCourseClass.gibbonCourseID = gibbonCourse.gibbonCourseID )
    JOIN gibbonMarkbookEntry ON ( gibbonMarkbookEntry.gibbonMarkbookColumnID = gibbonMarkbookColumn.gibbonMarkbookColumnID )
    JOIN gibbonPerson ON ( gibbonMarkbookEntry.gibbonPersonIDStudent = gibbonPerson.gibbonPersonID )
    WHERE gibbonSchoolYearID =(SELECT gibbonSchoolYearID FROM gibbonSchoolYear WHERE status='Current' ORDER BY gibbonSchoolYearID DESC LIMIT 0,1)
    AND gibbonMarkbookColumn.complete='Y' 
    GROUP BY gibbonCourse.gibbonCourseID, gibbonMarkbookEntry.gibbonPersonIDStudent 
    ORDER BY surname, preferredName, gibbonCourse.nameShort
) as temp`

This query is a little complex when it comes to using SUM and CASE, but it could be used & modified to get some of the results you need. The Query Builder uses MySQL syntax so it can be quite powerful when extracting data from Gibbon.

I don’t have any experience working with schools that use sums rather than averages for markbooks, but hopefully some of the above info can help you find a method that works for you.

Thank you so much @skuipers for taking your time to come up with the query.
I have some questions to ask but I think I am going to try the query you sent first so I can ask my questions appropriately if there is still need for me to ask them after trying the query.
We have not used the query builder module before but I hope it’s something we won’t find any difficulties using?
If you don’t mind, please what’s the concept of the query builder module and is there any help you can give regarding its usage?

Meanwhile, there’s something I would like to say.
You said: “It sounds like your school requires a sum rather than an average, so the cumulative marks and weightings may not be the best fit. The markbook provides an Export to Excel option, which could be used to calculate the sums & grades you need using spreadsheets outside Gibbon.
Calculating the sums and letter grades could also potentially be done through a custom query in the Query Builder module.”

Since the school and most schools require calculating the sums and letter grades, why can’t this functionality be built into Gibbon core so it would be part of the next release. Because of lack of this feature which is one of the major requirements the school (and most schools are) is looking out for before using Gibbon, a lot of the staff are already trying to reject Gibbon because it’s bringing too many frustration and challenges for them. Of course they know Gibbon has great features and it’s flexible just like I had made them to understand, but they still can’t believe why the most essential feature is not in Gibbon. So am doing my best to make them accept Gibbon because I like Gibbon and it has a lot of potentials. So it would be of great help to the school and lots of schools if Gibbon has this essential feature in the next release. I am not asking for something extraordinary neither am I suggesting a feature - this is a can NOT do without feature if Gibbon would go far and be adopted by most schools. So I think this feature should be added to the markbook just the way the Cummulative and weighting features are. Or better still, it should be added to the internal assessment. What do you think?

You talked about the markbook providing an export to excel option. This is good but if the students and/or the parents can’t check students marks or assessment or grades in Gibbon then what’s the difference between a school using Gibbon and a school that had been using excel to compute students results? I don’t think there’s any difference because it’s as if the school is going back to the old fashioned and manual way, if you understand what I mean.

After calculating the sums and letter grades through the custom query in the Query Builder module, would students and/or the parents be able to check students result or assessment report on Gibbon? The school wants to allow students and/or their parents to check students result or assessment report online through Gibbon. And other schools around want that too. Isn’t this achievable? Do you understand up to this point?

Please I am sorry if my message is too long.

I guess, one temporary work around is for you to calculate the sum in Excel, and then import it into a new Markbook column for students and parents to see.

It is possible we can add this feature in to v14 (what do you think @skuipers?)…but one option, if this is something you must have, is to hire a developer to make the changes, and contribute them back to the Gibbon core.


I´m not sure if this is the right answer to Franz, but I did the following:
I added 3 columns for 3 different evaluations for the same subject, each of them have different weighting:

So at the end have something like this:

The Term and Cummulative columns are “calculating” the final grade, look at the fisrt student, 100% in the 3 columns( evaluations) so the final grade is 100%.
What about the second student: (9050%= 45)+(9840%=39.2)+(91*10%=9.1) = 93.3.
My 93.3 final grade here matches with the 93.3 for the second student in the picture above.

Buuuuuuttt, have a look to the last 2 columns, Term 3 and Cummulative, why both have the same results, is that correct?. I´m not sure what “Cummulative” means also.

The cumulative mark is helpful for courses that span more than one term. If a course starts in Term 1 and goes to Term 3, the cumulative mark will be an average of all marks from the start of Term 1 to the end of Term 3. In the example above each column appears to be in the same term, so the Term and Cumulative mark are the same.

To see the grades for a course that spans more than one term, look for the drop-down at the top and select All Terms.

The marks in the last 2 columns could also be different if you’ve configured your weightings with a Final Grade weighting, which is applied after the cumulative average. For example, the following course has two cumulative types: Assignments and Tests, as well as an End of Year Project defined as 30% of the Final Grade.

The sample calculation illustrates how the mark will be calculated. First, the cumulative average is calculated using the types defined (Assignments and Tests), which shows up in the cumulative column on the markbook. Then the Final grade is calculated using the Cumulative Average and in this case the End of Year Project.

Luckily the weightings calculation is pretty forgiving, so even if any of the above weightings don’t add up to 100% it will still weight them accurately based on the values given compared to the total of all values (despite the warning message it gives).

Here’s what it would look like in the markbook:

Sorry skuipers, but I REALLY dont understand your LOGIC to make calculations, I spent the entire day today by using trial and error, by I gave up, please I need to see a demo urgently with markbooks, the one of softaculous doesnt have markbooks.

Now, based on you last picture, I know Im wrong, let me know what am I doing wrong.

My logic (based on excel) tell me: Test 1 * 25% + Assignment * 75% + Test 2 * 25% (890.25 + 740.75 + 780.25) = 97.25. Now, the cummulative average * 70% (97.250.70) = 68.075. Finally, the final project * 30% (95 * 30%)= 28.5. So, cummulative + Final Project (68.075 + 28.5) = 96.57.
My math logic doesnt match with yours !!! :cry:

No problem. In your example math you’re summing the averages rather than weighting them (Eg: (890.25 + 740.75 + 78*0.25) is 97.25 over 125%, but tests end up worth 50% of the 125% without being weighted). Here’s my logic:

The columns are weighted by type, so first the average for each type needs calculated:

`Tests = ( 89 + 78 ) / 2 = 83.5%
Assignments = 74%`

Then the type averages can be weighted:

`(83.5 * 0.25) + (74 * 0.75) = (20.875 + 55.5) = 76.38`

So the cumulative average is 76%

For the final grade: 
`Cumulative    = (76.38 * 0.7) = 53.47
Final Project = (95.00 * 0.3) = 28.5

Total         = (53.47 + 28.5) = 81.97`

The final grade total is rounded to 82%
(The internal calculations keep a much higher precision and only round at the end)

The calculations can get a bit more complex because a column can also have its own weighting (I tend to think of it as a multiplication factor), which is applied when the initial averages are being calculated. If you're interested in the scripting behind the weightings system, the calculateWeightedAverages method can be found around line 533 of modules/Markbook/src/markbookView.php

Unfortunately at this time the weightings haven't made it into the demo or documentation content. I designed the weightings system last year to meet the markbook needs for my school, and contributed it to v12 to share it with any other schools that have similar needs. Hopefully at some point I'll have time to put together a thorough documentation, for now I'm happy to help answer any questions you have.

Hope this helps!

Good !!
I have some questions, I gonna list them here one by one.

  1. Let´s talk about Test 1 and Test 2, why are they calculated using “average”? this means both have the same weighting (12.5% each), and if add Test 3 the average will be (Test 1 + Test 2 and Test 3) /3. I´m asking because for some situations I will need to weight for example Test 1 with 10%, Test 2 with 15%. What should I do to weight each of them using different weightings?..Not an average…

There are actually two options for weightings, one is by the individual column, and the other is by the overall types. The examples above are from using the Weightings section and assigning weightings to overall Markbook Types, accessed here:

This allows for averaging types together, eg: all Tests are worth 25% of the overall mark, all Assignments worth 75%. If this isn’t the type of weighting you need, then you can opt to not use those weightings and just use the individual weights defined per-column:

These allow you to define a weight (or multiplication factor) for each column, which for your case could be Test 1 with 10%, Test 2 with 15%, etc. You can use either fractions (0.25) or whole numbers (25) and as long as it’s used consistently across that course the weightings will be accurate.

Both weightings can also be used together, which becomes interestingly complicated calculation-wise, but it’s currently being used that way at our school allowing a teacher to weight groups of columns (eg Tests) together, as well as apply a weight/factor to an individual column (eg: Test 1 is weighted 1.5 times more than other tests).

Good again:
2) I also tried with your first suggestion: individual weights defined per-column, but here is another “logic” problem I do not understand, look and ignore the cummulative column for the entire post:

When I created the activities columns I assigned weightings like this: Activity 1 has 50%, Activity 2 has 25% and Activity 3 has 25% (this one has not been filled yet), if I use the excel logic I should have something like this:

Term 3 is fully different in Gibbon than in Excel, but in Excel I used the right formulas look:

Seems to be my “logic” problem is fixed once I enter activity 3 grades, look and compare:

So, why the Gibbon behavior is like this?, I believe this would be a kind of “risk” for parents, teachers and students, because if there are columns in blank, seems to be students are always passing in case students have good marks !!!

Currently, the system assumes a blank mark is omitted (perhaps the student was absent, just joined the school, transferred into the course, etc). If a teacher wishes they can enter a 0 or INC to give that student a failing grade for that assignment. In practice, assuming a blank mark as a fail could result in more “risk” and unintended side-effects than omitting blank marks. In this case it’s handling blank and 0 as two separate cases, rather than as the same thing.