-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Requirements for the challenges.csv data file format
Per page 27 of the policy notice and Notices of Changes to the process.
Column Names, Order, and Data Types (dtypes):
challenge
(dtype: string)challenge_type
(dtype: single-character string)challenger
(dtype: string)challenge_date
(dtype: string)rebuttal_date
(dtype: string)resolution_date
(dtype: string)disposition
(dtype: single-character string)provider_id
(dtype: integer here, string in challenger)technology
(dtype: integer)- dtype test: test_challenges_column_dtypes__technology
location_id
(dtype: integer)- dtype test: test_challenges_column_dtypes__location_id
unit
(dtype: string)reason_code
(dtype: single-character string)evidence_file_id
(dtype: string)response_file_id
(dtype: string)resolution
(dtype: string)advertised_download_speed
(dtype: integer)download_speed
(dtype: integer)- dtype test: test_challenges_column_dtypes__download_speed
advertised_upload_speed
(dtype: integer)upload_speed
(dtype: integer)- dtype test: test_challenges_column_dtypes__upload_speed
latency
(dtype: float)- dtype test: test_challenges_column_dtypes__latency
- Correct column names
- Correct column order
Column Content Requirements
-
challenge
: String with a length between (inclusive) 1 and 50 characters. -
challenge_type
: Enum in [A, S, L, D, T, B, P, E, N, V, F, M, X, Y, Z] -
challenge_date
:- Must be in ISO 8601 extended date format.
- Must precede other dates (if they're not null)
-
rebuttal_date
:- Must be in ISO 8601 extended date format.
- Must be later than challenge date and before or on resolution date.
-
resolution_date
:- Must be in ISO 8601 extended date format.
- Must be later than challenge date and on or after rebuttal_date.
-
disposition
: Enum in [I, N, A, S, R, M] -
provider_id
: A 6-digit integer (ideally identifying an ISP in the FCC's providers data, but this only confirms that100000 <= provider_id <= 999999
). -
technology
: Enum in [10, 40, 50, 60, 61, 70, 71, 72, 0] -
location_id
: a 10-digit integer$\ge 10^9$ and$\lt 10^{10}$ -
reason_code
: Enum in [1, 2, 3, 4, 5, 6, 8, 9] -
evidence_file_id
: "File names for evidence and responses must only contain US ASCII letters, the digits 0-9, hyphens (-) and underscore (_) characters. File names are not case sensitive. The file name extension must be pdf (PDF files); other file types may be permitted in the future." -
response_file_id
: "File names for evidence and responses must only contain US ASCII letters, the digits 0-9, hyphens (-) and underscore (_) characters. File names are not case sensitive. The file name extension must be pdf (PDF files); other file types may be permitted in the future." -
resolution
: Free text, "required for E, I, S, and R" (presumablychallenge_type
s, but there isn't a type I and R is a CAI type) -
advertised_download_speed
: Non-negative integer, Mbps. -
download_speed
: Non-negative number, Mbps. -
advertised_upload_speed
: Non-negative integer, Mbps. -
upload_speed
: Non-negative number, Mbps. -
latency
: Non-negative number, ms.
Columns Required to be Not Null
-
challenge
: test: test_challenges_column_not_null_validations -
challenge_type
: test test_ChallengeType -
challenge_date
: test test_challenges_col_content__challenge_date -
resolution_date
: test test_challenges_col_content__resolution_date -
disposition
: test: test_challenges_col_content__disposition -
location_id
: test: test_challenges_col_content__location_id
Columns that can be Conditionally Null
-
challenger
:- Can be null if
challenge_type
is in [V, F, M, X, Y, Z] - noted but not checked: null if "[
challenge_type
] E or N challenge was part of pre-challenge process deduplication."
- Can be null if
-
rebuttal_date
: Cannot be null if there was a rebuttal (i.e.,response_file_id
should also be not-null) -
provider_id
: Cannot be null for anychallenge_type
except for "P" (planned service) -
technology
: Cannot be null forchallenge_type
except for "N" (not part of an enforceable commitment) -
reason_code
: Cannot be null ifchallenge_type
is "A" (availability) -
evidence_file_id
: Cannot be null unlesschallenge_type
s in [E, V] (enforceable commitment or DSL) -
response_file_id
: Must be null ifrebuttal_date
is null, and must be not-null ifrebuttal_date
is not-null -
resolution
: Cannot be null forchallenge_type
s in [E, I, S, R]- test: test_challenges_row_rule__resolution_given_challenge_type__disposition
- Noted but not checked: "For E, include name of broadband funding program or other source of the commitment, as applicable." (per pg 30 of the policy notice)
-
advertised_download_speed
: Cannot be null except forchallenge_type
"N" (not part of an enforceable commitment) -
download_speed
: Cannot be null forchallenge_type
s in [S, M] -
advertised_upload_speed
: Cannot be null except forchallenge_type
"N" (not part of an enforceable commitment) -
upload_speed
: Cannot be null forchallenge_type
s in [S, M] -
latency
: Cannot be null forchallenge_type
s in [L, M]
Multi-File Column Rules
-
challenger
: Uniquely identifies a challenger in the table challenger.csv (not case sensitive)- test: ToDo: implement test
Intentionally noted but not checked by this project
provider_id
: Must be a valid provider in the state.location_id
: Must be in the Fabric for that state.