us-excel-template-data 0.1.0

US search demand for Excel & Google Sheets templates: 1,008 keywords with monthly volumes (2026), 16 categories, with a zero-dependency query API. CC BY 4.0 open data.
Documentation
use us_excel_template_data::catalog;

#[test]
fn full_catalog() {
    let rows = catalog::all();
    assert_eq!(rows.len(), 1008);
    assert!(rows.iter().all(|r| !r.keyword.is_empty() && !r.category.is_empty()));
}

#[test]
fn top_keyword() {
    let top = catalog::top(3);
    assert_eq!(top[0].keyword, "excel accounting software");
    assert!(top[0].monthly_search_volume_us >= top[1].monthly_search_volume_us);
}

#[test]
fn categories_aggregate() {
    let cats = catalog::categories();
    assert_eq!(cats.len(), 16);
    assert_eq!(cats.iter().map(|c| c.keywords).sum::<usize>(), 1008);
    assert_eq!(cats[0].category, "project-management");
}

#[test]
fn free_templates_have_urls() {
    let free = catalog::with_free_template();
    assert_eq!(free.len(), 146);
    assert!(free.iter().all(|r| r.free_template_url.unwrap().starts_with("https://tabletemplates.com/")));
}

#[test]
fn search_is_case_insensitive() {
    assert_eq!(catalog::search("INVOICE").len(), catalog::search("invoice").len());
    assert!(!catalog::search("budget").is_empty());
}