Skip to content
Knack Dashboard AI logo

Knack Dashboard AI

Generates insight layers and visual summaries from HTI operational data. Transforms raw Knack records into actionable intelligence for stakeholders...

SKILL.md

Full skill instructions

Knack Dashboard AI

Purpose

Generates insight layers and visual summaries from HTI operational data. Transforms raw Knack records into actionable intelligence for stakeholders and grant reporting.

Core Capabilities

  1. Metrics Generation: Aggregate data into KPIs
  2. Trend Analysis: Identify patterns over time
  3. Predictive Insights: Forecast progress toward goals
  4. Visual Recommendations: Suggest optimal chart types
  5. Anomaly Detection: Flag unusual data patterns

Core Functions

generate_metrics

Purpose: Calculate key performance indicators from raw data

Parameters:

  • fields (array, required): Which metrics to calculate
  • dataset (array, optional): Custom dataset (default: fetch all)
  • time_period (string, optional): "all", "quarter", "month", "week"

Available Metrics:

const metrics = {
  // Device Lifecycle
  acquired: "Total laptops received",
  converted: "Chromebooks successfully created",
  ready: "Devices ready for donation",
  presented: "Devices delivered to recipients",
  discarded: "Units recycled/​unusable",

  // Conversion Rates
  conversion_rate: "(converted / acquired) * 100",
  success_rate: "(presented / ready) * 100",
  discard_rate: "(discarded / acquired) * 100",

  // Training
  train_hours: "Total digital literacy hours delivered",
  participants: "Unique individuals trained",

  // Business Development
  donors: "Unique donor organizations",
  recurring_donors: "Donors with 3+ donations",
  avg_donation_size: "Mean laptops per donation"
};

Example:

const kpis = await generate_metrics({
  fields: ["acquired", "converted", "ready", "conversion_rate"],
  time_period: "quarter"
});

// Output:
// {
//   acquired: 875,
//   converted: 623,
//   ready: 89,
//   conversion_rate: 71.2
// }

calculate_trends

Purpose: Analyze changes over time

Example:

const trend = await calculate_trends({
  metric: "acquired",
  granularity: "month", // day, week, month, quarter
  periods: 6 // Last 6 months
});

// Output:
// {
//   data: [
//     { period: "2024-07", value: 145 },
//     { period: "2024-08", value: 167 },
//     { period: "2024-09", value: 152 },
//     { period: "2024-10", value: 178 },
//     { period: "2024-11", value: 156 },
//     { period: "2024-12", value: 189 }
//   ],
//   trend: "upward",
//   average: 164.5,
//   growth_rate: 4.2 // Percent per month
// }

predict_goal_completion

Purpose: Forecast when goals will be reached

Example:

const forecast = await predict_goal_completion({
  goal: { target: 3500, field: "acquired" },
  current_value: 1250,
  time_elapsed_months: 8,
  time_remaining_months: 16
});

// Output:
// {
//   projected_total: 3750,
//   will_meet_goal: true,
//   projected_completion: "2025-09-15",
//   confidence: 0.85,
//   recommendation: "On track - maintain current pace"
// }

build_charts

Purpose: Generate chart configurations for visualization libraries

Parameters:

  • type (string, required): "bar" | "line" | "donut" | "area" | "scatter"
  • data (object, required): Dataset to visualize
  • options (object, optional): Customization (colors, labels, etc.)

Example - Bar Chart:

const chart = build_charts({
  type: "bar",
  data: {
    labels: ["Wake", "Durham", "Vance", "Franklin", "Granville"],
    values: [234, 189, 67, 45, 78]
  },
  options: {
    title: "Devices by County",
    colors: ["#0E2240", "#6FC3DF"], // HTI brand colors
    y_axis_label: "Number of Devices"
  }
});

// Output: Chart.js compatible config

Example - Line Chart (Trend):

const trend_chart = build_charts({
  type: "line",
  data: {
    labels: ["Jan", "Feb", "Mar", "Apr", "May", "Jun"],
    datasets: [
      { label: "Acquired", values: [145, 167, 152, 178, 156, 189] },
      { label: "Converted", values: [98, 112, 108, 125, 110, 134] }
    ]
  },
  options: {
    title: "Device Pipeline - Q1/​Q2 2025",
    colors: ["#0E2240", "#6FC3DF"]
  }
});

Example - Donut Chart (Breakdown):

const status_chart = build_charts({
  type: "donut",
  data: {
    labels: ["Ready", "In Progress", "Awaiting Parts", "Discarded"],
    values: [89, 234, 45, 12]
  },
  options: {
    title: "Current Device Status",
    colors: ["#0E2240", "#6FC3DF", "#A0C4D9", "#E0E0E0"]
  }
});

detect_anomalies

Purpose: Flag unusual patterns requiring attention

Example:

const anomalies = await detect_anomalies({
  metric: "discard_rate",
  threshold: 20, // Alert if >20%
  time_period: "month"
});

// Output:
// [
//   {
//     period: "2024-11",
//     value: 28.5,
//     expected_range: [10, 20],
//     severity: "high",
//     message: "Discard rate 42% above normal - check testing process"
//   }
// ]

compare_performance

Purpose: Benchmark against goals or historical data

Example:

const performance = await compare_performance({
  actual: { acquired: 1250, converted: 890 },
  target: { acquired: 1458, converted: 1042 }, // Proportional to 3500/​2500 goal
  period: "8 months into 24-month grant"
});

// Output:
// {
//   acquired: { actual: 1250, target: 1458, variance: -14.3, status: "behind" },
//   converted: { actual: 890, target: 1042, variance: -14.6, status: "behind" },
//   overall_health: "at_risk",
//   recommendation: "Increase acquisition efforts by 15% to meet goal"
// }

HTI-Specific Dashboards

Executive Summary Dashboard

const executive_summary = {
  kpis: await generate_metrics({
    fields: ["acquired", "converted", "ready", "train_hours"]
  }),
  progress: await compare_performance({
    actual: kpis,
    target: { acquired: 3500, converted: 2500, train_hours: 156 }
  }),
  trends: await calculate_trends({ metric: "acquired", periods: 12 }),
  counties: await county_breakdown()
};

Operations Dashboard

const ops_dashboard = {
  pipeline: await generate_metrics({
    fields: ["acquired", "converted", "ready", "discarded"]
  }),
  bottlenecks: await detect_anomalies({ metric: "conversion_rate" }),
  county_map: await build_charts({
    type: "bar",
    data: await county_breakdown()
  }),
  recent_activity: await recent_transactions(limit: 10)
};

Grant Compliance Dashboard

const compliance_dashboard = {
  quarterly_progress: await generate_quarterly_report("Q4", "2024"),
  goal_forecast: await predict_goal_completion({
    goal: { target: 3500, field: "acquired" }
  }),
  training_hours: await generate_metrics({
    fields: ["train_hours", "participants"]
  }),
  county_coverage: await verify_15_county_coverage()
};

Donor Relations Dashboard

const donor_dashboard = {
  top_donors: await rank_donors({ limit: 10 }),
  recurring_donors: await identify_recurring_donors({ min_donations: 3 }),
  avg_donation: await generate_metrics({ fields: ["avg_donation_size"] }),
  retention_rate: await calculate_donor_retention(),
  outreach_targets: await identify_outreach_opportunities()
};

Chart Type Recommendations

When to Use Each Chart Type

Bar Chart: Comparing categories

  • County-level device distribution
  • Donor organization rankings
  • Monthly acquisition totals

Line Chart: Trends over time

  • Cumulative devices acquired
  • Conversion rate over 24 months
  • Training hours per quarter

Donut/​Pie: Parts of a whole

  • Device status breakdown (Ready, In Progress, Discarded)
  • County coverage (what % of 15 counties reached)

Area Chart: Cumulative growth

  • Progress toward 3,500 laptop goal
  • Training hours accumulation

Scatter Plot: Correlation analysis

  • Donation size vs. donor frequency
  • Conversion rate vs. device age

Brand-Aligned Visualizations

HTI Color Palette

const HTI_COLORS = {
  primary: "#0E2240",      // Navy Blue
  secondary: "#6FC3DF",    // Light Blue
  white: "#FFFFFF",
  accent: "#A0C4D9",       // Muted blue
  neutral: "#E0E0E0",      // Light gray
  success: "#4CAF50",
  warning: "#FF9800",
  danger: "#F44336"
};

Chart Styling

const brand_chart_options = {
  font_family: "Inter, sans-serif",
  colors: [HTI_COLORS.primary, HTI_COLORS.secondary],
  background: HTI_COLORS.white,
  grid_color: HTI_COLORS.neutral,
  title_size: 18,
  label_size: 12
};

Real-Time Insights

Live Progress Indicator

const live_progress = await generate_metrics({ fields: ["acquired", "converted"] });
const progress_pct = (live_progress.acquired / 3500) * 100;

const indicator = {
  value: progress_pct.toFixed(1),
  display: `${progress_pct.toFixed(1)}% toward 3,500 laptop goal`,
  color: progress_pct > 50 ? HTI_COLORS.success : HTI_COLORS.warning
};

Dynamic Goal Status

const goal_status = await predict_goal_completion({
  goal: { target: 3500, field: "acquired" }
});

const status_message = goal_status.will_meet_goal
  ? "✅ On track to meet goal"
  : "⚠️ Action needed to meet goal";

Integration Points

  • knack_reader: Fetch raw data for analysis
  • knack_pagination: Retrieve full datasets for accurate metrics
  • knack_filter_sort: Filter data by time period or category
  • knack_cache_optimizer: Cache computed metrics (expensive calculations)
  • knack_reporting_sync: Power quarterly reports with AI-generated insights
  • knack_goal_tracker: Real-time progress monitoring

Export Formats

JSON (API Responses)

const metrics = await generate_metrics({ fields: ["acquired", "converted"] });
res.json(metrics);

HTML (Email Reports)

const html = generate_html_report({
  metrics: kpis,
  charts: [trend_chart, status_chart],
  branding: HTI_COLORS
});

PDF (Quarterly Reports)

const pdf = generate_pdf_report({
  data: compliance_dashboard,
  template: "ncdit_quarterly_template"
});

Best Practices

  1. Cache metrics: Expensive aggregations should be cached (5-min TTL)
  2. Use appropriate granularity: Daily for ops, monthly for trends, quarterly for grants
  3. Brand consistency: Always use HTI color palette
  4. Contextual insights: Include "why" and "what next" with every metric
  5. Progressive disclosure: Start with summary, drill down on click

Grant Reporting Automation

Auto-Generate Quarterly Narrative

const narrative = await generate_narrative({
  metrics: await generate_quarterly_report("Q1", "2025"),
  template: "ncdit_compliance",
  tone: "factual, mission-driven"
});

// Output:
// "During Q1 2025, HTI acquired 875 laptops from 12 donor organizations
// across 8 counties, converting 623 into HTI Chromebooks. This represents
// a 71% conversion rate, exceeding our 70% target. We delivered 42 hours
// of digital literacy training to 156 participants..."

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View