HCI & UX Evaluation Tool

System Usability Scale (SUS)

Collect SUS survey responses, instantly calculate percentile-based scores and grades, and export data directly to CSV or Google Sheets.

Instrument version, scoring, and data handling

Version: Original 10-item SUS with a five-point agreement scale.

Scoring: Composite score from 0–100. Grade and adjective labels are interpretation aids, not part of the original instrument.

Data handling: CSV mode creates a file only on this device; the portfolio server does not receive the response. Google Sheets mode sends the participant ID, condition, item responses, calculated scores, tool name, sheet/tab name, and timestamp to the Google Sheet Web App URL entered by the researcher. Nothing is sent until the final save action. Completion is shown only when that script returns JSON with success: true (or ok: true) after appending the row.

Step 1 Select Data Save Option

Data Save Option
đź’ˇ How to connect your Google Sheet (10-second setup)
  1. Create or open your target Google Sheet.
  2. Click Share (top right) → under General access, change to Anyone with the link can edit.
  3. Copy the Google Sheet link from your browser address bar and paste it into the input box above!
Advanced: Using a custom Google Apps Script deployment

If you prefer to deploy your own private script instead of sharing your sheet link, copy the script below, deploy it as a Web App (access: Anyone), and paste your /exec URL above:

function doPost(e) {
  var lock = LockService.getScriptLock();
  lock.tryLock(10000);
  try {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var data = JSON.parse(e.postData.contents);
    var rowsToAppend = [];
    var sheetName = "Sheet1";

    if (Array.isArray(data)) {
      rowsToAppend = data;
    } else if (data && Array.isArray(data.rows)) {
      sheetName = data.sheetName || "Sheet1";
      rowsToAppend = data.rows;
    } else if (data) {
      sheetName = data.sheetName || "Sheet1";
      var obj = {};
      for (var k in data) { if (k !== 'sheetName') obj[k] = data[k]; }
      rowsToAppend = [obj];
    }

    if (rowsToAppend.length === 0) return ContentService.createTextOutput(JSON.stringify({ success: false })).setMimeType(ContentService.MimeType.JSON);

    var sheet = ss.getSheetByName(sheetName) || ss.insertSheet(sheetName);
    var keys = Object.keys(rowsToAppend[0]);
    if (sheet.getLastRow() === 0) sheet.appendRow(keys);

    rowsToAppend.forEach(function(r) {
      sheet.appendRow(keys.map(function(k) { return (r[k] !== undefined && r[k] !== null) ? r[k] : ""; }));
    });

    return ContentService.createTextOutput(JSON.stringify({ success: true })).setMimeType(ContentService.MimeType.JSON);
  } catch(err) {
    return ContentService.createTextOutput(JSON.stringify({ success: false, error: err.toString() })).setMimeType(ContentService.MimeType.JSON);
  } finally {
    lock.releaseLock();
  }
}

This URL is remembered only in this browser on this device.

System Usability Scale (SUS) References(3 papers)
View References

Original validation and psychometric benchmarks for the System Usability Scale:

[1]

Brooke, J. (1996). SUS-A quick and dirty usability scale. Usability Evaluation in Industry, 189(194), 4-7.

Link
[2]

Bangor, A., Kortum, P. T., & Miller, J. T. (2008). An empirical evaluation of the System Usability Scale. International Journal of Human–Computer Interaction, 24(6), 574-594.

DOI
[3]

Lewis, J. R., & Sauro, J. (2018). The System Usability Scale: Past, present, and future. International Journal of Human–Computer Interaction, 34(7), 577-590.

DOI