-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Requirements for the challenges.csv data file format
Per page 32 of the policy notice and Notices of Changes to the process.
Column Names, Order, and Data Types (dtypes):
challenge
(dtype: string)challenge_type
(dtype: string)challenger
(dtype: string)category_code
(dtype: string)disposition
(dtype: string)challenge_explanation
(dtype: string)type
(dtype: string)entity_name
(dtype: string)entity_number
(dtype: integer)cms_number
(dtype: string)frn
(dtype: string)location_id
(dtype: integer)address_primary
(dtype: string)city
(dtype: string)state
(dtype: string)zip_code
(dtype: string)longitude
(dtype: string)latitude
(dtype: string)explanation
(dtype: string)need
(dtype: integer)availability
(dtype: integer)
- Correct column names
- Correct column order
Column Content Requirements
-
challenge
: String with a length between (inclusive) 1 and 50 characters.- test: (ToDo: implement data_format-specific test and add link)
- test: test_ChallengeIdValidator
-
challenge_type
: Enum; must be in [C, G, Q, R] -
category_code
: Enum; must be in [X, B, R, D, N, I, T, O]- test: (ToDo: implement data_format-specific test and add link)
- test: test_CAIRationaleNullableValidator
-
disposition
: Enum; must be in [I, N, A, S, R]- test: (ToDo: implement data_format-specific test and add link)
- test: (ToDo: implement test of constants.DispositionsOfCAIChallenge and add link)
-
type
: Enum; must be in [S, L, G, H, F, P, C]- test: (ToDo: implement data_format-specific test and add link)
- test: test_CAIType_validator
-
location_id
: A 10 digit integer$\ge 10^9$ and$\lt 10^{10}$ .- test: (ToDo: implement data_format-specific test and add link)
- test: test_BSLLocationIdNullableValidator
-
state
: Enum; a 2 letter state identifier- test: (ToDo: implement data_format-specific test and add link)
- test: test_State_validator
-
zip_code
: A zero-padded string of exactly 5 digits.- test: (ToDo: implement data_format-specific test and add link)
- test: test_ZipNullableValidator
-
longitude
: CRS = EPSG 4326 (aka WGS-84, unprojected and in degrees). Minimal precision of 6 decimal places. (Note: CRS not checked)- test: test_cai_challenges_col_content__longitude
- test: (ToDo: implement test of constants.LongitudeNullableValidator and add link)
-
latitude
: CRS = EPSG 4326 (aka WGS-84, unprojected and in degrees). Minimal precision of 6 decimal places. (Note: CRS not checked)- test: test_cai_challenges_col_content__latitude
- test: (ToDo: implement test of constants.LatitudeNullableValidator and add link)
-
need
: Non-negative integer in the reasonable range for a download speed (in Mbps). I think this is 1000 Mbps for every CAI, but if that's correct, I don't know why it would be required.- test: (ToDo: implement data_format-specific test and add link)
- test: test_NonNegativeNumberValidator
-
availability
: Non-negative integer in the reasonable range for an upload speed (in Mbps).- test: (ToDo: implement data_format-specific test and add link)
- test: test_NonNegativeNumberValidator
Optional
-
CMS number
: Should identify a healthcare practice (As best I can tell from google, these are 6 or 10 digit numbers, or maybe 13 digits?)- test: (ToDo: implement data_format-specific test and add link)
- test: test_CMSCertificateNullableValidator
-
frn
: FCC registration number, 10 digits, uniquely identifies registrant with FCC.- test: (ToDo: implement data_format-specific test and add link)
- test: test_FrnNullableValidator
Columns that can be Conditionally Null (and other row-rule checks)
-
category_code
: Cannot be null iftype
is in [C, G, R] -
challenge_explanation
: Cannot be null iftype
is in [C, R] -
entity_name
: Can only be null whentype
is in [P] -
location_id
: Can only be null if (address_primary
,city
,zip_code
) are all not null, or if (latitude
,longitude
) are both not null. -
address_primary
: Can only be null iflocation_id
is not null, or if (latitude
,longitude
) are both not null. -
city
: Can only be null iflocation_id
is not null, or if (latitude
,longitude
) are both not null. -
zip_code
: Can only be null iflocation_id
is not null, or if (latitude
,longitude
) are both not null. -
longitude
: Can only be null iflocation_id
is not null, or if (address_primary
,city
,zip_code
) are all not null. -
latitude
: Can only be null iflocation_id
is not null, or if (address_primary
,city
,zip_code
) are all not null. -
explanation
: Cannot be null iftype
is in [C]
Optional
-
CMS number
: Cannot be null whentype
is in [H] (maybe optional?) -
frn
: Cannot be null whentype
is in [S, L, H]
Multi-File Requirements
-
challenger
: Must uniquely identify exactly one challenger in the challenger.csv table. -
All CAIs in
cai_challenges.csv
should either also be incai.csv
(i.e., it was initially identified as a CAI) or should havechallenge_type
= C (i.e., the challenge identifies this as a CAI missing from the CAI-list).- test: (ToDo: implement and add test)
Intentionally noted but not checked by this project
challenge
: Must be unique to a challenge (noted, content not validated beyond type and nullness)CMS number
: Should be valid and maybe turn up in Medicare lookup tools that allow for search by CNN?frn
: Should be valid and in the FCC's systems.location_id
: Must be in the Fabric for that state.entity_number
: "Mandatory if CAI participates in E-Rate program. Leave empty for CAIs that are neithertype
S nor L and do not participate in the E-Rate program."