Filtering for assignments where the count is less than the size

I was trying to find assignments where the the count of interviews is less than the amount that is to be collected (size) but I could not figure out a good way to filter for that. Is there an easy way to do that?

Additionally, it would be great if users can to download the assignments information as an Excel, csv or tab similar to the reports. It would be useful for me to send that information to my team about assignments to follow up on in an Excel format. Thanks!

3 Likes

To my knowledge, there’s no way to get this info via the UI (see similar feature request here). But there is now a way through the API. Starting with version 19.04, the /api/v1/assignments endpoint provides everything that appears in the Assignments list UI, including the identifying questions (as a nested array). For example, here’s an (edited) example return value below:

{
      "Id": 2620,
      "ResponsibleId": "e4fc7d63-703e-4c42-b62c-2edc9bd4f1a2",
      "ResponsibleName": "fqempsTest1",
      "QuestionnaireId": "24b3b9ca9e5a47babcff4df74ed49bc4$2",
      "InterviewsCount": 0,
      "Quantity": 1,
      "Archived": false,
      "CreatedAtUtc": "2019-02-25T13:07:04.246274",
      "UpdatedAtUtc": "2019-02-25T13:07:04.246274",
      "IdentifyingQuestions": [
        {
          "Identity": "714e42dbf31b459d97e2dbb2cd9bdc71",
          "Variable": "cluster",
          "Answer": "583"
        },
        {
          "Identity": "4fa80ae50b674c41802a129a46746547",
          "Variable": "district",
          "Answer": "Western Area Urban"
        },
        {
          "Identity": "fb4a2ddf125c48d89b56c7c6ffd45dc9",
          "Variable": "chiefdom",
          "Answer": "SOME CHIEFDOM"
        },
        {
          "Identity": "089cf9e4266c471397ede156402f1337",
          "Variable": "section",
          "Answer": "SOME PART OF TOWN"
        },
        {
          "Identity": "91008391626d4f43890da593f198682c",
          "Variable": "hhno",
          "Answer": "123"
        },
        {
          "Identity": "5ff90f27481c40a1a55f397013fffef3",
          "Variable": "locality",
          "Answer": "SOMEWHERE"
        },
        {
          "Identity": "47f3a2aab8e04f46b1e3de4b44a54a31",
          "Variable": "address",
          "Answer": "SOME ADDRESS"
        }
      ],
      "Email": null,
      "Password": null,
      "WebMode": null
    }        

If all your assignments are of the same size, then sorting by the number of interviews delivered should help. If they are of different sizes, then I don’t see an easy way.

Best, Sergiy

Maybe adding graphql api for assignments and interviews would solve such cases for the future?

I ended up sorting by count to find those assignments but it was difficult to extract the assignment information from the table on the server. Doing it by the API is also not ideal as I wanted to teach the survey management staff a way to find those assignments that are incomplete through the UI. Hoping to see the feature to export the information in the assignments table in a future version.

Another less than ideal workaround would be to take the original assignments file that you’ve preloaded and match it with the exported interviews by some id variables (usually, though not always possible, and requires some skill).

To summarize, it sounds like we currently have a few work-arounds with the GUI and the API, but there’s still some scope for improvements to make Lena’s request easier to implement in the GUI for average users.

Work-arounds include:

  • Use the /api/v1/assignments endpoint to fetch what appears in the UI, filter the data set to assignments where interview count < assignment size
  • Use the Assignments GUI to sort by interview count in ascending order to identify cases where interview count < assignment size. This only works when assignment size is uniform.
  • Match interviews with original assignments file to find assignments with unfulfilled interviews.