State Corrections and Supervision Schema
This describes the current definition for our state corrections and supervision schema. Though this conceptual schema is consistent across all stages of the platform and all steps of the ingest pipeline, it passes through different concrete implementations as it progresses from raw incoming data (in some arbitrary structure) to fully normalized information (in our schematic structure).
- As raw incoming data, all data fields are optional. When normalized, a minority of fields become required (these values tend to be inferred when absent). Fields that become required after normalization are marked below.
- As raw incoming data, all data fields can be provided as strings. The provided strings will be converted to the appropriate data types during the ingest progress, with errors surfaced if a value is provided that cannot be appropriately converted.
- Certain fields are coded as enumerated types: coding is based on a global mapping of strings to enums and jurisdiction-specific override maps thereof.
- Many common ways of representing a value can be converted into the valid values listed below (e.g., ‘F’, ‘Fem’, and ‘Female’ will each result in a value of ‘Female’ for gender)
- Uncommon/jurisdiction-specific representations can also be converted with an override mapping that takes precedence over the global mapping (e.g. some jurisdictions may use, for example, integer values, to represent different genders).
- Values are case insensitive.
Each Person holds details about the individual, as well as lists of several child entities. Some of these child entities are extensions of individual details, e.g. Race is its own entity as opposed to a single field, to allow for the inclusion/tracking of multiple such entities or sources of such information.
Field Name | Description |
---|---|
full_name |
A person’s name. Only use this when names are in a single field. Use surname and given_names when they are separate. |
surname |
A person’s surname. Only use this when surname and given names are in separate fields. Use full_name when they are in a single field. |
given_names |
A person’s given names, separated by whitespace. Only use this when surname and given names are in separate fields. Use full_name when they are in a single field |
middle_names |
A person’s middle name(s) or initial. Only use this when a middle names or initials are given in a separate field. Use full_name when they are in a single field |
name_suffix |
A person’s name suffix(s). Only use this when a suffix is given in a separate field. Use full_name when they are in a single field |
birthdate |
Date the person was born. Use this when it is known. When a person’s age but not birthdate is reported, use age instead. |
gender |
A person’s gender. Valid values:
|
age |
A person’s age. From this age, a “birthdate” is inferred as the 1st of January of the year indicated by the age. Use this when age is known but birthdate is not. When a birthdate is reported, use birthdate instead. Age is ignored if birthdate is set. |
residency_status |
A person's reported residency status. Valid values:
|
external_ids |
|
aliases |
|
races |
|
ethnicities |
|
assessments |
|
sentence_groups |
|
program_assignments |
|
Each Person External Id holds a single "external id" provided by the source data system being ingested. An external id is a unique identifier for an individual, unique within the scope of the source data system. We include information denoting the source of the id to make this into a globally unique identifier.
Field Name | Description |
---|---|
external_id |
|
id_type |
|
state_code |
|
Each Person Alias holds the naming information for an alias for a particular person. Because a given name is an alias of sorts, we copy over the name fields provided on the Person object into a child Alias object. An alias is structured similarly to a name, with various different fields, and not a raw string -- systems storing aliases are raw strings should provide those in the full_name
field below.
Field Name | Description |
---|---|
alias_id |
Unique identifier for an alias. If not specified, one will be generated. |
state_code |
The code of the state providing the object. |
full_name |
A person’s name. Only use this when names are in a single field. Use surname and given_names when they are separate. |
surname |
A person’s surname. Only use this when surname and given names are in separate fields. Use full_name when they are in a single field. |
given_names |
A person’s given names, separated by whitespace. Only use this when surname and given names are in separate fields. Use full_name when they are in a single field |
middle_names |
A person’s middle name(s) or initial. Only use this when a middle names or initials are given in a separate field. Use full_name when they are in a single field |
name_suffix |
A person’s name suffix(s). Only use this when a suffix is given in a separate field. Use full_name when they are in a single field |
Each Person Race holds a single reported race for a single person. A Person may have multiple Person Race objects because they may be multi-racial, or because different data sources may report different races.
Field Name | Description |
---|---|
race_id |
|
race |
|
state_code |
|
Each Person Ethnicity holds a single reported ethnicity for a single person. A Person may have multiple Person Ethnicity objects because they may be multi-ethnic, or because different data sources may report different ethnicities.
Field Name | Description |
---|---|
ethnicity_id |
|
ethnicity |
|
state_code |
|
The Assessment object represents information about an assessment conducted for some person. Assessments are used in various stages of the justice system to assess a person's risk, or a person's needs, or to determine what course of action to take, such as pretrial sentencing or program reference. An Assessment is always about a particular person, but it may also be optionally linked to a particular Incarceration Period or Supervision Period.
Field Name | Description |
---|---|
assessment_id |
|
assessment_class |
|
assessment_type |
|
assessment_date |
|
assessment_score |
|
assessment_level |
|
assessment_metadata |
|
state_code |
|
conducting_agent |
|
The Sentence Group object represents information about a single "sentencing" into the criminal justice system, i.e. the result of a brand new offense by a person who was at liberty. This does not include information about the execution of that sentence, such as periods of incarceration -- only information about the sentence itself and its imposition. A sentence group includes one to many sentences of varying kinds, which contain more detailed information about the sentence.
For example, if a person has never been involved in the criminal justice system before and is sentenced for a felony to prison, this will create a new sentence group. If that person is incarcerated and eventually released to parole, and while on parole commits a violation or a new offense that leads to them being revoked, that will not create a new sentence group -- instead, it will create new sentence and/or period entities within the existing group. If the person is eventually released to parole again and then their parole is terminated, such that they are now at liberty, a new offense that leads to charges and a sentence will create a brand new sentence group.
Field Name | Description |
---|---|
sentence_group_id |
Unique identifier for a sentence group. If not specified, one will be generated automatically. |
status |
The current status of this sentence group. Valid values:
|
date_imposed |
The date the sentences herein were first imposed. |
min_length |
Minimum duration of the sentence (across all sentences in the group). |
max_length |
Maximum duration of the sentence (across all sentences in the group). |
is_life |
Whether or not this includes a life sentence. |
state_code | The code of the state under whose jurisdiction the sentence was imposed. |
county_code |
The code of the county under whose jurisdiction the sentence was imposed. |
fines | A list of Fines objects included in this group. |
supervision_sentences | A list of Supervision Sentence objects included in this group. |
incarceration_sentences | A list of Incarceration Sentence objects included in this group. |
The Fine object represents information about a single fine imposed as part of a group of related sentences. Multiple distinct fines should ideally be reported as separate fine records, but if they have been pre-aggregated then they will be recorded as a single Fine object.
Field Name | Description |
---|---|
fine_id |
|
status |
|
date_paid |
|
fine_dollars |
|
state_code |
|
county_code |
|
charges |
|
The Incarceration Sentence object represents information about a single sentence to a period of incarceration imposed as part of a group of related sentences. Multiple distinct, related sentences to incarceration should be captured as separate incarceration sentence objects within the same group. These sentences may, for example, be concurrent or consecutive to one another. Like the sentence group above, the incarceration sentence represents only the imposition of some sentence terms, not an actual period of incarceration experienced by the person.
An Incarceration Sentence can reference many charges, and each charge can reference many sentences -- the relationship is many:many.
An Incarceration Sentence can have multiple child Incarceration Periods. It can also have child Supervision Periods since a sentence to incarceration may result in a person being paroled, for example. In some jurisdictions, this would be modeled as distinct sentences of incarceration and supervision, but this is not universal.
Field Name | Description |
---|---|
incarceration_sentence_id |
Unique identifier for a sentence. If not specified, one will be generated. |
status |
The current status of this sentence. Valid values:
|
incarceration_type |
The type of incarceration the person is being sentenced to. Valid values:
|
date_imposed |
The date this sentence was imposed. |
projected_min_release_date |
The earliest projected date the person may be released from incarceration due to this sentence. |
projected_max_release_date |
The latest projected date the person may be released from incarceration due to this sentence. |
parole_eligibility_date |
The first date under which the person becomes eligible for parole under the terms of this sentence. |
min_length |
Minimum duration of this sentence. |
max_length |
Maximum duration of this sentence. |
is_life |
Whether or not this is a life sentence. |
parole_possible |
Whether or not the person may be released to parole under the terms of this sentence. |
initial_time_served |
The amount of any time already served, to possibly be credited against the overall sentence duration. |
good_time |
Any good time the person has credited against this sentence due to good conduct, a.k.a. "time off for good behavior," if applicable. |
earned_time |
Any earned time the person has credited against this sentence due to participation in programming designed to reduce the likelihood of re-offense, if applicable. |
state_code | The code of the state under whose jurisdiction the sentence was imposed. |
county_code |
The code of the county under whose jurisdiction the sentence was imposed. |
charges | A list of Charge objects representing the set of charges for which this sentence was imposed. |
incarceration_periods | A list of Incarceration Period objects representing the distinct periods of incarceration the person has undergone in accordance with this sentence. |
supervision_periods | A list of Supervision Period objects representing the distinct periods of supervision the person has undergone in accordance with this sentence. |
The Supervision Sentence object represents information about a single sentence to a period of supervision imposed as part of a group of related sentences. Multiple distinct, related sentences to supervision should be captured as separate supervision sentence objects within the same group. These sentences may, for example, be concurrent or consecutive to one another. Like the sentence group above, the supervision sentence represents only the imposition of some sentence terms, not an actual period of supervision experienced by the person.
A Supervision Sentence can reference many charges, and each charge can reference many sentences -- the relationship is many:many.
A Supervision Sentence can have multiple child Supervision Periods. It can also have child Incarceration Periods since a sentence to supervision may result in a person's parole being revoked and the person being re-incarcerated, for example. In some jurisdictions, this would be modeled as distinct sentences of supervision and incarceration, but this is not universal.
Field Name | Description |
---|---|
supervision_sentence_id |
Unique identifier for a sentence. If not specified, one will be generated. |
status |
The current status of this sentence. Valid values:
|
supervision_type |
The type of supervision the person is being sentenced to. Valid values:
|
date_imposed |
The date this sentence was imposed. |
projected_completion_date |
The earliest projected date the person may have completed their supervision. |
completion_date |
The date the person actually did complete their supervision. |
min_length |
Minimum duration of this sentence. |
max_length |
Maximum duration of this sentence. |
state_code | The code of the state under whose jurisdiction the sentence was imposed. |
county_code |
The code of the county under whose jurisdiction the sentence was imposed. |
charges | A list of Charge objects representing the set of charges for which this sentence was imposed. |
incarceration_periods | A list of Incarceration Period objects representing the distinct periods of incarceration the person has undergone in accordance with this sentence. |
supervision_periods | A list of Supervision Period objects representing the distinct periods of supervision the person has undergone in accordance with this sentence. |
The Charge object holds information on a single charge that a person has been accused of. A single Charge can reference multiple Sentences (e.g. multiple concurrent sentences served due to an overlapping set of charges) and a multiple charges can reference a single Sentence (e.g. one sentence resulting from multiple charges). Thus, the relationship between Charge and each distinct Sentence type is many:many.
Each Charge is brought to trial as part of a no more than a single Court Case.
Field Name | Description |
---|---|
charge_id |
Unique identifier for a charge. If not specified, one will be generated automatically. |
offense_date |
The date of the alleged offense that led to this charge. |
date_charged |
The date the person was charged with the alleged offense. |
ncic_code |
The standardized NCIC code for the charged offense. |
statute |
The identifier of the charge in the state or federal code. |
description |
A text description of the charge. |
attempted |
Whether this charge was an attempt or not (e.g. attempted murder). |
classification_type |
Charge classification. Valid values (this expands semi-regularly):
|
classification_subtype |
The sub-classification of the charge, such as a degree (e.g. 1st Degree, 2nd Degree, etc.) or a class (e.g. Class A, Class B, etc.). This is untyped at present, i.e. a simple string, but may become typed in the future. |
counts |
The number of counts of this charge which are being brought against the person. |
charge_notes |
Free text containing other information about a charge. |
is_controlling |
Whether or not this is the "controlling" charge in a set of related charges. A controlling charge is the one which is responsible for the longest possible sentence duration in the set. |
charging_entity |
The entity that brought this charge (e.g., Boston Police Department, Southern District of New York). |
state_code | The code of the state under whose jurisdiction the charge was brought. |
county_code |
The code of the county under whose jurisdiction the charge was brought. |
court_case | A link to the Court Case object associated with this charge. |
bond | A link to the Bond object associated with this charge. |
The Court Case object holds information on a single court case that a person stands trial at. This represents the case itself, not the charges brought in the case, or any sentences imposed as a result of the case.
Field Name | Description |
---|---|
case_id |
Unique identifier for a case. If not specified, one will be generated automatically. |
status |
The current status of the case. |
court_type |
The type of court this charge will be / was heard in. |
date_convicted |
The date the person was convicted, if applicable. |
next_court_date |
Date of the next scheduled court appearance for this case. |
court_fee_dollars |
The amount of any court fees due for this case, in U.S. Dollars. |
state_code | The code of the state under whose jurisdiction the case was tried. |
county_code |
The code of the county under whose jurisdiction the case was tried. |
judge_name | An Agent object representing the judge who tried the case. |
The Bond object holds information on about a bond, i.e. money a person must be to get/stay out of jail. A bond can be per charge (each charge will have one bond object associated with it), apply to multiple charges (multiple charges point to the same bond), or be a total bond across the entire sentence group (just means all the charges for the sentence group are associated with the same bond).
Field Name | Description |
---|---|
bond_id |
Unique identifier for a bond. |
status |
The status of this bond. Valid values:
|
amount |
The amount of the bond, in U.S. Dollars. |
bond_type |
The type of bond. Valid values:
|
state_code | The code of the state under whose jurisdiction the bond was issued. |
county_code | The code of the county under whose jurisdiction the bond was issued. |
The Incarceration Period object represents information about a single period of incarceration, defined as a contiguous stay by a particular person in a particular facility. As a person transfers from facility to facility, these are modeled as multiple abutting incarceration periods. This also extends to temporary transfers to, say, hospitals or court appearances. The sequence of incarceration periods can be squashed into longer conceptual periods (e.g. from the first admission to the final release for a particular sentence) for analytical purposes, such as measuring recidivism and revocation -- this is done with a fine-grained examination of the admission dates, admission reasons, release dates, and release reasons of consecutive incarceration periods.
Handling of incarceration periods is a crucial aspect of our platform and involves work in jurisdictional ingest mappings, entity matching, and calculation. Fortunately, this means that we have practice working with varied representations of this information.
Incarceration Periods can be children of either Incarceration Sentences or Supervision Sentences, for reasons established in the descriptions of those objects.
Incarceration Periods have zero to many Incarceration Incidents as children, and zero to many Parole Decisions. They also may have Assessments or Program Assignments as children, if any of those objects are explicitly related to this particular period of incarceration.
Incarceration Periods also optionally have a child source_supervision_violation_response
, which is a Supervision Violation Response of type REVOCATION that corresponds to the revocation that caused the re-incarceration leading back to this particular incarceration period. This connection is established during entity matching, unless that link can be explicitly provided in the source data.
Field Name | Description |
---|---|
incarceration_period_id |
Unique identifier for a period. If not specified, one will be generated. |
status |
The current status of this period. Valid values:
|
incarceration_type |
The type of incarceration the person is serving. Valid values:
|
admission_date |
The date the person was admitted to this particular period of incarceration. |
release_date |
The date the person was released from this particular period of incarceration. |
admission_reason |
The reason the person was admitted to this particular period of incarceration. Valid values:
|
projected_release_reason |
The reason the person would be released on the current projected date for their earliest possible release. Valid values same as |
release_reason |
The reason the person was released from this particular period of incarceration. Valid values:
|
facility |
The facility in which the person is currently incarcerated. |
housing_unit |
The housing unit within the facility in which the person currently resides. |
state_code | The code of the state where the person is currently incarcerated. |
county_code |
The code of the county where the person is currently incarcerated. |
incarceration_incidents | A list of Incarceration Incident objects representing individual behavioral incidents recorded against the person during this period of incarceration. |
parole_decisions | A list of Parole Decision objects representing the parole hearings debating releasing the person from this period of incarceration to parole, and their outcomes. |
assessments | A list of Assessment objects representing assessments conducted for the person, explicitly within the context of this incarceration period (some assessments point only to a person and not an incarceration period). |
program_assignments | A list of Program Assignment objects representing assignments of the person to rehabilitative programming, explicitly within the context of this incarceration period (some program assignments point only to a person and not an incarceration period). |
source_supervision_violation_response | An optional Supervision Violation Response object indicating a revocation due to a supervision violation that directly led to this period of incarceration. |
The Incarceration Incident object represents any behavioral incidents recorded against a person during a period of incarceration, such as a fight with another incarcerated individual or the possession of contraband. An Incarceration Incident has zero to many Incarceration Incident Outcome children, indicating any official outcomes, e.g. disciplinary responses, due to the incident.
Field Name | Description |
---|---|
incarceration_incident_id |
Unique identifier for an incident. If not specified, one will be generated. |
incident_type |
The type of incident. Valid values:
|
incident_date |
The date on which the incident took place. |
incident_details |
Descriptive notes describing the incident. |
facility |
The facility in which the incident took place. |
location_within_facility |
The more specific location where the incident took place. |
state_code |
The code of the state where the incident took place. |
responding_officer |
An Agent object representing the officer who responded to the incident. |
incarceration_incident_outcomes |
A list of Incarceration Incident Outcome objects representing any outcomes in response to the incident. |
The Incarceration Incident Outcome object represents the outcomes in response to a particular Incarceration Incident. These can be positive, neutral, or negative, but they should never be "empty" or "null" -- an incident that has no outcomes should simply have no Incarceration Incident Outcome children objects.
Field Name | Description |
---|---|
incarceration_incident_outcome_id |
Unique identifier for an outcome. If not specified, one will be generated. |
outcome_type |
The type of outcome. Valid values:
|
date_effective |
The date on which the outcome takes effect. |
outcome_description |
Descriptive notes describing the outcome. |
punishment_length |
The length of any durational, punishment-focused outcome. |
state_code | The code of the state under whose jurisdiction the outcome is enforced. |
The Parole Decision object represents information about a particular parole hearing deciding whether or not to grant parole to a currently incarcerated person. This includes information about the context of the hearing and also its final decision/outcome.
Field Name | Description |
---|---|
parole_decision_id |
Unique identifier for a parole decision. If not specified, one will be generated. |
decision_date |
The date on which the decision was made. |
decision_outcome |
The outcome of the decision. Valid values:
|
decision_reasoning |
Descriptive notes describing the reasoning behind the decision. |
corrective_action |
Any corrective actions that must be taken by the person to ensure their parole is granted, if applicable. |
corrective_action_deadline |
The date by which any corrective actions must be taken to ensure parole is granted, if applicable. |
punishment_length |
The length of any durational, punishment-focused outcome. |
state_code | The code of the state under whose jurisdiction the parole hearing is convened. |
county_code |
The code of the county under whose jurisdiction the parole hearing is convened. |
decision_agents | A list of Agent objects representing each member of the parole board who conducted the hearing and made the decision. |
The Supervision Period object represents information about a single period of supervision, defined as a contiguous period of custody for a particular person under a particular jurisdiction. As a person transfers from jurisdiction to jurisdiction, these are modeled as multiple abutting supervision periods. Multiple periods of supervision for a particular person may be overlapping, due to extended periods of supervision that are temporarily interrupted by, say, periods of incarceration, or periods of supervision stemming from charges in different jurisdictions.
Supervision Periods can be children of either Incarceration Sentences or Supervision Sentences, for reasons established in the descriptions of those objects.
Supervision Periods have zero to many Supervision Violations as children. They also may have Assessments or Program Assignments as children, if any of those objects are explicitly related to this particular period of supervision.
Field Name | Description |
---|---|
supervision_period_id |
Unique identifier for a period. If not specified, one will be generated. |
status |
The current status of this period. Valid values:
|
supervision_type |
The type of supervision the person is serving. Valid values:
|
start_date |
The date the person began this period of supervision. |
termination_date |
The date the period of supervision was terminated, either positively or negatively. |
admission_reason |
The reason the person was admitted to this particular period of supervision. Valid values:
|
termination_reason |
The reason the period of supervision was terminated. Valid values:
|
supervision_level |
The level of supervision the person is receiving, i.e. an analog to the security level of incarceration, indicating frequency of contact, strictness of constraints, etc. Valid values:
|
conditions |
The conditions of this period of supervision which the person must follow to avoid a disciplinary response. |
state_code | The code of the state where the person is currently supervised. |
county_code |
The code of the county where the person is currently supervised. |
supervising_officer |
An Agent object representing the officer supervising this person. |
case_type_entries | A list of Supervision Case Type Entry objects representing all case types applicable to this period of supervision. |
supervision_contacts | A list of Supervision Contact objects representing individual contacts between this person and an agent during this period of supervision. |
supervision_violations | A list of Supervision Violation objects representing individual violations recorded against the person during this period of supervision. |
assessments | A list of Assessment objects representing assessments conducted for the person, explicitly within the context of this supervision period (some assessments point only to a person and not a supervision period). |
program_assignments | A list of Program Assignment objects representing assignments of the person to rehabilitative programming, explicitly within the context of this supervision period (some program assignments point only to a person and not a supervision period). |
The Supervision Case Type Entry object represents a particular case type that applies to this period of supervision. A case type implies certain conditions of supervision that may apply, or certain "levels" or "intensity" of supervision, or certain kinds of specialized courts that generated the sentence to supervision, or even that the person being supervised may be supervised by particular kinds of officers with particular types of "caseloads" they are responsible for. A Supervision Period may have zero to many distinct case types.
Field Name | Description |
---|---|
supervision_case_type_entry_id |
|
case_type |
|
state_code |
|
The Supervision Contact object represents information about a point of contact between a person under supervision and some agent representing the department, typically a supervising officer. These may include face-to-face meetings, phone calls, emails, or other such media. At these contacts, specific things may occur, such as referral to programming or written warnings or even arrest, but any and all events that happen as part of a single contact are modeled as one supervision contact.
Supervision Periods have zero to many Supervision Contacts as children, and each Supervision Contact has one to many Supervision Periods as parents. This is because a given person may be serving multiple periods of supervision simultaneously in rare cases, and a given point of contact may apply to both.
Field Name | Description |
---|---|
supervision_contact_id |
Unique identifier for a contact. If not specified, one will be generated. |
status |
The current status of this contact. Valid values:
|
contact_type |
The type of contact which took place. Valid values:
|
contact_date |
The date when this contact happened. |
contact_reason |
The reason why this contact took place. Valid values:
|
location |
Where this contact took place. Valid values:
|
verified_employment |
Whether or not the person's current employment status was verified at this contact. |
resulted_in_arrest |
Whether or not this contact resulted in the person's arrest. |
state_code |
The code of the state where the person is currently supervised. |
contacted_agent |
An Agent object representing the agent who made the contact with the person. |
supervision_periods | A list of Supervision Period objects representing each distinct period of supervision being served by the person that this contact applies to. |
The Supervision Violation object represents any violations recorded against a person during a period of supervision, such as technical violation or a new offense. A Supervision Violation has zero to many Supervision Violation Response children, indicating any official response to the violation, e.g. a disciplinary response such as a revocation back to prison or extension of supervision.
Field Name | Description |
---|---|
supervision_violation_id |
Unique identifier for a violation. If not specified, one will be generated. |
violation_date |
The date on which the violation took place. |
is_violent |
Whether or not the violation was violent in nature. |
state_code |
The code of the state where the violation took place. |
supervision_violation_responses |
A list of Supervision Violation Response objects representing any official responses to the violation. |
supervision_violation_types |
A list of Supervision Violation Type Entry objects representing all types of violations recorded by this particular violation. |
supervision_violated_conditions |
A list of Supervision Violated Condition Entry objects representing all conditions which were violated by this particular violation. |
The Supervision Violation Type Entry object represents each specific violation type that was composed within a single violation. Each supervision violation has zero to many such violation types. For example, a single violation may have been reported for both absconsion and a technical violation. However, it may also be the case that separate violations were recorded for both an absconsion and a technical violation which were related in the real world. The drawing line is how the violation is itself reported in the source data: if a single violation report filed by an agency staff member includes multiple types of violations, then it will be ingested into our schema as a single supervision violation with multiple supervision violation type entries.
Field Name | Description |
---|---|
supervision_violation_type_entry_id |
Unique identifier for a violation type entry. If not specified, one will be generated. |
violation_type |
The type of violation. Valid values:
|
state_code |
The code of the state under whose supervision the violation is committed. |
The Supervision Violated Condition Entry object represents a particular condition of supervision which was violated by a particular supervision violation. Each supervision violation has zero to many violated conditions. For example, a violation may be recorded because a brand new charge has been brought against the supervised person.
Field Name | Description |
---|---|
supervision_violated_condition_entry_id |
|
condition |
|
state_code |
|
The Supervision Violation Response object represents the official responses to a particular Supervision Violation. These can be positive, neutral, or negative, but they should never be "empty" or "null" -- a violation that has no responses should simply have no Supervision Violation Response children objects.
As described under Incarceration Period, any Supervision Violation Response which leads to a revocation back to prison should be linked to the subsequent period of incarceration. This can be done implicitly in entity matching, or can be marked explicitly in incoming data, either here or on the incarceration period as the case may be.
Field Name | Description |
---|---|
supervision_violation_response_id |
Unique identifier for a response. If not specified, one will be generated. |
response_type |
The type of response to the violation. Valid values:
|
response_date |
The date on which the response was made official. |
is_draft |
Whether or not this is response is still a draft, i.e. is not yet finalized by the deciding body. |
state_code |
The code of the state under whose jurisdiction the response is enforced. |
deciding_body_type |
The type of decision-making body who made the decision, such as a supervising officer or a parole board or a judge |
decision_agents |
A list of Agent objects representing each individual responsible for making the decision in response to the violation. |
supervision_violation_response_decisions |
A list of Supervision Violation Response Decision Entry objects representing each specific decision made as part of this violation response. |
The Supervision Violation Response Decision Entry object represents each specific decision made in response to a particular supervision violation. Each supervision violation response has zero to many such decisions. Decisions are essentially the final consequences of a violation, actions such as continuance, privileges revoked, or revocation.
Field Name | Description |
---|---|
supervision_violation_response_decision_entry_id |
|
decision |
A specific decision that was made in response, if applicable. Valid values:
|
revocation_type |
The specific type of revocation that the person will be subject to, if applicable. Valid values:
|
state_code |
The code of the state under whose jurisdiction the response is enforced. |
The Program Assignment object represents information about the assignment of a person to some form of rehabilitative programming -- and their participation in the program -- intended to address specific needs of the person. People can be assigned to programs while under various forms of custody, principally while incarcerated or under supervision. These programs can be administered by the agency/government, by a quasi-governmental organization, by a private third party, or any other number of service providers.
A Program Assignment is always for a particular person, but it may also be optionally linked to a particular Incarceration Period or Supervision Period if the program is explicitly within the bounds of that period of custody.
The programming-related portion of our schema is still being constructed and will be added to in the near future.
Field Name | Description |
---|---|
progam_assignment_id |
Unique identifier for a program assignment. If not specified, one will be generated. |
program_id |
Unique identifier for a program being assigned to. |
participation_status |
The status of the person's participation in the program. Valid values:
|
referral_date |
The date the person was referred to the program, if applicable. |
start_date |
The date the person started the program, if applicable. |
discharge_date |
The date the person was discharged from the program, if applicable. |
discharge_reason |
The reason the person was discharged from the program, if applicable. Valid values:
|
program_location |
Where the program takes place. |
referral_metadata |
This includes whichever fields and values are relevant to a fine understanding of a particular referral. It can be provided in any format, but will be transformed into JSON prior to persistence. |
state_code |
The code of the state under where the program is being provided. |
referring_agent | An Agent object representing the person who referred the person to the program. |
The Agent object represents some agent operating on behalf of the criminal justice system, usually referenced in the context of taking some action related to a person moving through that system. This includes references such as the judges trying cases, the officers supervising people on parole, the individuals who make a decision at a parole hearing, and so on. We entity match across Agents where possible so that we can see the full scope of actions taken by a particular agent to understand patterns in their behavior.
Field Name | Description |
---|---|
agent_id |
Unique identifier for an agent. If not specified, one will be generated. |
full_name |
The full name of the agent. |
agent_type |
The type of agent. Valid values (expands as we expand into new portions of the justice system):
|
state_code | The code of the state under where the agent works. |
- Home
- Architecture
- Schemas
- Methodology
- Data Extraction
- Data Normalization
- Entity Matching
- Recidivism Measurement
- Development
- Local Development
- Create a Scraper
- Add a New Schema
- Update BigQuery Views
- Continuous Integration
- Operations