Reports

GET /api/reports/

Get the available report types.

Example response:

{
  "alarm": {
    "description": "Counts the number of times each NC and TMAC alarm occurred on each machine selected, then calculates the amount of money TMAC saved as defined in cost savings estimation.",
    "params": {
      "end": {
        "data_type": "datetime",
        "name": "end",
        "required": true
      },
      "machines": {
        "data_type": "list",
        "name": "machines",
        "required": true
      },
      "start": {
        "data_type": "datetime",
        "name": "start",
        "required": true
      }
    },
    "result_type": "html",
    "tags": [
      "production"
    ],
    "title": "Alarms"
  },
  "billable_excess_capacity": {
    "description": "Compares the target and actual utilization of machines in terms of billable time",
    "params": {
      "end": {
        "data_type": "datetime",
        "name": "end",
        "required": true
      },
      "interval": {
        "data_type": "str",
        "name": "interval",
        "required": false
      },
      "machines": {
        "data_type": "list",
        "name": "machines",
        "required": true
      },
      "start": {
        "data_type": "datetime",
        "name": "start",
        "required": true
      }
    },
    "result_type": "html",
    "tags": [
      "financial"
    ],
    "title": "Billable Excess Capacity"
  },
  "downtime": {
    "description": "Analyze machine downtime by reason",
    "params": {
      "end": {
        "data_type": "datetime",
        "name": "end",
        "required": true
      },
      "machines": {
        "data_type": "list",
        "name": "machines",
        "required": true
      },
      "start": {
        "data_type": "datetime",
        "name": "start",
        "required": true
      }
    },
    "result_type": "html",
    "tags": [
      "production"
    ],
    "title": "Downtime"
  },
  "goal": {
    "description": "Indicates whether each selected machine is expected to reach its part goal on the current day.",
    "params": {
      "machines": {
        "data_type": "list",
        "name": "machines",
        "required": true
      }
    },
    "result_type": "html",
    "tags": [
      "production"
    ],
    "title": "Goal Status"
  },
  "kudos": {
    "description": "Ranks users by how many kudos their notes received during the selected time window.",
    "params": {
      "end": {
        "data_type": "str",
        "name": "end",
        "required": true
      },
      "start": {
        "data_type": "str",
        "name": "start",
        "required": true
      }
    },
    "result_type": "html",
    "tags": [
      "personnel"
    ],
    "title": "Kudos"
  },
  "machine_overview": {
    "description": "The total number of parts produced and the average cycle time per part for each day of the selected year for each selected machine.",
    "params": {
      "machines": {
        "data_type": "list",
        "name": "machines",
        "required": true
      },
      "year": {
        "data_type": "int",
        "name": "year",
        "required": true
      }
    },
    "result_type": "html",
    "tags": [
      "production"
    ],
    "title": "Production Overview"
  },
  "machine_runtime": {
    "description": "Breaks down the total runtime on the machines during the selected time window by process.",
    "params": {
      "end": {
        "data_type": "str",
        "name": "end",
        "required": true
      },
      "machines": {
        "data_type": "list",
        "name": "machines",
        "required": true
      },
      "shifts": {
        "data_type": "list",
        "name": "shifts",
        "required": true
      },
      "start": {
        "data_type": "str",
        "name": "start",
        "required": true
      }
    },
    "result_type": "html",
    "tags": [
      "production"
    ],
    "title": "Machine Runtime"
  },
  "maintenance_training": {
    "description": "How many times each user has successfully completed each maintenance item and the average completion time (in minutes).",
    "params": {},
    "result_type": "spreadsheet",
    "tags": [
      "personnel"
    ],
    "title": "Maintenance training matrix"
  },
  "margin": {
    "description": "The number of parts expected, number of parts produced, expected margin, and actual margin per machine for each day in the selected time window, as well as the total margin for the selected interval across all selected machines.",
    "params": {
      "end": {
        "data_type": "str",
        "name": "end",
        "required": true
      },
      "interval": {
        "data_type": "str",
        "name": "interval",
        "required": false
      },
      "machines": {
        "data_type": "list",
        "name": "machines",
        "required": true
      },
      "start": {
        "data_type": "str",
        "name": "start",
        "required": true
      }
    },
    "result_type": "html",
    "tags": [
      "financial"
    ],
    "title": "Margin Report"
  },
  "part": {
    "description": "The number of good and scrapped parts broken down by machine and program for each interval in the time range selected.",
    "params": {
      "end": {
        "data_type": "str",
        "name": "end",
        "required": true
      },
      "interval": {
        "data_type": "str",
        "name": "interval",
        "required": false
      },
      "machines": {
        "data_type": "list",
        "name": "machines",
        "required": true
      },
      "start": {
        "data_type": "str",
        "name": "start",
        "required": true
      }
    },
    "result_type": "spreadsheet",
    "tags": [
      "production"
    ],
    "title": "Parts Report"
  },
  "part_cycle": {
    "description": "A list of parts with details about their cycle time.",
    "params": {
      "end": {
        "data_type": "str",
        "name": "end",
        "required": true
      },
      "machines": {
        "data_type": "list",
        "name": "machines",
        "required": true
      },
      "start": {
        "data_type": "str",
        "name": "start",
        "required": true
      }
    },
    "result_type": "spreadsheet",
    "tags": [
      "production"
    ],
    "title": "Part cycle report"
  },
  "production_summary": {
    "description": "Per-shift breakdown of part production, state history, and utilization.",
    "params": {
      "end": {
        "data_type": "str",
        "name": "end",
        "required": true
      },
      "machines": {
        "data_type": "list",
        "name": "machines",
        "required": true
      },
      "shifts": {
        "data_type": "list",
        "name": "shifts",
        "required": true
      },
      "start": {
        "data_type": "str",
        "name": "start",
        "required": true
      }
    },
    "result_type": "html",
    "tags": [
      "production"
    ],
    "title": "Production summary report"
  },
  "state_history": {
    "description": "State history details for selected machines over a given timeframe.",
    "params": {
      "end": {
        "data_type": "str",
        "name": "end",
        "required": true
      },
      "interval": {
        "data_type": "str",
        "name": "interval",
        "required": false
      },
      "machines": {
        "data_type": "list",
        "name": "machines",
        "required": true
      },
      "start": {
        "data_type": "str",
        "name": "start",
        "required": true
      }
    },
    "result_type": "spreadsheet",
    "tags": [
      "production"
    ],
    "title": "Machine State"
  },
  "tmac_limit_suggestion": {
    "description": "Calculate TMAC wear and extreme limits based on historical work data.",
    "params": {
      "end": {
        "data_type": "str",
        "name": "end",
        "required": true
      },
      "job": {
        "data_type": "str",
        "name": "job",
        "required": true
      },
      "start": {
        "data_type": "str",
        "name": "start",
        "required": true
      },
      "tool": {
        "data_type": "int",
        "name": "tool",
        "required": true
      }
    },
    "result_type": "html",
    "tags": [
      "tools"
    ],
    "title": "TMAC limit suggestions"
  },
  "tool_alarm": {
    "description": "The number of TMAC alarms triggered by each tool",
    "params": {
      "end": {
        "data_type": "str",
        "name": "end",
        "required": true
      },
      "machines": {
        "data_type": "list",
        "name": "machines",
        "required": true
      },
      "start": {
        "data_type": "str",
        "name": "start",
        "required": true
      }
    },
    "result_type": "html",
    "tags": [
      "tools"
    ],
    "title": "Tool Alarms"
  },
  "tool_cost": {
    "description": "Shows the cost of each tool per part produced by each of the selected processes",
    "params": {
      "end": {
        "data_type": null,
        "name": "end",
        "required": true
      },
      "interval": {
        "data_type": "str",
        "name": "interval",
        "required": false
      },
      "processes": {
        "data_type": "list",
        "name": "processes",
        "required": true
      },
      "start": {
        "data_type": null,
        "name": "start",
        "required": true
      }
    },
    "result_type": "spreadsheet",
    "tags": [
      "tools",
      "financial"
    ],
    "title": "Tooling cost"
  },
  "tool_location_history": {
    "description": "Tools that have been used in a specific location in a machine",
    "params": {
      "end": {
        "data_type": "str",
        "name": "end",
        "required": true
      },
      "machines": {
        "data_type": "list",
        "name": "machines",
        "required": true
      },
      "start": {
        "data_type": "str",
        "name": "start",
        "required": true
      },
      "tool_location": {
        "data_type": "int",
        "name": "tool_location",
        "required": true
      }
    },
    "result_type": "html",
    "tags": [
      "tools"
    ],
    "title": "Tool Location History"
  },
  "tool_stock_out": {
    "description": "How long production can continue based on the stock of each inventory item that is currently in use.",
    "params": {},
    "result_type": "html",
    "tags": [
      "tools"
    ],
    "title": "Tool Stock Remaining Time"
  },
  "tool_usage": {
    "description": "The number of replacements expected vs. the number of replacements made for each tool that was replaced on the selected machines during the selected time window.",
    "params": {
      "end": {
        "data_type": "str",
        "name": "end",
        "required": true
      },
      "machines": {
        "data_type": "list",
        "name": "machines",
        "required": true
      },
      "start": {
        "data_type": "str",
        "name": "start",
        "required": true
      }
    },
    "result_type": "html",
    "tags": [
      "tools"
    ],
    "title": "Tool Usage"
  },
  "tool_work": {
    "description": "TMAC work done by a chosen tool charted alongside its replacement history",
    "params": {
      "end": {
        "data_type": "str",
        "name": "end",
        "required": true
      },
      "job": {
        "data_type": "str",
        "name": "job",
        "required": false
      },
      "section": {
        "data_type": "int",
        "name": "section",
        "required": false
      },
      "show_replacements": {
        "data_type": "bool",
        "name": "show_replacements",
        "required": false
      },
      "start": {
        "data_type": "str",
        "name": "start",
        "required": true
      },
      "tool": {
        "data_type": "int",
        "name": "tool",
        "required": true
      }
    },
    "result_type": "html",
    "tags": [
      "tools"
    ],
    "title": "Tool Work"
  },
  "utilization_history": {
    "description": "Utilization of the selected machines charted over time",
    "params": {
      "absolute_utilization": {
        "data_type": "bool",
        "name": "absolute_utilization",
        "required": false
      },
      "end": {
        "data_type": "str",
        "name": "end",
        "required": true
      },
      "interval": {
        "data_type": "str",
        "name": "interval",
        "required": false
      },
      "machines": {
        "data_type": "list",
        "name": "machines",
        "required": true
      },
      "start": {
        "data_type": "str",
        "name": "start",
        "required": true
      }
    },
    "result_type": "html",
    "tags": [
      "production"
    ],
    "title": "Utilization History"
  }
}
Returns:

an object mapping report type IDs to objects, each with:

  • the report_type (same as the key)

  • the title and description strings of the report

  • a params array of parameter name strings

  • a result_type of “html” or “spreadsheet”

  • an array of tags that apply to the report (for visual grouping). These tags are currently used:
    • financial

    • personnel

    • production

    • tools

GET /api/reports/(report_type)/run

Run the specified report.

Values for the parameters listed in the report type’s params should be sent in the URL as query parameters for GET requests or in the request body as a JSON object for POST requests (with Content-Type: application/json).

Errors will be returned as an HTML page for GET requests or as a JSON object for POST requests.

Note

If a machine_tags parameter is provided, the machines parameter becomes optional, and any list provided for the machines parameter will be expanded to include machines having any of the tags specified in the machine_tags parameter.

Returns:

an HTML document or Microsoft Excel workbook file. The Content-Type and Content-Disposition response headers can be used to determine the result type.

Status Codes:
POST /api/reports/(report_type)/run

Run the specified report.

Values for the parameters listed in the report type’s params should be sent in the URL as query parameters for GET requests or in the request body as a JSON object for POST requests (with Content-Type: application/json).

Errors will be returned as an HTML page for GET requests or as a JSON object for POST requests.

Note

If a machine_tags parameter is provided, the machines parameter becomes optional, and any list provided for the machines parameter will be expanded to include machines having any of the tags specified in the machine_tags parameter.

Returns:

an HTML document or Microsoft Excel workbook file. The Content-Type and Content-Disposition response headers can be used to determine the result type.

Status Codes:
GET /api/reports/scheduled

Get all existing scheduled reports.

Returns:

an object mapping scheduled report ID to ScheduledReport object

POST /api/reports/scheduled/preview

Get the next few times when the provided schedule would run.

Query Parameters:
  • count (int) – how many future times to get (defaults to 1)

Reqjson:

the scheduling fields of a ScheduledReport object

Returns:

an array of count UNIX timestamps

POST /api/reports/scheduled/(int: scheduled_report_id)/run

Run an existing scheduled report now.

Status Codes:
PUT /api/reports/scheduled

Create a new scheduled report.

Reqjson:

a ScheduledReport object

Status Codes:
Returns:

the new ScheduledReport object

PATCH /api/reports/scheduled/(int: scheduled_report_id)

Edit an existing scheduled report.

Status Codes:
  • 404 Not Found – if the specified scheduled report ID is invalid

Returns:

the new state of the scheduled report object

DELETE /api/reports/scheduled/(int: scheduled_report_id)

Delete an existing scheduled report.

Status Codes: