Create a custom report card from scratch

For those who like to completely customize their ThinkWave reports, we've enabled the "Customizable Reports" feature.   This allows the creation and personalization of any type of ThinkWave report from transcripts to report cards.  Report cards are the most often requested customizable ThinkWave document, so here's an overview of how to create a report card from scratch on the ThinkWave system.  If you would like to skip directly to a video walkthrough of this process, click here.

In the administrator view of the ThinkWave system, click on the "Reports" tab at the top of the screen.  Then navigate to the "Customizeable Reports" box and click the "Add Report" text in blue at the bottom.

Give your report card a title.  Then, in the box below that, select from the drop-down menu if you want your report to include one student per page or a single multi-page report.  The last box asks you if you want to display the report in portrait or landscape view.

The next part gets into the heart of your report.  The "Layout" items determine how your report will look.  The "Widgets" will determine the content you will see in the report.


The Rows determine the vertical layout of the report and the cells make up the horizontal layout of the report.

In the "Row" menu you must choose how many sections you want on your page (from top to bottom) and how much space you want each section to take up vertically.  These operate as parts in a whole of 12.  So, a full page from top to bottom would be 12/12.

For example, if you want your page to have three sections: a header, body of report and a footer then you need to figure out how much room each section will take up.  Since you want three parts, click "Add Row" until you have options for three rows.  A header is usually short and only takes up a couple of rows on a page, so you might choose your first row set as 3/12.  The body of the report is the longest so that would take up, say, 7/12.  Finally, the footer is also short and to complete your whole of 12, you would choose 2/12 for your footer.

After deciding on the rows, it's time to decide how big your cells will be.  Cells are horizonal so think of them as taking up width on the page.  You also have to make them equal a whole of 12.  If you want them to take up the entire page horizontally then make each cell value 12.  If you want to delete a cell, make the value "0" and the system will prompt you to delete it.  Click "Save" when you are finished.


Select the "Widget" sub-tab at the top of the screen. Give it a name like "Header".  The next field is where you select what type of field you want from a drop-down menu.  You have options like: text, table, image etc.  The last pull-down menu asks where you would like to save the widget; select the name of the custom report you just created.

If you chose a table widget, your next screen will give you the options for your table like numbers of rows and columns.  Make sure in the "Contents" fields that the number of columns adds up to 12 again.

Underneath the number of columns you have the cells where you will input the information for the widget.  You can type in the content manually or use a merge function to create customizable commands to create automations displaying different data.  At the bottom of every widget screen there are instructions for the merge functions.  You will see the commands, their descriptions, their variables and the samples.  You can copy and paste the samples in to your information cells to customize your data.  This process is described in more detail in another section.  Please refer to this video for more information.

For now, lets start by putting the name of the widget in to create the header.  Type in "Report Card" in the first cell.  Then hit "Save".  Return to the "Layout" sub-tab at the top to input the newly-created report title widget in the cell.  Under "cell" where it says "Widget to put into this column" select "Header" or whatever title you gave your widget.  Click "save".   You can now preview your report.  There's an orange button that says "Preview" at the top right.  This will only preview the widget you are currently looking at. 

Hint: It's faster to have another tab opened in ThinkWave to Custom Reports so you can quickly preview your custom report while generating it.

Open a new tab in ThinkWave and click on "Reports" at the top.  Under "Custom Reports" select the name of the custom report you are working on.  Then, select a student who you know has information in his/her profile.  Click the green "Generate" button.  You will see a live display of the report you have created so far.  Right now, it's just a header but you can get an idea of placement and size on the page.  Since you have the report card widget open in your other tab, you can click over to that and modify your widget by increasing size or changing the alignment of your text to be centered or left justified until you like the way it looks.  Keep adjusting and previewing until you are satisfied.  Each time you go back to the preview tab click "Customize This Report" in the upper left, select a student and hit "Generate" again to see your changes.

You can keep adding widgets to include infomation like student address, term etc.  If you want to add another line of information, an address for instance, you would click the “add widget” button in the upper left.  Make it another table widget.  This time, we're going to use the merge functions at the bottom of the screen.  Find the merge function that says “student name”.  Copy and paste it into the cell.  Then, do the same for the merge function that says “student address” in the cell underneath “student name”.  If students have more than one address line, you can use the “skip row” function built into the table widget so that if there is no data available for a student's second address line, the program will skip it automatically.  Copy and paste the “student address line 2” merge function from the bottom and paste it into the cell below “student address”.  Then, be sure to select “skip row if any merge field is blank” under the “skip row” line in the overall setup fields for the address table widget.  Continue to add the “student city”, “student state” and “student postal code” into the cells next to each other so that they will appear that way on the finished page.  Click save, when you are done adding the student address merge functions.

Column Widget:

Now, you need to add the overall widget to the report card.  You have to create a column where you add the widgets stacked on one another.  Navigate back to the upper left and click “add widget”.  Call it “Report Card Column”.  Under “Widget Type” select “Column” from the drop-down list.
Under the heading “Widgets to Display in a Series” select the order you would like things displayed.  You can select “Report Title” first and then add a “Half Space” to go in between and then add in more widgets.  To see how it looks, go to the “Layout” sub-tab and add the “Report Card Column” to the area that says “Report Title”.

Make sure to preview your report card often to see if you like the way it looks.  You can always remove a space or move things around.  If you want to quickly access your widget to make changes to the way it looks, click the “widgets” sub-tab at the top.  You can see a drop-down menu of all the widgets associated with “Report Card” on the left side of the screen.  You can also click the edit icon to the right of the widget.  Once in the widget, you can select the size of each line in the drop-down fields to the right of each line.  Or, to have all the lines the same size, choose the drop-down menu below the lines of the cells you put in earlier.

Adding Classes and Grades:

Create a new widget to add classes and grades.  This will probably be the body of your report.  Give it a title like “Class Cycler” since you will be using the “Class Cycler” widget.

Once you have done this, you need to create a “Class Grades” widget, so add a widget again and name it “Class Grades”.  Make it a table widget.  Then, you have to choose how many terms to display.

You must first determine how many terms your ThinkWave system has by going to the “Setup” tab at the very top.  Under “Schedule” click on “Terms and Subterms”.  If you have two semesters and four quarters there are a total of six terms to display.  Go back to the “Class Grades” widget.

If you want to display the class name as well, you will need to make sure your table has seven columns and one row.  Use the drop-down menus to add those to your table widget.  Don't forget, the columns must still add up to 12.

If you need a little more space, you can use the drop-down menu under “max columns” to multiply the amount by 12.  So, you can choose “5x” and now the margins of the columns will be 60 instead of 12.   At the top of each column choose how much space you want it to take up as you did with your layout section.  They must now add up to 60.  The system will tell you if your columns do not add up properly.  Click “Save”.

For the first cell, you'll probably want the class name.  Go to the bottom of the screen where the merge functions are, and find the one for “class ”.  For the grades, you will need some modifiers to keep things specific.  Go to the merge function for “final grades” and choose the third column line to copy and paste; that will give you a sample which includes most of the information you want to display instead of selecting each modifier.

Put that whole line into the second cell beside the class name.  Since the line example we copied and pasted has term_2 listed, you will need to change this to the term you want to display.  If you want to display the grades as a letter grade you will need to remove the percentage part of the merge function (percent:true) that was copied and pasted.  Otherwise, the grade will display as a percent.  You can now copy and paste your modified command into the rest of the columns.  Make sure you change the term number for each one so you can display the grades for each term.  Click “Save” when you are finished.  Now, lets add this table to the “Class Cycler”.  Click on “Class Cycler” on the left side of your screen.  Then, under the heading “widgets to display for each class” select “Class Grades [table]” from the drop-down menu.  Then click on the “Report Card Column” on the left side so we can add the “Class Cycler” to it.  Click the “add widget” button under “widgets to display for each class” and add your widget underneath your current setup of “Report Title – Half Space – Student Address” etc.  by choosing it from the drop-down menu.  You may want to add a half space or other rule above it before adding “Class Cycler” to the list.  Click “Save” and then check it.  You should see a pull-down menu for each term.  You'll have to manually select each one so that Term One reads “1st quarter” etc.  Then, select a student and hit “Generate".  You will see the final version of how the report card will look.  If you don't like the way it looks, you can go back in and add spaces or lines as needed.

Class Grades Header

You may want to now create a header to make your grades table more understandable to the viewer.   A header would help show which class received which grade and which grade is for which term.

For this header, you can clone the “Class Grades” widget since it already has the same number of columns and rows. 

Find the “Class Grades” widget on the left side of the screen in the widget list under the “Student Address” table widget.  Highlight the “Class Grades” widget and then click the “Clone” button on the upper right side of your screen.  Give it a title like “Class Grades Header”.    Then, go down to the cell contents and put “Course Name” in the first cell.  The rest of the cells require a merge function.  Scroll down to the merge function featuring “term”.  Highlight the first part of the example where it says “{{term|term_sel:select_term}}”.  Copy and paste this into the cell next to “Course Name”.  Since we already selected the terms, you can delete the part of the merge function that says “select_” and replace it with  “_1” after the word “term”.  It will end up looking like this: {{term|term_sel:term_1}}.

Now, you can copy and paste that code into the other cells, replacing the “1” with the number of each term.  Since this is a header, make the text larger by selecting the drop down menu in the row after the last cell you just put in for terms.  Select “H2” for the whole row.  Then, hit “Save”.

Now, click the report cards column widget on the left side of your screen.  Add the new “Class Grades Header” widget to the bottom of the series of widgets to display.  Then, add the “Class Cycler” widget after that so it all lines up.  To customize it a bit, you can add a half space and a horizontal rule between the “Class Grades Header” and Class Cycler” to make things look nice.  Then, check it and see if you like the result! You should see headings like “1st Quar, 2nd Quar”, etc and then the grades lined up below to correspond with the classes on the left.

Skills Cycler

You can add to this by including skills that students were graded on.  Create a new widget and call it “Skills Cycler”.  In the drop-down menu next to “Widget Type” select “Skills Cycler (each skill in a class)”.  In “Save To” select the name of the report card you are creating. 

In the next screen, you have the option to omit skills or create a skills header if you would like to.   
The Class Skills is very similar to the grades widget so the easy thing to do is to clone the grades widget.  So, go into the widget list in your report card to show how your widgets are displaying in a series and click the edit icon next to the “Class Cycler”.  This will bring you into the class cycler you already created for grades and you can hit the “Clone” button in the upper right.

Skills Grades

Give it a name like “Skills Grades”.  In the first cell you'll probably want the skill's name.  For this, you can scroll down to use a merge field.  Find the merge field that says “{{skill}}” and copy it into the first cell where it used to say “{{class}}”.  The next field will also use merge functions as modifiers.  Try putting this into the next cell {{skill_grade|term_sel:term_1|round:0|strip_zeros:true}}.  This will tell that cell to display the skill grade for term 1 and will round the value to a whole number with no decimal places.   Copy and paste this same code into each cell but change the term number for each so that you include all your terms.  Also, if you want to include decimal places in the grade value, you would change “round:0” to “round:1” or “round:2”.  When finished, click “Save”.

Now, go back to the “Skills Cycler” on the left side so we can add the Skills Widget.  Under the drop-down menu for “Display for Each Skill”, select “Skills Grades [table]”.  Now go back to the left side of the screen and click on “Report Card Column” and then under that click “Class Cycler”.  On that screen add the “Skills Cycler (for each skill show...) to the list in the drop-down menu under “Class Grades [table]”.  Hit “Save”.  This is a good time to preview how it looks.  You should see the skills now appearing under the classes.

It may, however, look a little confusing since there is nothing dividing the skills from the classes.  To make it look better, go back to the Skills Widget and click the edit icon next to “Skills Cycler (for each skill show...)”.  Add some space in front of the skills name to differentiate it from the classes.

In the first cell where you put in {{skill}} hit the space bar a few times in front of {{skill}} to add an indent.  This will appear when you save and then preview your report card.     

Comments Box  

You can also add a comments section to the bottom of the report card.  For this, you need to create a new widget so hit the green “Add Widget” button at the top of your screen.  Give it a name like “Class Comment Block” and make it a “text” widget for the “widget type” drop-down menu selection.  Then save.

There is a block of empty space that simply says “text here”.  It's time to use another merge function.
Scroll down to the merge functions at the bottom and find one that says {{final_comment}}.  Select the full sample line to the right and copy and paste it into the text box overwriting where it says “text here”. 

Save it and create a new widget called “Class Comments Cycler”.  Make it a “Class cycler” in the “Widget type” drop-down menu.   On the next screen where it says “Widgets to display for each class” select “Class Comments Block [text]” from the drop-down menu.  Hit “Save”. 

To add this to your report card layout, go to the left and hit “Report Card Column” under the “Widgets in “Report Card Demo” sidebar.  The next screen shows the list of items in your report card in the order they will display.  Hit the green “Add Widget” button and choose to add a space to make the spacing look right or just add your “Class Comment Cycler” in the drop-down menu.  Now, there will be a pulldown menu for the comments block.   When you are testing it, make sure you choose a term that has comments before you generate your report. 

If you want to further specify your comments block, you can have it be specific to a certain class.  Go back to the “Class Comment Cycler” selection in the widget list and click the edit icon next to it.  Then click the edit icon next to “Class Comment Block [text]”.  
In the text block, you'll want to add the class name in front.  You will need to use merge functions here.  If you want to make the class name bold, you can add this as your modifier <b>{{class}}</b> in front of the current merge function you already put in the text box earlier. 

In this case, it will show you the names of every class, even if there are no comments.  If you want it to only display the classes that have comments, be sure to select “Skip text block if any merge field is blank” in the drop-down menu under the “Skip” heading in the Class Comment Block settings.  Click “Save” and check your progress.

Report Header

You may want to create a general header for the overall report card.  Begin by creating a new widget.  Call this one “Report Header” and select “Row” for the widget type in the drop-down menu.

School Logo

You will see that you need to select the width for each row. 
Since a header doesn't take up much of the page, select “2”.  You can select “School Logo” or any of the other pre-made widgets for your header under the drop-down menu for that row. 
The next width for the row might be a little bigger so select “8” this time under width.   And remember, they have to add up to 12, so the last width in your row will need to be “2” again.  If you only want the school logo, then select blank cells for the other widgets in the row.

School Address

If you want to include the school address in the header, create another widget and select the “School Address” widget.  An easy way to do this is to just select the “Student Address” widget and hit the “clone” button to clone it.  Use the merge function again in the contents part of the address widget and swap “school” for “student”.    Click “Save” when you are done.

Now, you'll want to add the address widget you just created to the report header.  Go back into the Report Header widget and select “School Address [table]” in the drop down menu under the second column in the row.  Then, hit save.

Report Date

Next, you can create a table widget called “Report Date” to appear in your header.
Click “Add Widget” and name it “Report Date”.  Make it a table and click “save”.  For the date, you will only need one column and one row.  So, under “Contents” you can make the first number “12” since you will have it take up the whole table. 

For this, you can use merge function modifiers to create the table.   Scroll down to the merge functions and copy {{user_date}} and paste it into the first cell.  Then, to further customize your merge function add “ |date_sel:select_print_date”.   So, your full merge function will look like this: “{{user_date| date_sel:select_print_date}}”. 

For it to look correct on your report, make the alignment right justified next to the “Alignment” selection.  Also, select the setting “H2” in the drop-down box next to your merge function.  This will add specific pre-determined looks to the header to make it stand out as a header.  Also, under “Cell Padding” add a couple of spaces next to where it says “right”.  These selections are all just for looks.
Finally, hit “Save” and add this to your header widget by clicking “Report Header (in a row show...)” on the left-hand side of your screen.  Under, “Widgets in this Row”, choose your report date table from the third drop-down widget on the right.  Hit “Save” when finished.

Now, to add the header to the report card.  Click on “Report Card Column” in the list on the left.  We need to add the new header to the top; that means moving everything on the list down.   While we're add it we'll add an extra half space and horizontal line to separate the header.

At the bottom of the list of “Widgets to display in a series” click “Add Widget” three times.  Next, move all of your current list items down and select “Report Header”, “Half Space” and “Normal Horizontal Rule” as the top three drop-down items.  This is the order they will display on your report page.  Click “Save” when you are finished.  Now, there is a space where you will have to select the date of your report.  Select the date and hit “Generate.”

Student Date of Birth

Let's say you would like to insert items to the header that come from a custom field, like the student's date of birth.  For something like this, start a new table widget called “Date of Birth” inside the Report Card Demo.  Make it one row and one column.  In the table widget, under contents, make the number of horizontal rows take up the whole page so enter “12”.  This way, it all winds up in one cell and looks better.  Then under that, type in “Date of Birth:”.  The colon will let you add merge function modifiers;  also add a couple of spaces after the colon so it looks correct at the end.  Scroll down to the merge functions at the bottom and find “{{custom_field_student}}”.  This will allow the information to be imported from a custom field in the Students tab inside the ThinkWave system.  Go over to the right side and highlight the full customization example of this merge function.  It looks like this: {{custom_field_student|cfs_ sel:date_of_birth}}.  There is also a custom field for class instead of student if the information you want to display is relevant to the whole class.  For our example here, copy and past the above merge function into the cell next to “Date of Birth.”  Click “save” and return to the report card column widget.

Add a new widget to the bottom and insert your newly-created “Date of Birth” widget beneath “Student Address” so everything lines up.  To check your work, go to the reports generator, and you should see a new “Date of Birth” pull-down menu option.  However, we still have to create a custom field for the date of birth option for this to pull information from.  To do this, click the “Students” tab at the top left of your screen.  At the top right of the Students tab, click “Customize”.  In the drop-down menu select “New Custom Field”.  Name it, “Date of Birth”, have it apply to “All Students” and make it a “Date Field”.  Make sure to click “Save”.

The system will take you back into the “Students” tab and you will see a new “Date of Birth” selection at the bottom.  Now that it's created, enter the relevant birth date for the student and click “Save”.

Now, go back to where you were creating your custom report card (Reports – Custom Reports – Report Card Demo) and generate your report.  You should see an option with a pull-down menu for “Date of Birth”.  Select “Date of Birth” and then click “Generate”.  Under the student's name and address, you should see their date of birth. 

Grade Legend

Go back to the report card column widget and create a new widget.  Call it “Grade Legend” and make it a text widget.  A quick way to import the text from the grading scale is to go to the Setup tab and find the “School's Final Grade Scales”.  Copy and Paste all of them into the text window.  You will still have to align it and clean it up so it looks right, but it will save you from having to type it all in.  At the top of the text you pasted in, add a couple of spaces and put the title “Grade Legend” in, and make it bold to stand out.  Save your work.
Go back to the “Report Card Column” and add a “half space” and a “Normal horizontal Rule”; then the “Grade Legend”.  This will create a nice visual divide on your report before the Grade Legend.  Click “Save” and generate your report.  

User Defined Window

There may be an instance where you would want your report card template title to change to be a general report card vs. an interim report card.

Go back to the Report Card Table Widget and select the edit icon next to “Report Title”.  Go down to the bottom merge functions and find the one that's for {{user_text}}.  Next to it, you can see there is a modifier available for text select: text_sel.  Paste the {{user_text}} merge function in but then manually type in the following to modify your data:  {{user_text|text_sel:report_name}}.  Click save and check it by going back to the report card column.  Now, there is a window where you can type in the name of your report.  You can call it “Report Card (interim)” for example and then click “Generate”.  This gives you the option of changing the name of your report as you generate it for various needs.

There are many other options of things you can add to your reports like Photos and Attendance Records; it's entirely up to you!  You can keep changing the look of your report using the “Generate” screen.  Feel free to experiment with scaling or fonts until you get the look and information you want for your reports.

Cloud-based School Management Software

Ideal for Distance Learning. Fast to Deploy. Uniquely Easy-to-Use.

Start Your School 30 Days Free

Free Online Gradebook

Distribute assignments and collect homework. Powerful messaging.

Start Free Gradebook Does Not Expire

Buy Premium Gradebook