Explore new features, bug fixes, and more
We are excited to release our first official set of patch notes! Today, we have a set of small and large features to discuss! Let's get started.

Users requested a way to generate a new submission on behalf of a student. The use case for this may be something like regrading an exam, where the student isn't in charge of uploading their taken exam, rather the instructor must upload it for them. By generating a new submission, the instructor no longer has to change the grades of the initial exam. This functionality also support generating initial submissions- perhaps if the student forgot to submit their assignment or if the assignment requires no submission. Note that if you generate a submission before the assignment due date, the student will only be able to edit that generated submission while it is not yet assessed.
Added two new buttons to the instructor toolbar:

The bulk ratings import feature allows the teaching team to download a CSV that contains the proper formatting to input ratings en masse. This is a handy way to import ratings from other platforms without having to manually enter each rating.
The "Export Reusable Feedback" button allows the teaching team to download a CSV that contains all instances of reusable feedback used for an assignment. This information might be useful to perform data analysis of the most reused feedback.
To allow for more flexibility with our grade calculation algorithm now and down the road, we made some tweaks to how we make users set up the necessary components for grade calculations. This includes some changes to our terminology:

Where previously sets of grade recipe constraints were tied to the course's parent objectives, now any amount of grade benchmarks groups can be defined for the course. A grade benchmark group must be tied to a mastery level scheme. Once this mastery level scheme is selected, the user can select which course parent objectives that use the selected mastery level scheme they'd like to "feed into" this benchmark group. If an objective "feeds into" a benchmark group, it means that any rating made for that objective (or its children objectives if applicable) will count towards this benchmark group.
Benchmark groups come with more functionality than before. What has remained the same is the set of constraints (now "benchmarks") that a user can define. The following functionality has been added:
x Mastery Levels for Grade Calculations
We received feedback from users that they like to set up their courses in a way that allows students to show mastery for certain objectives a certain amount of times, and then not need to show it again. By opting to "limit the number of mastery levels used in grade calculations for each objective", you can achieve this functionality.
Consider this benchmark group:

Consider the following information:
Then, the only ratings that would contribute towards grade calculations (or, in other words, that would contribute towards the benchmarks in this benchmark group) are Exemplary for Database Design and Satisfactory for Algorithms. The system will only take the top x mastery levels achieved for a student.
Grade thresholds (previously on the grade recipes page) now hold the individual values a certain must reach for each benchmark group to obtain a certain grade distinction. The form for configuring these values has not changed.
Users also requested the ability to prevent ratings for certain objectives in certain assignments from contributing to certain grade benchmark groups. To support this, we added the following feature to mark an objective from being included in a benchmark group's grade calculation:
To better support the teaching team when assessing objectives that contribute to benchmark groups that only take the best x mastery levels, we added an indicator to show a brief history of the student's top mastery levels for that objective:

Using this attempt history, the user can quickly see whether the user has already reached the level of mastery that is expected of them in the course. In this example, the Curriculum benchmark group was configured to only consider the top 2 mastery levels.
We are super excited to release these features! As always, if you find any issues, please reach out to founders@teachfront.com. Have any ideas for ways we could take these features even further? Let us know!