Created
March 21, 2026 00:17
-
-
Save compwron/4c5dbf3c4e64cff700e3cb334f1f9d02 to your computer and use it in GitHub Desktop.
Feature Flags Timeline - app-workflow flags since 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Feature Flags Timeline</title> | |
| <style> | |
| :root { | |
| --bg: #0d1117; | |
| --surface: #161b22; | |
| --border: #30363d; | |
| --text: #e6edf3; | |
| --text-muted: #8b949e; | |
| --green: #3fb950; | |
| --red: #f85149; | |
| --blue: #58a6ff; | |
| --purple: #bc8cff; | |
| --orange: #d29922; | |
| } | |
| * { margin: 0; padding: 0; box-sizing: border-box; } | |
| body { | |
| font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif; | |
| background: var(--bg); | |
| color: var(--text); | |
| line-height: 1.5; | |
| } | |
| .container { max-width: 1400px; margin: 0 auto; padding: 24px; } | |
| h1 { font-size: 28px; margin-bottom: 4px; } | |
| .subtitle { color: var(--text-muted); margin-bottom: 24px; font-size: 14px; } | |
| /* Stats row */ | |
| .stats { | |
| display: flex; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; | |
| } | |
| .stat-card { | |
| background: var(--surface); border: 1px solid var(--border); | |
| border-radius: 8px; padding: 16px 20px; min-width: 150px; | |
| } | |
| .stat-card .num { font-size: 32px; font-weight: 700; } | |
| .stat-card .label { color: var(--text-muted); font-size: 13px; } | |
| .stat-card.green .num { color: var(--green); } | |
| .stat-card.red .num { color: var(--red); } | |
| .stat-card.blue .num { color: var(--blue); } | |
| .stat-card.purple .num { color: var(--purple); } | |
| /* Chart section */ | |
| .chart-section { | |
| background: var(--surface); border: 1px solid var(--border); | |
| border-radius: 8px; padding: 20px; margin-bottom: 24px; | |
| } | |
| .chart-section h2 { font-size: 16px; margin-bottom: 16px; } | |
| .chart-tabs { | |
| display: flex; gap: 8px; margin-bottom: 16px; | |
| } | |
| .chart-tab { | |
| background: transparent; border: 1px solid var(--border); color: var(--text-muted); | |
| padding: 6px 14px; border-radius: 6px; cursor: pointer; font-size: 13px; | |
| } | |
| .chart-tab:hover { border-color: var(--text-muted); } | |
| .chart-tab.active { background: var(--blue); color: #fff; border-color: var(--blue); } | |
| canvas { width: 100%; } | |
| /* Gantt chart */ | |
| .gantt-section { | |
| background: var(--surface); border: 1px solid var(--border); | |
| border-radius: 8px; padding: 20px; margin-bottom: 24px; | |
| } | |
| .gantt-section h2 { font-size: 16px; margin-bottom: 12px; } | |
| /* Controls */ | |
| .controls { | |
| display: flex; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; align-items: center; | |
| } | |
| .controls input[type="text"] { | |
| background: var(--bg); border: 1px solid var(--border); color: var(--text); | |
| padding: 8px 12px; border-radius: 6px; font-size: 14px; width: 260px; | |
| } | |
| .controls select { | |
| background: var(--bg); border: 1px solid var(--border); color: var(--text); | |
| padding: 8px 12px; border-radius: 6px; font-size: 14px; | |
| } | |
| .controls label { | |
| color: var(--text-muted); font-size: 13px; display: flex; align-items: center; gap: 6px; | |
| } | |
| .controls input[type="range"] { width: 100px; } | |
| /* Gantt rows */ | |
| .gantt-container { | |
| overflow-x: auto; position: relative; | |
| } | |
| .gantt-header { | |
| display: flex; position: sticky; top: 0; z-index: 2; | |
| background: var(--surface); border-bottom: 1px solid var(--border); | |
| min-width: fit-content; | |
| } | |
| .gantt-header .label-col { | |
| min-width: 340px; max-width: 340px; padding: 6px 10px; | |
| font-size: 12px; color: var(--text-muted); font-weight: 600; | |
| position: sticky; left: 0; background: var(--surface); z-index: 3; | |
| } | |
| .gantt-header .timeline-col { | |
| flex: 1; display: flex; min-width: 800px; | |
| } | |
| .gantt-header .month-label { | |
| flex: 1; text-align: center; font-size: 11px; color: var(--text-muted); | |
| padding: 6px 0; border-left: 1px solid var(--border); | |
| } | |
| .gantt-body { | |
| max-height: 600px; overflow-y: auto; min-width: fit-content; | |
| } | |
| .gantt-row { | |
| display: flex; border-bottom: 1px solid #21262d; min-height: 26px; | |
| align-items: center; | |
| } | |
| .gantt-row:hover { background: rgba(88,166,255,0.04); } | |
| .gantt-row .label-col { | |
| min-width: 340px; max-width: 340px; padding: 2px 10px; | |
| font-size: 12px; font-family: 'SF Mono', SFMono-Regular, monospace; | |
| white-space: nowrap; overflow: hidden; text-overflow: ellipsis; | |
| position: sticky; left: 0; background: var(--surface); z-index: 1; | |
| } | |
| .gantt-row:hover .label-col { background: #1a2030; } | |
| .gantt-row .timeline-col { | |
| flex: 1; position: relative; height: 20px; min-width: 800px; | |
| } | |
| .gantt-bar { | |
| position: absolute; height: 14px; top: 3px; border-radius: 3px; | |
| min-width: 3px; cursor: pointer; | |
| } | |
| .gantt-bar.active { background: var(--green); opacity: 0.85; } | |
| .gantt-bar.removed { background: var(--red); opacity: 0.6; } | |
| .gantt-bar:hover { opacity: 1; } | |
| /* Tooltip */ | |
| .tooltip { | |
| display: none; position: fixed; background: #1c2128; border: 1px solid var(--border); | |
| border-radius: 8px; padding: 10px 14px; font-size: 13px; z-index: 100; | |
| pointer-events: none; max-width: 320px; box-shadow: 0 4px 12px rgba(0,0,0,0.4); | |
| } | |
| .tooltip .flag-name { font-weight: 600; font-family: monospace; margin-bottom: 4px; } | |
| .tooltip .dates { color: var(--text-muted); } | |
| .tooltip .status { margin-top: 4px; } | |
| .tooltip .status.active { color: var(--green); } | |
| .tooltip .status.removed { color: var(--red); } | |
| /* Table section */ | |
| .table-section { | |
| background: var(--surface); border: 1px solid var(--border); | |
| border-radius: 8px; padding: 20px; margin-bottom: 24px; | |
| } | |
| .table-section h2 { font-size: 16px; margin-bottom: 12px; } | |
| table { | |
| width: 100%; border-collapse: collapse; font-size: 13px; | |
| } | |
| th { | |
| text-align: left; padding: 8px 12px; border-bottom: 2px solid var(--border); | |
| color: var(--text-muted); font-size: 12px; text-transform: uppercase; | |
| letter-spacing: 0.5px; cursor: pointer; user-select: none; | |
| position: sticky; top: 0; background: var(--surface); z-index: 1; | |
| } | |
| th:hover { color: var(--text); } | |
| th .sort-arrow { margin-left: 4px; font-size: 10px; } | |
| td { padding: 6px 12px; border-bottom: 1px solid #21262d; } | |
| td.flag-name { font-family: 'SF Mono', SFMono-Regular, monospace; font-size: 12px; } | |
| tr:hover td { background: rgba(88,166,255,0.04); } | |
| .badge { | |
| display: inline-block; padding: 2px 8px; border-radius: 10px; | |
| font-size: 11px; font-weight: 600; | |
| } | |
| .badge.active { background: rgba(63,185,80,0.15); color: var(--green); } | |
| .badge.removed { background: rgba(248,81,73,0.15); color: var(--red); } | |
| .lifespan { color: var(--text-muted); font-size: 12px; } | |
| .table-scroll { max-height: 500px; overflow-y: auto; } | |
| .legend { | |
| display: flex; gap: 16px; margin-bottom: 12px; font-size: 13px; color: var(--text-muted); | |
| } | |
| .legend-item { display: flex; align-items: center; gap: 6px; } | |
| .legend-swatch { | |
| width: 14px; height: 14px; border-radius: 3px; | |
| } | |
| .legend-swatch.active { background: var(--green); } | |
| .legend-swatch.removed { background: var(--red); opacity: 0.6; } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="container"> | |
| <h1>Feature Flags Timeline</h1> | |
| <p class="subtitle">All flags in config/feature_flags.yml since January 2024 · Generated 2026-03-20</p> | |
| <div class="stats" id="stats"></div> | |
| <div class="chart-section"> | |
| <h2>Active Flag Count Over Time</h2> | |
| <div class="chart-tabs"> | |
| <button class="chart-tab active" data-chart="active">Active Count</button> | |
| <button class="chart-tab" data-chart="additions">Additions / Removals per Month</button> | |
| <button class="chart-tab" data-chart="lifespan">Avg Lifespan (days)</button> | |
| </div> | |
| <canvas id="chart" height="300"></canvas> | |
| </div> | |
| <div class="gantt-section"> | |
| <h2>Flag Lifespans</h2> | |
| <div class="controls"> | |
| <input type="text" id="ganttSearch" placeholder="Search flags..."> | |
| <select id="ganttFilter"> | |
| <option value="all">All flags</option> | |
| <option value="active">Still active</option> | |
| <option value="removed">Removed</option> | |
| <option value="pre2024">Existed before 2024</option> | |
| </select> | |
| <select id="ganttSort"> | |
| <option value="added">Sort by date added</option> | |
| <option value="removed">Sort by date removed</option> | |
| <option value="lifespan">Sort by lifespan</option> | |
| <option value="name">Sort by name</option> | |
| </select> | |
| </div> | |
| <div class="legend"> | |
| <div class="legend-item"><div class="legend-swatch active"></div> Still active</div> | |
| <div class="legend-item"><div class="legend-swatch removed"></div> Removed</div> | |
| </div> | |
| <div class="gantt-container"> | |
| <div class="gantt-header" id="ganttHeader"></div> | |
| <div class="gantt-body" id="ganttBody"></div> | |
| </div> | |
| </div> | |
| <div class="table-section"> | |
| <h2>All Flags</h2> | |
| <div class="controls"> | |
| <input type="text" id="tableSearch" placeholder="Search flags..."> | |
| <select id="tableFilter"> | |
| <option value="all">All flags</option> | |
| <option value="active">Still active</option> | |
| <option value="removed">Removed</option> | |
| </select> | |
| </div> | |
| <div class="table-scroll"> | |
| <table> | |
| <thead> | |
| <tr> | |
| <th data-sort="name">Flag Name <span class="sort-arrow"></span></th> | |
| <th data-sort="added">Date Added <span class="sort-arrow"></span></th> | |
| <th data-sort="removed">Date Removed <span class="sort-arrow"></span></th> | |
| <th data-sort="lifespan">Lifespan <span class="sort-arrow"></span></th> | |
| <th data-sort="status">Status <span class="sort-arrow"></span></th> | |
| </tr> | |
| </thead> | |
| <tbody id="tableBody"></tbody> | |
| </table> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="tooltip" id="tooltip"></div> | |
| <script> | |
| const FLAGS = [ | |
| {name:"activation_add_clinicians_alert",added:null,removed:"2024-02-29",pre2024:true}, | |
| {name:"activation_facility_support_page",added:null,removed:"2024-03-28",pre2024:true}, | |
| {name:"activation_reminder_to_finish_organic_order_email",added:null,removed:"2024-04-16",pre2024:true}, | |
| {name:"activation_request_to_join",added:null,removed:"2024-07-31",pre2024:true}, | |
| {name:"activation_stacked_supplier_selection",added:null,removed:"2024-03-14",pre2024:true}, | |
| {name:"activation_validate_phone",added:null,removed:"2024-01-31",pre2024:true}, | |
| {name:"allow_n_plus_one_queries_for_versions",added:null,removed:"2024-04-16",pre2024:true}, | |
| {name:"cms_product_details_page_v3",added:null,removed:"2024-06-15",pre2024:true}, | |
| {name:"fax_reviewer_workflow",added:null,removed:"2024-03-26",pre2024:true}, | |
| {name:"improve_definition_pdf_upload_flow_documentation_definition_form",added:null,removed:"2024-04-01",pre2024:true}, | |
| {name:"left_sidebar_new_pill_clinical_dashboards",added:null,removed:"2024-03-26",pre2024:true}, | |
| {name:"left_sidebar_orders_dropdown",added:null,removed:"2024-04-02",pre2024:true}, | |
| {name:"legal_entity_service_areas",added:null,removed:"2024-05-21",pre2024:true}, | |
| {name:"manage_facilities_materialized_view",added:null,removed:"2024-06-03",pre2024:true}, | |
| {name:"ordering_product_variations_relationships_v1",added:null,removed:"2024-03-14",pre2024:true}, | |
| {name:"package_configuration_hidden_suppliers",added:null,removed:"2024-02-21",pre2024:true}, | |
| {name:"pay_percent_zero",added:null,removed:"2024-05-23",pre2024:true}, | |
| {name:"preferred_supplier_ux_v2",added:null,removed:"2024-06-03",pre2024:true}, | |
| {name:"prescription_updates_new_signature",added:null,removed:"2024-04-18",pre2024:true}, | |
| {name:"reassign_sales_reps",added:null,removed:"2024-06-03",pre2024:true}, | |
| {name:"reminder_to_create_first_organic_order_email",added:null,removed:"2024-02-14",pre2024:true}, | |
| {name:"sales_rep_on_employment",added:null,removed:"2024-02-21",pre2024:true}, | |
| {name:"sales_rep_territories",added:null,removed:"2024-06-03",pre2024:true}, | |
| {name:"supplier_system_patient_id_patient_search",added:null,removed:"2024-02-16",pre2024:true}, | |
| {name:"transfer_sales_reps",added:null,removed:"2024-06-24",pre2024:true}, | |
| {name:"trigram_non_facilities_patient_search",added:null,removed:"2024-06-17",pre2024:true}, | |
| {name:"activation_new_user_added_email",added:"2024-01-05",removed:"2024-05-06"}, | |
| {name:"use_signing_status",added:"2024-01-05",removed:"2024-01-09"}, | |
| {name:"cms_categories_page_v2",added:"2024-01-09",removed:"2025-02-09"}, | |
| {name:"documentation_order_dashboard_uses_signing_status",added:"2024-01-09",removed:"2024-02-22"}, | |
| {name:"use_maskito_date_input",added:"2024-01-09",removed:"2024-01-31"}, | |
| {name:"activation_upgraded_adding_user",added:"2024-01-11",removed:"2024-07-30"}, | |
| {name:"ie_deprecation_modal",added:"2024-01-12",removed:"2024-05-09"}, | |
| {name:"hide_stale_orders_banner",added:"2024-01-16",removed:"2024-03-11"}, | |
| {name:"marketplace_package_configuration",added:"2024-01-16",removed:"2026-01-20"}, | |
| {name:"cms_new_survey_mapping_index_page",added:"2024-01-18",removed:"2024-06-06"}, | |
| {name:"send_back_invitation_pdf_v2",added:"2024-01-18",removed:"2024-03-14"}, | |
| {name:"survey_to_doc_validator",added:"2024-01-23",removed:"2026-01-06"}, | |
| {name:"fast_catalog_browse",added:"2024-01-24",removed:"2024-02-05"}, | |
| {name:"user_activation_product_first_search",added:"2024-01-24",removed:"2024-11-01"}, | |
| {name:"cms_edit_product_settings_v2",added:"2024-02-08",removed:"2025-10-22"}, | |
| {name:"sales_rep_territories_supplier_admin",added:"2024-02-21",removed:"2024-06-28"}, | |
| {name:"user_activation_validate_dx",added:"2024-02-26",removed:"2024-05-30"}, | |
| {name:"prefer_official_name",added:"2024-02-27",removed:"2025-01-31"}, | |
| {name:"sales_reports_redirect",added:"2024-02-27",removed:"2025-01-31"}, | |
| {name:"batch_emr_doctor_dashboard_dme_order_signature_requests",added:"2024-03-14",removed:"2024-10-29"}, | |
| {name:"facility_order_details_reviewer_promo",added:"2024-03-14",removed:"2024-10-29"}, | |
| {name:"left_sidebar_pending_signature_requests",added:"2024-03-14",removed:"2024-03-18"}, | |
| {name:"ccx_auth_requests",added:"2024-03-15",removed:"2025-08-21"}, | |
| {name:"left_sidebar_signature_requests_clinician_list",added:"2024-03-15",removed:"2024-03-26"}, | |
| {name:"left_sidebar_signature_requests_signup",added:"2024-03-18",removed:"2024-10-29"}, | |
| {name:"share_request_link",added:"2024-03-19",removed:"2025-02-12"}, | |
| {name:"catalog_sku_details_page_v2",added:"2024-03-21",removed:"2025-02-10"}, | |
| {name:"route_with_insurance_eligibility",added:"2024-03-22",removed:"2024-06-05"}, | |
| {name:"supplier_fax_documents",added:"2024-03-25",removed:"2025-05-14"}, | |
| {name:"log_preferred_supplier_criteria",added:"2024-03-26",removed:"2024-06-05"}, | |
| {name:"ie_deprecation_banner",added:"2024-03-27",removed:"2024-05-09"}, | |
| {name:"react_supplier_insurance_settings",added:"2024-04-05",removed:"2024-11-11"}, | |
| {name:"cms_async_formulary_definition_import",added:"2024-04-08",removed:"2024-11-25"}, | |
| {name:"filter_inactive_coverage_from_emr",added:"2024-04-09",removed:"2024-12-06"}, | |
| {name:"cms_react_flash_notices",added:"2024-04-10",removed:"2025-02-11"}, | |
| {name:"activation_slim_the_order_sidebars",added:"2024-04-11",removed:"2024-06-21"}, | |
| {name:"additional_fax_prompt",added:"2024-04-16",removed:"2025-03-18"}, | |
| {name:"new_digital_eligibility_definition",added:"2024-04-22",removed:"2024-08-14"}, | |
| {name:"hide_discharge_date",added:"2024-04-24",removed:"2024-06-18"}, | |
| {name:"cms_signature_requests_page_v2",added:"2024-05-08",removed:"2024-10-29"}, | |
| {name:"ie_prevent_access",added:"2024-05-09",removed:"2024-09-03"}, | |
| {name:"orders_dashboard_tab_view",added:"2024-05-09",removed:"2024-09-16"}, | |
| {name:"patient_portal_message_templates",added:"2024-05-13",removed:"2024-06-11"}, | |
| {name:"cms_async_seed_import",added:"2024-05-14",removed:"2025-04-08"}, | |
| {name:"user_activation_product_first_search_include_enterprise",added:"2024-05-20",removed:"2025-02-25"}, | |
| {name:"cms_seeds_page_v2",added:"2024-05-23",removed:"2025-07-21"}, | |
| {name:"use_functional_browsing_component",added:"2024-05-28",removed:"2024-08-20"}, | |
| {name:"banner_signature_requests",added:"2024-05-30",removed:"2024-08-16"}, | |
| {name:"supplier_acceptance_email_ssp_id",added:"2024-05-30",removed:"2025-01-08"}, | |
| {name:"activation_zip_service_areas",added:"2024-05-31",removed:"2024-08-19"}, | |
| {name:"optum_enhanced_clinical_guidelines_rx_only",added:"2024-05-31",removed:"2024-08-01"}, | |
| {name:"fillable_pdfs_for_documentation_requirements",added:"2024-06-03",removed:"2024-06-05"}, | |
| {name:"optum_enhanced_clinical_guidelines",added:"2024-06-03",removed:"2024-08-06"}, | |
| {name:"use_initial_package_configuration",added:"2024-06-03",removed:"2024-08-01"}, | |
| {name:"brightree_supplier_document_mapping_ui_enabled",added:"2024-06-04",removed:"2024-06-12"}, | |
| {name:"jedi_pending_browser_fillable_pdfs_for_documentation_requirements",added:"2024-06-05",removed:"2024-09-18"}, | |
| {name:"jedi_pending_fillable_pdfs_for_documentation_requirements",added:"2024-06-05",removed:null}, | |
| {name:"unique_document_generation",added:"2024-06-10",removed:"2025-02-25"}, | |
| {name:"payor_dashboard",added:"2024-06-11",removed:"2025-04-09"}, | |
| {name:"brightree_supplier_document_mapping_enabled",added:"2024-06-12",removed:"2024-09-13"}, | |
| {name:"ssr_app_signature_request_via_email",added:"2024-06-24",removed:"2024-10-02"}, | |
| {name:"cms_seeds_import_page_v2",added:"2024-06-27",removed:"2025-07-21"}, | |
| {name:"context_driven_docs",added:"2024-06-27",removed:"2025-12-11"}, | |
| {name:"ssr_app_new_request_signature_flow",added:"2024-06-28",removed:"2025-02-16"}, | |
| {name:"facility_incoming_orders",added:"2024-07-01",removed:"2024-11-14"}, | |
| {name:"context_group_mgmt",added:"2024-07-02",removed:"2025-12-11"}, | |
| {name:"ssr_app_performance_fix",added:"2024-07-09",removed:"2024-07-10"}, | |
| {name:"ssr_app_search_performance_improvement",added:"2024-07-10",removed:"2024-08-14"}, | |
| {name:"do_not_fax_digitally_active_doctors",added:"2024-07-16",removed:"2024-12-13"}, | |
| {name:"ssr_app_my_facilities_ignore_old_orders",added:"2024-07-18",removed:"2025-05-28"}, | |
| {name:"facility_user_email_for_pushback_optional",added:"2024-07-22",removed:"2024-11-22"}, | |
| {name:"ssr_app_signature_request_count_existing_email_as_dont_request_contact_info",added:"2024-07-22",removed:"2024-10-08"}, | |
| {name:"use_relevancy_in_search_by_supplier",added:"2024-07-22",removed:"2024-08-26"}, | |
| {name:"use_functional_signature_component",added:"2024-07-25",removed:"2024-08-14"}, | |
| {name:"demo_clinical_guidelines",added:"2024-08-01",removed:"2026-01-07"}, | |
| {name:"facility_snooze_orders",added:"2024-08-01",removed:"2025-07-11"}, | |
| {name:"catalog_publications",added:"2024-08-05",removed:"2025-04-08"}, | |
| {name:"cms_attributes_page_v2",added:"2024-08-05",removed:"2025-04-25"}, | |
| {name:"cms_audit_log_page_v2",added:"2024-08-05",removed:"2025-06-10"}, | |
| {name:"cms_bulk_import_v1",added:"2024-08-05",removed:"2024-09-18"}, | |
| {name:"cms_catalog_product_variations_relationships_v1",added:"2024-08-05",removed:"2025-04-08"}, | |
| {name:"cms_edit_package_config_v2",added:"2024-08-05",removed:null}, | |
| {name:"cms_package_details_page_v2",added:"2024-08-05",removed:"2024-08-16"}, | |
| {name:"cms_package_edit_page_v2",added:"2024-08-05",removed:null}, | |
| {name:"cms_supplier_details_page_v2",added:"2024-08-05",removed:"2025-02-09"}, | |
| {name:"combined_catalog_search",added:"2024-08-05",removed:"2025-02-25"}, | |
| {name:"create_o2_recerts",added:"2024-08-05",removed:"2024-08-05"}, | |
| {name:"default_to_fax_for_digitally_inactive_doctors",added:"2024-08-05",removed:"2025-05-27"}, | |
| {name:"draft_doc_mappings",added:"2024-08-05",removed:"2026-01-12"}, | |
| {name:"epic_oauth",added:"2024-08-05",removed:"2025-01-02"}, | |
| {name:"external_dme_order_creation_api",added:"2024-08-05",removed:"2025-03-10"}, | |
| {name:"formulary_pricing",added:"2024-08-05",removed:null}, | |
| {name:"marketplace_sku_search",added:"2024-08-05",removed:"2024-10-18"}, | |
| {name:"new_patient_loading_form",added:"2024-08-05",removed:null}, | |
| {name:"new_patient_search_card",added:"2024-08-05",removed:"2025-02-20"}, | |
| {name:"quick_list",added:"2024-08-05",removed:null}, | |
| {name:"referral_api_pending_order_enabled",added:"2024-08-05",removed:"2025-01-03"}, | |
| {name:"rename_recertification_to_renewal",added:"2024-08-05",removed:"2024-08-05"}, | |
| {name:"signature_pad",added:"2024-08-05",removed:"2024-11-12"}, | |
| {name:"supplier_sendback_clinical_facility_search",added:"2024-08-05",removed:"2024-12-12"}, | |
| {name:"survey_tester",added:"2024-08-05",removed:"2026-01-06"}, | |
| {name:"token_search_dictionaries",added:"2024-08-05",removed:"2025-04-17"}, | |
| {name:"use_aws_sms_provider",added:"2024-08-05",removed:null}, | |
| {name:"consignment_closet_foundational_refresh",added:"2024-08-06",removed:"2025-06-02"}, | |
| {name:"stubbed_clinical_guidelines",added:"2024-08-06",removed:"2025-07-15"}, | |
| {name:"payor_user_actions",added:"2024-08-12",removed:"2024-11-13"}, | |
| {name:"territories_data_propagation",added:"2024-08-13",removed:"2024-11-14"}, | |
| {name:"workflow_function_component",added:"2024-08-13",removed:"2024-08-16"}, | |
| {name:"ranked_supplier",added:"2024-08-14",removed:"2025-12-12"}, | |
| {name:"jedi_pending_smart_document_intake",added:"2024-08-19",removed:"2024-12-13"}, | |
| {name:"auto_accept_renewal_orders",added:"2024-08-20",removed:"2025-02-25"}, | |
| {name:"service_areas_data_propagation",added:"2024-08-20",removed:"2024-10-24"}, | |
| {name:"accessory_check_enabled",added:"2024-08-21",removed:"2025-06-25"}, | |
| {name:"facility_incoming_orders_search_patients",added:"2024-08-26",removed:"2025-09-23"}, | |
| {name:"new_pill_incoming_orders",added:"2024-08-29",removed:"2025-01-17"}, | |
| {name:"use_new_queuing_in_configuration_component",added:"2024-09-05",removed:"2024-09-16"}, | |
| {name:"explicit_supplier_selection_step",added:"2024-09-09",removed:"2024-11-27"}, | |
| {name:"cms_dme_order_cart_enhancements",added:"2024-09-11",removed:"2024-11-19"}, | |
| {name:"reduce_dup_eligibility_checks",added:"2024-09-11",removed:"2024-11-05"}, | |
| {name:"user_activation_search_by_product_tab_default",added:"2024-09-11",removed:"2024-11-11"}, | |
| {name:"payor_enhanced_clinical_guidelines",added:"2024-09-16",removed:"2026-01-08"}, | |
| {name:"use_functional_configuration_component",added:"2024-09-16",removed:"2026-03-09"}, | |
| {name:"fhirbenders_browser_fillable_pdfs_for_emr_instances",added:"2024-09-18",removed:null}, | |
| {name:"automated_welcome_message",added:"2024-09-19",removed:"2024-10-22"}, | |
| {name:"consignment_closet_duplication",added:"2024-09-19",removed:"2025-06-24"}, | |
| {name:"facility_incoming_orders_to_action_required",added:"2024-09-19",removed:"2024-10-29"}, | |
| {name:"territories_overlapping_zips",added:"2024-09-20",removed:"2024-11-14"}, | |
| {name:"collect_facility_cancel_reason",added:"2024-09-23",removed:"2025-02-12"}, | |
| {name:"incoming_orders_enabled_setting",added:"2024-09-24",removed:"2025-07-21"}, | |
| {name:"calculate_pushback_recipients_for_sgo_renewals",added:"2024-09-25",removed:"2025-02-12"}, | |
| {name:"suppress_recipient_notifications_for_sgo_renewals",added:"2024-09-25",removed:"2025-07-09"}, | |
| {name:"facility_incoming_orders_display_required_actions",added:"2024-10-01",removed:"2025-06-18"}, | |
| {name:"referral_api_product_selection_enabled",added:"2024-10-01",removed:null}, | |
| {name:"remove_timestamp_from_pcc_doc_names",added:"2024-10-03",removed:null}, | |
| {name:"use_functional_date_picker_component",added:"2024-10-03",removed:"2024-10-22"}, | |
| {name:"async_order_completion_job_enabled",added:"2024-10-16",removed:"2024-11-21"}, | |
| {name:"ssr_app_action_needed_filter",added:"2024-10-17",removed:"2025-01-29"}, | |
| {name:"user_activation_mobile_filters",added:"2024-10-17",removed:"2024-11-27"}, | |
| {name:"facility_freedom_prominent_rejection",added:"2024-10-18",removed:"2024-11-11"}, | |
| {name:"prohibit_duplicate_orders",added:"2024-10-22",removed:"2025-08-08"}, | |
| {name:"search_by_product_using_shop",added:"2024-10-25",removed:"2025-03-25"}, | |
| {name:"payor_order_details",added:"2024-10-30",removed:"2025-04-09"}, | |
| {name:"facility_dashboard_focus_tiles",added:"2024-10-31",removed:"2025-05-19"}, | |
| {name:"use_zendesk_native_chat",added:"2024-11-05",removed:"2025-09-30"}, | |
| {name:"facility_search_by_other_name",added:"2024-11-11",removed:"2025-01-28"}, | |
| {name:"clinician_search_namecase",added:"2024-11-12",removed:"2024-12-06"}, | |
| {name:"doctor_search_service_local",added:"2024-11-12",removed:"2024-11-26"}, | |
| {name:"sales_order_classification_mappings",added:"2024-11-12",removed:"2025-05-21"}, | |
| {name:"catalog_validate_supplier_sku_archived_at",added:"2024-11-13",removed:"2025-03-10"}, | |
| {name:"include_user_info_on_document_upload_event",added:"2024-11-15",removed:"2025-05-27"}, | |
| {name:"ssr_app_documentation_pill",added:"2024-11-15",removed:"2025-05-28"}, | |
| {name:"jedi_extract_fields_intake",added:"2024-11-17",removed:"2024-11-18"}, | |
| {name:"new_webhook_push_job_requeue_logic",added:"2024-11-17",removed:"2025-02-12"}, | |
| {name:"jedi_new_document_review_intake",added:"2024-11-18",removed:"2025-02-27"}, | |
| {name:"additional_fax_prompt_v2",added:"2024-11-19",removed:"2025-03-18"}, | |
| {name:"catalog_search_use_inclusive_mode",added:"2024-11-19",removed:"2025-11-19"}, | |
| {name:"ssr_app_filter_by_facility",added:"2024-11-19",removed:"2025-05-28"}, | |
| {name:"auth_requests_page",added:"2024-11-20",removed:"2025-08-21"}, | |
| {name:"warn_when_facility_has_no_signed_agreements",added:"2024-11-20",removed:null}, | |
| {name:"canceled_orders_visible_to_supplier",added:"2024-11-21",removed:"2025-04-14"}, | |
| {name:"chat_commercialization",added:"2024-11-22",removed:null}, | |
| {name:"show_demo_prompt_on_new_order_page",added:"2024-11-25",removed:"2025-02-19"}, | |
| {name:"accurate_common_codes",added:"2024-11-30",removed:null}, | |
| {name:"epic_sig_requests_without_cached_patients",added:"2024-12-05",removed:null}, | |
| {name:"async_spc_configurability",added:"2024-12-10",removed:null}, | |
| {name:"facility_dashboard_actionable_cards",added:"2024-12-10",removed:"2025-07-08"}, | |
| {name:"sales_team_collaboration_tools",added:"2024-12-11",removed:"2025-06-26"}, | |
| {name:"cms_complex_spc_config",added:"2024-12-17",removed:"2025-09-15"}, | |
| {name:"cms_attribute_enhancements_refresh",added:"2024-12-18",removed:"2025-12-08"}, | |
| {name:"address_standardization",added:"2024-12-20",removed:null}, | |
| {name:"address_verification",added:"2024-12-20",removed:"2025-02-13"}, | |
| {name:"allow_sign_out_for_embedded_app",added:"2024-12-30",removed:"2025-06-11"}, | |
| {name:"show_demo_prompt_on_dashboard_page",added:"2025-01-07",removed:"2025-02-14"}, | |
| {name:"supplier_routing_pilot",added:"2025-01-08",removed:"2025-12-12"}, | |
| {name:"collect_facility_generated_order_cancel_reason",added:"2025-01-09",removed:"2025-02-25"}, | |
| {name:"cms_debugger_payment_details",added:"2025-01-14",removed:"2025-04-09"}, | |
| {name:"duplicate_facility_order",added:"2025-01-14",removed:null}, | |
| {name:"cms_perry_scope",added:"2025-01-15",removed:"2025-03-13"}, | |
| {name:"dme_enforcement_pathways",added:"2025-01-15",removed:null}, | |
| {name:"ssr_app_saved_facilities",added:"2025-01-17",removed:"2025-05-27"}, | |
| {name:"match_patient_by_phone",added:"2025-01-23",removed:"2026-01-14"}, | |
| {name:"facility_dashboard_order_actions",added:"2025-01-24",removed:"2025-04-17"}, | |
| {name:"sales_team_collab_tools_facilities_no_connection",added:"2025-01-24",removed:"2025-06-30"}, | |
| {name:"catalog_product_details_spa",added:"2025-01-28",removed:"2025-07-25"}, | |
| {name:"complete_facility_profile",added:"2025-01-31",removed:"2025-05-20"}, | |
| {name:"renewal_pushback_reminder",added:"2025-01-31",removed:"2025-05-08"}, | |
| {name:"incoming_order_banner_facility_review_page",added:"2025-02-04",removed:"2025-04-14"}, | |
| {name:"sgo_banner_facility_review_page",added:"2025-02-04",removed:null}, | |
| {name:"optimized_compatibility_check",added:"2025-02-05",removed:"2025-04-03"}, | |
| {name:"sales_team_collab_tools_saved_main_app",added:"2025-02-10",removed:"2025-06-26"}, | |
| {name:"send_docs_for_auth",added:"2025-02-11",removed:null}, | |
| {name:"clinical_facility_multiple_fax_numbers",added:"2025-02-12",removed:"2025-02-25"}, | |
| {name:"dme_order_reminders_disabled",added:"2025-02-19",removed:"2025-08-11"}, | |
| {name:"payor_auth_misc_hcpcs",added:"2025-02-26",removed:"2025-08-21"}, | |
| {name:"payor_auth_reauthorization",added:"2025-02-26",removed:"2025-04-09"}, | |
| {name:"prescribing_quantity_capture",added:"2025-02-26",removed:null}, | |
| {name:"payor_auth_determination_api",added:"2025-02-27",removed:"2025-08-21"}, | |
| {name:"skip_delivery_step_when_complete",added:"2025-02-27",removed:null}, | |
| {name:"hide_order_progress_donuts",added:"2025-02-28",removed:"2025-03-12"}, | |
| {name:"clinical_facility_dashboard_cache_model_listener_subscribed",added:"2025-03-03",removed:"2025-10-29"}, | |
| {name:"jedi_intake_patient_search",added:"2025-03-03",removed:"2025-04-15"}, | |
| {name:"supplier_system_instance_external_order_mangement",added:"2025-03-03",removed:"2025-10-13"}, | |
| {name:"disable_acceptance_faxes_for_supplier",added:"2025-03-04",removed:"2025-08-14"}, | |
| {name:"dme_order_reminders_internal_comments",added:"2025-03-07",removed:"2025-05-20"}, | |
| {name:"payor_auth_request_reauth",added:"2025-03-11",removed:"2025-08-21"}, | |
| {name:"facility_incoming_order_teams",added:"2025-03-12",removed:null}, | |
| {name:"sales_team_collab_tools_use_n_1_in_serializer",added:"2025-03-13",removed:"2025-04-01"}, | |
| {name:"enhanced_fillable_forms",added:"2025-03-17",removed:null}, | |
| {name:"items_key_in_api_payload",added:"2025-03-18",removed:"2025-10-14"}, | |
| {name:"payor_auth_edits",added:"2025-03-18",removed:"2025-08-21"}, | |
| {name:"jedi_intake_sku_setter",added:"2025-03-19",removed:"2025-06-30"}, | |
| {name:"network_experience_low_engagement",added:"2025-03-19",removed:"2025-10-21"}, | |
| {name:"retain_transferred_signed_generated_docs",added:"2025-03-20",removed:"2025-04-14"}, | |
| {name:"fax_invite_pushback_reminder",added:"2025-03-24",removed:null}, | |
| {name:"facility_dashboard_use_cache",added:"2025-03-25",removed:"2026-02-18"}, | |
| {name:"split_document_provisioning_in_brightree",added:"2025-03-31",removed:"2025-07-15"}, | |
| {name:"network_experience_low_engagement_no_connection",added:"2025-04-01",removed:"2025-06-30"}, | |
| {name:"order_type_modal",added:"2025-04-01",removed:null}, | |
| {name:"supplier_organization_dashboard_focus_tiles",added:"2025-04-03",removed:"2025-08-08"}, | |
| {name:"user_preferences_tabbed",added:"2025-04-04",removed:null}, | |
| {name:"doctor_search_trigram",added:"2025-04-09",removed:"2025-05-23"}, | |
| {name:"rx_quantity_order_flow_redesign",added:"2025-04-09",removed:"2025-11-24"}, | |
| {name:"sales_team_collab_tools_has_ordered_filter",added:"2025-04-11",removed:"2025-10-21"}, | |
| {name:"show_self_guided_demo_prompt_on_new_order_page",added:"2025-04-11",removed:null}, | |
| {name:"show_video",added:"2025-04-13",removed:"2025-04-14"}, | |
| {name:"supplier_organization_patient_scope_v2",added:"2025-04-13",removed:"2025-04-16"}, | |
| {name:"cms_attribute_value_migration",added:"2025-04-14",removed:"2025-07-28"}, | |
| {name:"payor_test_eligibility_service_keys",added:"2025-04-14",removed:"2025-07-07"}, | |
| {name:"sales_team_collab_tools_facility_profile",added:"2025-04-15",removed:"2025-06-27"}, | |
| {name:"jedi_accept_order_with_no_items",added:"2025-04-16",removed:"2025-06-27"}, | |
| {name:"concatenate_patient_given_name",added:"2025-04-18",removed:null}, | |
| {name:"dme_order_reminders_api_sgos",added:"2025-04-18",removed:"2025-05-20"}, | |
| {name:"dme_order_reminders_manual_sgos",added:"2025-04-18",removed:"2025-05-20"}, | |
| {name:"order_type_modal_variant",added:"2025-04-18",removed:"2025-08-21"}, | |
| {name:"v2_clinical_guidelines",added:"2025-04-22",removed:"2025-08-11"}, | |
| {name:"dme_order_reminder_experiment",added:"2025-04-24",removed:"2025-08-11"}, | |
| {name:"dummy_boolean_flag",added:"2025-04-28",removed:null}, | |
| {name:"dummy_json_flag",added:"2025-04-28",removed:null}, | |
| {name:"cat_crew_package_search_using_shop",added:"2025-05-05",removed:null}, | |
| {name:"catalog_spc_compatibility_checker",added:"2025-05-06",removed:"2025-08-08"}, | |
| {name:"supplier_send_back_drawer",added:"2025-05-07",removed:"2025-07-22"}, | |
| {name:"facility_enterprise_focus_tiles",added:"2025-05-19",removed:"2025-11-20"}, | |
| {name:"payor_auth_creation",added:"2025-05-20",removed:"2025-08-21"}, | |
| {name:"catalog_browsing",added:"2025-05-22",removed:"2025-09-19"}, | |
| {name:"cms_attribute_alias",added:"2025-05-29",removed:"2025-07-03"}, | |
| {name:"zendesk_chat_in_ssr_app",added:"2025-05-29",removed:"2025-07-21"}, | |
| {name:"documentation_order_attempt_facility_match",added:"2025-06-02",removed:"2025-08-11"}, | |
| {name:"rx_summary_document_refresh",added:"2025-06-02",removed:"2025-11-25"}, | |
| {name:"clinical_organizations_users_query_v2",added:"2025-06-04",removed:"2025-07-14"}, | |
| {name:"dme_order_fax_visibility",added:"2025-06-05",removed:"2025-08-06"}, | |
| {name:"signing_signature_request_batch_notifications_v2",added:"2025-06-05",removed:"2025-06-09"}, | |
| {name:"signature_request_batch_notifications_v2",added:"2025-06-09",removed:"2026-01-12"}, | |
| {name:"patient_search_no_stop_words",added:"2025-06-11",removed:"2025-07-23"}, | |
| {name:"similar_facilities_cta",added:"2025-06-11",removed:"2025-07-21"}, | |
| {name:"network_profile_user_tab",added:"2025-06-13",removed:"2025-07-17"}, | |
| {name:"sales_team_collab_tools_stats_table",added:"2025-06-13",removed:"2025-11-05"}, | |
| {name:"batch_uploaded_complex_renewal_notifications",added:"2025-06-18",removed:"2025-12-04"}, | |
| {name:"clinical_facility_doc_order_cache_listener",added:"2025-06-20",removed:"2025-10-29"}, | |
| {name:"cms_hidden_attributes",added:"2025-06-24",removed:null}, | |
| {name:"jedi_intake_document_upload",added:"2025-07-01",removed:null}, | |
| {name:"cms_attribute_units",added:"2025-07-16",removed:"2025-12-03"}, | |
| {name:"disable_configurable_attributes",added:"2025-07-16",removed:"2025-11-19"}, | |
| {name:"clinical_facility_dashboard_signature_requests_focus_tile",added:"2025-07-17",removed:"2025-11-18"}, | |
| {name:"payor_make_policy_primary_button",added:"2025-07-17",removed:null}, | |
| {name:"cms_survey_show_page_v2",added:"2025-07-22",removed:"2026-01-15"}, | |
| {name:"network_facility_profile_overview",added:"2025-07-23",removed:"2025-10-21"}, | |
| {name:"public_facility_user_approval",added:"2025-07-29",removed:null}, | |
| {name:"payor_test_insurance_products",added:"2025-07-30",removed:null}, | |
| {name:"catalog_optimized_compatibility_index_builder",added:"2025-08-01",removed:"2025-12-03"}, | |
| {name:"fax_via_telnyx",added:"2025-08-01",removed:null}, | |
| {name:"facility_all_orders_dashboard",added:"2025-08-04",removed:"2025-09-18"}, | |
| {name:"network_recent_orders",added:"2025-08-04",removed:"2025-10-21"}, | |
| {name:"push_to_facility_prefill",added:"2025-08-06",removed:"2025-10-08"}, | |
| {name:"facility_auto_approve_user_by_email_domain",added:"2025-08-07",removed:null}, | |
| {name:"eb_order_benefits_display",added:"2025-08-11",removed:"2025-10-17"}, | |
| {name:"scannable_qr_codes",added:"2025-08-11",removed:"2025-08-13"}, | |
| {name:"use_active_record_with_connection",added:"2025-08-12",removed:"2025-09-10"}, | |
| {name:"scannable_qr_codes_v2",added:"2025-08-13",removed:null}, | |
| {name:"payor_notification_settings",added:"2025-08-25",removed:"2025-10-06"}, | |
| {name:"jedi_ai_qualification_in_dme_order",added:"2025-08-27",removed:"2025-11-13"}, | |
| {name:"packageless_dme_order_uploader",added:"2025-08-28",removed:null}, | |
| {name:"homepage_page",added:"2025-09-02",removed:"2025-09-22"}, | |
| {name:"network_new_pill",added:"2025-09-02",removed:"2025-09-03"}, | |
| {name:"eb_new_eligibility_check",added:"2025-09-03",removed:"2025-10-21"}, | |
| {name:"network_new_tag_strong",added:"2025-09-03",removed:"2025-09-23"}, | |
| {name:"documentation_mappings_v2",added:"2025-09-04",removed:"2026-03-06"}, | |
| {name:"payor_network_managed_orders",added:"2025-09-05",removed:"2025-12-12"}, | |
| {name:"suggested_actions",added:"2025-09-05",removed:"2026-01-05"}, | |
| {name:"payor_orders_dashboard_filters",added:"2025-09-09",removed:"2025-12-12"}, | |
| {name:"custom_order_markers",added:"2025-09-10",removed:null}, | |
| {name:"disable_complex_duplicate_check",added:"2025-09-11",removed:null}, | |
| {name:"eb_order_benefits_display_errors",added:"2025-09-11",removed:"2025-10-17"}, | |
| {name:"use_active_record_sanitize_sql_like",added:"2025-09-12",removed:null}, | |
| {name:"cms_pricing_sheets",added:"2025-09-15",removed:"2026-03-11"}, | |
| {name:"new_messages_scoper_performance",added:"2025-09-15",removed:"2025-10-06"}, | |
| {name:"price_enabled_ordering",added:"2025-09-15",removed:"2026-03-10"}, | |
| {name:"facility_unified_demand_experience",added:"2025-09-18",removed:"2026-03-03"}, | |
| {name:"high_performing_rep_experiment",added:"2025-09-18",removed:null}, | |
| {name:"jedi_auto_classify_documents",added:"2025-09-24",removed:null}, | |
| {name:"supplier_draft_focus_tile",added:"2025-09-25",removed:"2025-11-21"}, | |
| {name:"zendesk_native_identify",added:"2025-09-30",removed:"2025-10-10"}, | |
| {name:"enterprise_facility_unified_demand_experience",added:"2025-10-02",removed:"2025-10-07"}, | |
| {name:"jedi_brightree_audit_packet",added:"2025-10-02",removed:"2025-12-04"}, | |
| {name:"pod_supplemental_docs",added:"2025-10-02",removed:null}, | |
| {name:"jedi_textract_search",added:"2025-10-08",removed:"2025-12-05"}, | |
| {name:"network_dashboard_grow_experience",added:"2025-10-08",removed:null}, | |
| {name:"eb_carrier_prediction_regex",added:"2025-10-09",removed:"2025-11-05"}, | |
| {name:"zendesk_native_authenticate",added:"2025-10-09",removed:"2025-10-30"}, | |
| {name:"network_profile_sso_detection_by_domain",added:"2025-10-13",removed:null}, | |
| {name:"attribute_auto_selection_fix",added:"2025-10-14",removed:"2025-12-03"}, | |
| {name:"add_consigment_closet_name_to_delivery_notes",added:"2025-10-15",removed:null}, | |
| {name:"brightree_fax_out_cart_mappings",added:"2025-10-16",removed:null}, | |
| {name:"payor_open_closed_orders",added:"2025-10-16",removed:"2026-03-08"}, | |
| {name:"age_based_coverage_criteria",added:"2025-10-22",removed:null}, | |
| {name:"supplier_exclusions",added:"2025-10-22",removed:null}, | |
| {name:"zendesk_messaging",added:"2025-10-22",removed:"2025-12-03"}, | |
| {name:"cms_survey_show_page_v3",added:"2025-10-23",removed:"2026-03-11"}, | |
| {name:"cms_package_level_hidden_attributes",added:"2025-10-27",removed:null}, | |
| {name:"jedi_dme_order_audit_packets",added:"2025-10-27",removed:"2026-02-03"}, | |
| {name:"eb_enable_ihcs_bcbs_plan_exclusivity",added:"2025-10-28",removed:"2025-11-11"}, | |
| {name:"cms_react_menu",added:"2025-11-01",removed:"2025-11-25"}, | |
| {name:"doc_request_per_order_mapping_review",added:"2025-11-03",removed:null}, | |
| {name:"send_fax_events_without_dme_order",added:"2025-11-03",removed:"2026-01-05"}, | |
| {name:"skip_document_processing_status_guard",added:"2025-11-03",removed:"2025-12-17"}, | |
| {name:"custom_order_markers_end_user_dashboard",added:"2025-11-04",removed:null}, | |
| {name:"global_account_switcher_new",added:"2025-11-06",removed:"2026-01-14"}, | |
| {name:"renewal_triage_step",added:"2025-11-13",removed:null}, | |
| {name:"enhanced_fillable_forms_v2",added:"2025-11-18",removed:null}, | |
| {name:"global_ude_facility_filter",added:"2025-11-18",removed:"2026-01-13"}, | |
| {name:"fax_details",added:"2025-11-19",removed:"2025-11-20"}, | |
| {name:"jedi_field_attribution",added:"2025-11-19",removed:"2026-03-13"}, | |
| {name:"patient_feedback_dashboard_enabled",added:"2025-11-19",removed:null}, | |
| {name:"eb_store_eligibility_raw_responses",added:"2025-11-20",removed:"2026-01-06"}, | |
| {name:"fax_details_page",added:"2025-11-20",removed:null}, | |
| {name:"catalog_audit_log_spa",added:"2025-11-21",removed:"2026-01-28"}, | |
| {name:"doc_request_orders_need_review_focus_tile",added:"2025-11-21",removed:"2025-12-10"}, | |
| {name:"nav_bar_renderer",added:"2025-11-21",removed:"2025-12-10"}, | |
| {name:"cms_category_detail_page_reactified",added:"2025-11-24",removed:"2026-03-16"}, | |
| {name:"jedi_intake_reordering_pages",added:"2025-12-03",removed:null}, | |
| {name:"skip_updating_zendesk_users_at_login",added:"2025-12-05",removed:null}, | |
| {name:"doc_request_ignore_duplicates",added:"2025-12-08",removed:"2025-12-19"}, | |
| {name:"connect_with_clinical_ae",added:"2025-12-11",removed:null}, | |
| {name:"payor_supplier_configuration_s3",added:"2025-12-11",removed:"2026-03-06"}, | |
| {name:"dummy_hcpcs_mapping",added:"2025-12-15",removed:"2025-12-16"}, | |
| {name:"zendesk_api_use_retry_settings",added:"2025-12-15",removed:null}, | |
| {name:"payor_dummy_hcpcs_mapping",added:"2025-12-16",removed:"2026-03-05"}, | |
| {name:"optional_numeric_attribute_values",added:"2025-12-17",removed:"2026-03-11"}, | |
| {name:"sign_proof_of_delivery_type_modal",added:"2025-12-17",removed:null}, | |
| {name:"eb_eligibility_benefits_display_v2",added:"2025-12-19",removed:null}, | |
| {name:"reviewer_playlist_bulk_sign",added:"2026-01-06",removed:null}, | |
| {name:"payor_mark_order_reviewed",added:"2026-01-07",removed:null}, | |
| {name:"signature_matching_accuracy_improvements",added:"2026-01-09",removed:null}, | |
| {name:"cms_subcategory_detail_page_reactified",added:"2026-01-12",removed:"2026-03-17"}, | |
| {name:"integrated_sig_request_failure",added:"2026-01-14",removed:"2026-03-05"}, | |
| {name:"jedi_field_attribution_highlighting_on_order_page",added:"2026-01-14",removed:"2026-03-13"}, | |
| {name:"jedi_supplier_system_patient_id",added:"2026-01-20",removed:null}, | |
| {name:"payor_auth_rejection_edits",added:"2026-01-20",removed:"2026-01-21"}, | |
| {name:"use_workflow_rules",added:"2026-01-20",removed:null}, | |
| {name:"bt_patient_search_in_workflow",added:"2026-01-21",removed:null}, | |
| {name:"payor_auth_edit_rejections",added:"2026-01-21",removed:"2026-03-08"}, | |
| {name:"doc_request_fax_out_reminder",added:"2026-01-23",removed:null}, | |
| {name:"recent_order_tracking",added:"2026-01-23",removed:"2026-02-17"}, | |
| {name:"eb_preferred_supplier_address_selection",added:"2026-01-27",removed:null}, | |
| {name:"facility_profile_summary",added:"2026-01-27",removed:null}, | |
| {name:"jedi_interstitial_order_creation",added:"2026-01-28",removed:null}, | |
| {name:"facility_recently_opened_orders",added:"2026-01-29",removed:"2026-03-11"}, | |
| {name:"eb_member_file_enhanced_prior_auth",added:"2026-01-30",removed:null}, | |
| {name:"email_subject_hide_patient_name",added:"2026-01-30",removed:"2026-02-02"}, | |
| {name:"payor_bulk_upload_auths",added:"2026-01-30",removed:null}, | |
| {name:"facility_mailers_no_patient_names_experiment",added:"2026-02-02",removed:null}, | |
| {name:"jedi_sync_document_derivation",added:"2026-02-11",removed:"2026-03-04"}, | |
| {name:"use_pdf_service",added:"2026-02-11",removed:"2026-03-16"}, | |
| {name:"cms_facility_profile_glow_up",added:"2026-02-12",removed:null}, | |
| {name:"facility_orders_page_focus_tiles",added:"2026-02-12",removed:"2026-03-13"}, | |
| {name:"baseline_qualification_ui",added:"2026-02-13",removed:null}, | |
| {name:"payor_auth_cancellation_data",added:"2026-02-19",removed:"2026-03-02"}, | |
| {name:"payor_evaluate_unsupported_hcpcs",added:"2026-02-19",removed:null}, | |
| {name:"dme_order_extended_terminal_age",added:"2026-02-25",removed:null}, | |
| {name:"prescribed_quantity_seeds",added:"2026-02-25",removed:null}, | |
| {name:"new_workflow_navigation",added:"2026-03-02",removed:null}, | |
| {name:"jedi_auto_merge_csr_inbox_states",added:"2026-03-03",removed:null}, | |
| {name:"qualification_feedback",added:"2026-03-03",removed:null}, | |
| {name:"facility_reviewer_sign_up_banner",added:"2026-03-12",removed:"2026-03-20"}, | |
| {name:"reviewer_signup_2026",added:"2026-03-20",removed:null}, | |
| ]; | |
| // Derived constants | |
| const TODAY = new Date("2026-03-20"); | |
| const TIMELINE_START = new Date("2024-01-01"); | |
| const TIMELINE_END = new Date("2026-04-01"); | |
| const TOTAL_DAYS = (TIMELINE_END - TIMELINE_START) / 86400000; | |
| function parseDate(s) { return s ? new Date(s) : null; } | |
| function daysSince(start, end) { | |
| const s = start || TIMELINE_START; | |
| const e = end || TODAY; | |
| return Math.max(0, Math.round((e - s) / 86400000)); | |
| } | |
| function formatDate(d) { | |
| if (!d) return "—"; | |
| return d.toISOString().slice(0, 10); | |
| } | |
| function formatDays(n) { | |
| if (n === 0) return "<1 day"; | |
| if (n < 30) return n + "d"; | |
| if (n < 365) return Math.round(n / 30) + "mo"; | |
| return (n / 365).toFixed(1) + "y"; | |
| } | |
| // Enrich flags | |
| FLAGS.forEach(f => { | |
| f.addedDate = parseDate(f.added); | |
| f.removedDate = parseDate(f.removed); | |
| f.active = f.removed === null; | |
| f.lifespan = daysSince(f.addedDate || TIMELINE_START, f.removedDate || TODAY); | |
| }); | |
| // Stats | |
| const totalFlags = FLAGS.length; | |
| const activeFlags = FLAGS.filter(f => f.active).length; | |
| const removedFlags = FLAGS.filter(f => !f.active).length; | |
| const avgLifespan = Math.round(FLAGS.filter(f => !f.active).reduce((s, f) => s + f.lifespan, 0) / removedFlags); | |
| document.getElementById("stats").innerHTML = ` | |
| <div class="stat-card blue"><div class="num">${totalFlags}</div><div class="label">Total flags tracked</div></div> | |
| <div class="stat-card green"><div class="num">${activeFlags}</div><div class="label">Currently active</div></div> | |
| <div class="stat-card red"><div class="num">${removedFlags}</div><div class="label">Removed</div></div> | |
| <div class="stat-card purple"><div class="num">${formatDays(avgLifespan)}</div><div class="label">Avg lifespan (removed)</div></div> | |
| `; | |
| // ---- Canvas chart ---- | |
| const canvas = document.getElementById("chart"); | |
| const ctx = canvas.getContext("2d"); | |
| let currentChart = "active"; | |
| function getMonths() { | |
| const months = []; | |
| let d = new Date(TIMELINE_START); | |
| while (d < TIMELINE_END) { | |
| months.push(new Date(d)); | |
| d.setMonth(d.getMonth() + 1); | |
| } | |
| return months; | |
| } | |
| function computeActivePerMonth() { | |
| const months = getMonths(); | |
| return months.map(m => { | |
| const end = new Date(m); end.setMonth(end.getMonth() + 1); | |
| const mid = new Date((m.getTime() + end.getTime()) / 2); | |
| let count = 0; | |
| FLAGS.forEach(f => { | |
| const start = f.addedDate || TIMELINE_START; | |
| const stop = f.removedDate || TODAY; | |
| if (start <= mid && stop >= mid) count++; | |
| }); | |
| return count; | |
| }); | |
| } | |
| function computeAdditionsRemovals() { | |
| const months = getMonths(); | |
| const additions = months.map(() => 0); | |
| const removals = months.map(() => 0); | |
| FLAGS.forEach(f => { | |
| if (f.addedDate) { | |
| const mi = months.findIndex((m, i) => { | |
| const next = new Date(m); next.setMonth(next.getMonth() + 1); | |
| return f.addedDate >= m && f.addedDate < next; | |
| }); | |
| if (mi >= 0) additions[mi]++; | |
| } | |
| if (f.removedDate) { | |
| const mi = months.findIndex((m, i) => { | |
| const next = new Date(m); next.setMonth(next.getMonth() + 1); | |
| return f.removedDate >= m && f.removedDate < next; | |
| }); | |
| if (mi >= 0) removals[mi]++; | |
| } | |
| }); | |
| return { additions, removals }; | |
| } | |
| function computeAvgLifespanPerMonth() { | |
| const months = getMonths(); | |
| return months.map((m, i) => { | |
| const next = new Date(m); next.setMonth(next.getMonth() + 1); | |
| const removed = FLAGS.filter(f => f.removedDate && f.removedDate >= m && f.removedDate < next); | |
| if (removed.length === 0) return 0; | |
| return Math.round(removed.reduce((s, f) => s + f.lifespan, 0) / removed.length); | |
| }); | |
| } | |
| function drawChart() { | |
| const dpr = window.devicePixelRatio || 1; | |
| const rect = canvas.parentElement.getBoundingClientRect(); | |
| const w = rect.width - 40; | |
| const h = 300; | |
| canvas.width = w * dpr; | |
| canvas.height = h * dpr; | |
| canvas.style.width = w + "px"; | |
| canvas.style.height = h + "px"; | |
| ctx.setTransform(dpr, 0, 0, dpr, 0, 0); | |
| ctx.clearRect(0, 0, w, h); | |
| const months = getMonths(); | |
| const labels = months.map(m => m.toLocaleDateString("en", { month: "short", year: "2-digit" })); | |
| const pad = { top: 20, right: 20, bottom: 40, left: 50 }; | |
| const cw = w - pad.left - pad.right; | |
| const ch = h - pad.top - pad.bottom; | |
| function drawLine(data, color, maxVal) { | |
| const stepX = cw / (data.length - 1); | |
| ctx.beginPath(); | |
| ctx.strokeStyle = color; | |
| ctx.lineWidth = 2.5; | |
| ctx.lineJoin = "round"; | |
| data.forEach((v, i) => { | |
| const x = pad.left + i * stepX; | |
| const y = pad.top + ch - (v / maxVal) * ch; | |
| i === 0 ? ctx.moveTo(x, y) : ctx.lineTo(x, y); | |
| }); | |
| ctx.stroke(); | |
| // dots | |
| data.forEach((v, i) => { | |
| const x = pad.left + i * stepX; | |
| const y = pad.top + ch - (v / maxVal) * ch; | |
| ctx.beginPath(); | |
| ctx.arc(x, y, 3, 0, Math.PI * 2); | |
| ctx.fillStyle = color; | |
| ctx.fill(); | |
| }); | |
| } | |
| function drawBars(data1, data2, color1, color2, maxVal) { | |
| const barW = Math.max(4, (cw / data1.length) * 0.35); | |
| const stepX = cw / data1.length; | |
| data1.forEach((v, i) => { | |
| const x = pad.left + i * stepX + stepX / 2 - barW - 1; | |
| const bh = (v / maxVal) * ch; | |
| ctx.fillStyle = color1; | |
| ctx.fillRect(x, pad.top + ch - bh, barW, bh); | |
| }); | |
| data2.forEach((v, i) => { | |
| const x = pad.left + i * stepX + stepX / 2 + 1; | |
| const bh = (v / maxVal) * ch; | |
| ctx.fillStyle = color2; | |
| ctx.fillRect(x, pad.top + ch - bh, barW, bh); | |
| }); | |
| } | |
| // Grid | |
| ctx.strokeStyle = "#21262d"; | |
| ctx.lineWidth = 1; | |
| for (let i = 0; i <= 5; i++) { | |
| const y = pad.top + (ch / 5) * i; | |
| ctx.beginPath(); ctx.moveTo(pad.left, y); ctx.lineTo(w - pad.right, y); ctx.stroke(); | |
| } | |
| // X labels | |
| ctx.fillStyle = "#8b949e"; | |
| ctx.font = "11px -apple-system, sans-serif"; | |
| ctx.textAlign = "center"; | |
| const labelStep = months.length > 18 ? 3 : months.length > 12 ? 2 : 1; | |
| labels.forEach((l, i) => { | |
| if (i % labelStep !== 0) return; | |
| const stepX = currentChart === "additions" ? cw / months.length : cw / (months.length - 1); | |
| const x = pad.left + i * stepX + (currentChart === "additions" ? stepX / 2 : 0); | |
| ctx.save(); | |
| ctx.translate(x, h - 5); | |
| ctx.rotate(-0.5); | |
| ctx.fillText(l, 0, 0); | |
| ctx.restore(); | |
| }); | |
| if (currentChart === "active") { | |
| const data = computeActivePerMonth(); | |
| const maxVal = Math.max(...data) * 1.15; | |
| // Y labels | |
| for (let i = 0; i <= 5; i++) { | |
| const v = Math.round((maxVal / 5) * (5 - i)); | |
| ctx.fillStyle = "#8b949e"; | |
| ctx.textAlign = "right"; | |
| ctx.fillText(v, pad.left - 8, pad.top + (ch / 5) * i + 4); | |
| } | |
| drawLine(data, "#58a6ff", maxVal); | |
| } else if (currentChart === "additions") { | |
| const { additions, removals } = computeAdditionsRemovals(); | |
| const maxVal = Math.max(...additions, ...removals) * 1.15; | |
| for (let i = 0; i <= 5; i++) { | |
| const v = Math.round((maxVal / 5) * (5 - i)); | |
| ctx.fillStyle = "#8b949e"; | |
| ctx.textAlign = "right"; | |
| ctx.fillText(v, pad.left - 8, pad.top + (ch / 5) * i + 4); | |
| } | |
| drawBars(additions, removals, "#3fb950", "#f85149", maxVal); | |
| // legend | |
| ctx.fillStyle = "#3fb950"; ctx.fillRect(w - 170, 10, 12, 12); | |
| ctx.fillStyle = "#8b949e"; ctx.textAlign = "left"; ctx.fillText("Added", w - 154, 21); | |
| ctx.fillStyle = "#f85149"; ctx.fillRect(w - 100, 10, 12, 12); | |
| ctx.fillStyle = "#8b949e"; ctx.fillText("Removed", w - 84, 21); | |
| } else if (currentChart === "lifespan") { | |
| const data = computeAvgLifespanPerMonth(); | |
| const maxVal = Math.max(...data) * 1.15 || 1; | |
| for (let i = 0; i <= 5; i++) { | |
| const v = Math.round((maxVal / 5) * (5 - i)); | |
| ctx.fillStyle = "#8b949e"; | |
| ctx.textAlign = "right"; | |
| ctx.fillText(v + "d", pad.left - 8, pad.top + (ch / 5) * i + 4); | |
| } | |
| drawLine(data, "#bc8cff", maxVal); | |
| } | |
| } | |
| document.querySelectorAll(".chart-tab").forEach(tab => { | |
| tab.addEventListener("click", () => { | |
| document.querySelectorAll(".chart-tab").forEach(t => t.classList.remove("active")); | |
| tab.classList.add("active"); | |
| currentChart = tab.dataset.chart; | |
| drawChart(); | |
| }); | |
| }); | |
| window.addEventListener("resize", drawChart); | |
| drawChart(); | |
| // ---- Gantt ---- | |
| const tooltip = document.getElementById("tooltip"); | |
| function buildGanttHeader() { | |
| const header = document.getElementById("ganttHeader"); | |
| let html = '<div class="label-col">Flag Name</div><div class="timeline-col">'; | |
| const months = getMonths(); | |
| months.forEach(m => { | |
| const label = m.toLocaleDateString("en", { month: "short", year: "2-digit" }); | |
| html += `<div class="month-label">${label}</div>`; | |
| }); | |
| html += '</div>'; | |
| header.innerHTML = html; | |
| } | |
| function getFilteredFlags() { | |
| const search = document.getElementById("ganttSearch").value.toLowerCase(); | |
| const filter = document.getElementById("ganttFilter").value; | |
| const sort = document.getElementById("ganttSort").value; | |
| let list = FLAGS.filter(f => { | |
| if (search && !f.name.includes(search)) return false; | |
| if (filter === "active" && !f.active) return false; | |
| if (filter === "removed" && f.active) return false; | |
| if (filter === "pre2024" && !f.pre2024) return false; | |
| return true; | |
| }); | |
| list.sort((a, b) => { | |
| if (sort === "name") return a.name.localeCompare(b.name); | |
| if (sort === "added") return (a.addedDate || TIMELINE_START) - (b.addedDate || TIMELINE_START); | |
| if (sort === "removed") { | |
| const ar = a.removedDate || new Date("2099-01-01"); | |
| const br = b.removedDate || new Date("2099-01-01"); | |
| return ar - br; | |
| } | |
| if (sort === "lifespan") return b.lifespan - a.lifespan; | |
| return 0; | |
| }); | |
| return list; | |
| } | |
| function buildGanttBody() { | |
| const body = document.getElementById("ganttBody"); | |
| const list = getFilteredFlags(); | |
| let html = ""; | |
| list.forEach(f => { | |
| const start = f.addedDate || TIMELINE_START; | |
| const end = f.removedDate || TODAY; | |
| const leftPct = ((start - TIMELINE_START) / (TIMELINE_END - TIMELINE_START)) * 100; | |
| const widthPct = ((end - start) / (TIMELINE_END - TIMELINE_START)) * 100; | |
| const cls = f.active ? "active" : "removed"; | |
| html += `<div class="gantt-row"> | |
| <div class="label-col" title="${f.name}">${f.name}</div> | |
| <div class="timeline-col"> | |
| <div class="gantt-bar ${cls}" | |
| style="left:${leftPct}%;width:${Math.max(0.2, widthPct)}%" | |
| data-name="${f.name}" | |
| data-added="${f.added || 'before 2024'}" | |
| data-removed="${f.removed || 'still active'}" | |
| data-lifespan="${formatDays(f.lifespan)}" | |
| data-active="${f.active}"> | |
| </div> | |
| </div> | |
| </div>`; | |
| }); | |
| body.innerHTML = html; | |
| } | |
| // Tooltip for gantt bars | |
| document.getElementById("ganttBody").addEventListener("mousemove", e => { | |
| const bar = e.target.closest(".gantt-bar"); | |
| if (!bar) { tooltip.style.display = "none"; return; } | |
| const active = bar.dataset.active === "true"; | |
| tooltip.innerHTML = ` | |
| <div class="flag-name">${bar.dataset.name}</div> | |
| <div class="dates">Added: ${bar.dataset.added}<br>Removed: ${bar.dataset.removed}</div> | |
| <div class="dates">Lifespan: ${bar.dataset.lifespan}</div> | |
| <div class="status ${active ? 'active' : 'removed'}">${active ? 'Still active' : 'Removed'}</div> | |
| `; | |
| tooltip.style.display = "block"; | |
| tooltip.style.left = Math.min(e.clientX + 12, window.innerWidth - 340) + "px"; | |
| tooltip.style.top = (e.clientY - 80) + "px"; | |
| }); | |
| document.getElementById("ganttBody").addEventListener("mouseleave", () => { | |
| tooltip.style.display = "none"; | |
| }); | |
| ["ganttSearch", "ganttFilter", "ganttSort"].forEach(id => { | |
| document.getElementById(id).addEventListener("input", buildGanttBody); | |
| document.getElementById(id).addEventListener("change", buildGanttBody); | |
| }); | |
| buildGanttHeader(); | |
| buildGanttBody(); | |
| // ---- Table ---- | |
| let tableSortCol = "added"; | |
| let tableSortAsc = true; | |
| function buildTable() { | |
| const search = document.getElementById("tableSearch").value.toLowerCase(); | |
| const filter = document.getElementById("tableFilter").value; | |
| const tbody = document.getElementById("tableBody"); | |
| let list = FLAGS.filter(f => { | |
| if (search && !f.name.includes(search)) return false; | |
| if (filter === "active" && !f.active) return false; | |
| if (filter === "removed" && f.active) return false; | |
| return true; | |
| }); | |
| list.sort((a, b) => { | |
| let cmp = 0; | |
| if (tableSortCol === "name") cmp = a.name.localeCompare(b.name); | |
| else if (tableSortCol === "added") cmp = (a.addedDate || TIMELINE_START) - (b.addedDate || TIMELINE_START); | |
| else if (tableSortCol === "removed") { | |
| const ar = a.removedDate || new Date("2099-01-01"); | |
| const br = b.removedDate || new Date("2099-01-01"); | |
| cmp = ar - br; | |
| } | |
| else if (tableSortCol === "lifespan") cmp = a.lifespan - b.lifespan; | |
| else if (tableSortCol === "status") cmp = (a.active ? 1 : 0) - (b.active ? 1 : 0); | |
| return tableSortAsc ? cmp : -cmp; | |
| }); | |
| tbody.innerHTML = list.map(f => ` | |
| <tr> | |
| <td class="flag-name">${f.name}</td> | |
| <td>${f.added || '<span style="color:#8b949e">before 2024</span>'}</td> | |
| <td>${f.removed || '<span style="color:#3fb950">still active</span>'}</td> | |
| <td class="lifespan">${formatDays(f.lifespan)}</td> | |
| <td><span class="badge ${f.active ? 'active' : 'removed'}">${f.active ? 'Active' : 'Removed'}</span></td> | |
| </tr> | |
| `).join(""); | |
| } | |
| document.querySelectorAll("th[data-sort]").forEach(th => { | |
| th.addEventListener("click", () => { | |
| const col = th.dataset.sort; | |
| if (tableSortCol === col) tableSortAsc = !tableSortAsc; | |
| else { tableSortCol = col; tableSortAsc = true; } | |
| document.querySelectorAll("th .sort-arrow").forEach(s => s.textContent = ""); | |
| th.querySelector(".sort-arrow").textContent = tableSortAsc ? " \u25B2" : " \u25BC"; | |
| buildTable(); | |
| }); | |
| }); | |
| ["tableSearch", "tableFilter"].forEach(id => { | |
| document.getElementById(id).addEventListener("input", buildTable); | |
| document.getElementById(id).addEventListener("change", buildTable); | |
| }); | |
| buildTable(); | |
| </script> | |
| </body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment