Transform your Caasie.co campaign data into actionable insights instantly.
Built with pure HTML5, CSS3, and JavaScript, this dashboard provides a high-performance, private, and fully customizable way to visualize your digital out-of-home advertising performance.
├── index.html (~12 KB) - HTML structure with filtering UI
├── style.css (~18 KB) - Complete styling with dark teal theme, FAB, filters
└── script.js (~50 KB) - All functionality + filtering + 60 sample records
Total size: ~80 KB (excluding external CDN libraries)
- 8 Key Metrics Dashboard - Total Plays, Audience, Cost, Average CPP, Unique Boards, Venue Types, Average Screen Time, Campaign Days
- 5 Interactive Charts:
- Daily Performance - Dual Y-axis line chart showing plays and audience trends over time
- Venue Distribution - Doughnut chart breaking down performance by venue type
- Cost Analysis - Bar chart tracking daily campaign costs
- Screen Time Distribution - Histogram showing screen time intervals
- Top 10 Boards by Audience - Horizontal bar chart of best performing locations
- Top Boards Table - Sortable performance table with detailed metrics
- Date Range Filter - Custom start and end date selection
- Venue Type Filter - Filter by specific venue types (outdoor panels, bus shelters, malls, stations, airports)
- Campaign Filter - Isolate specific campaigns for focused analysis
- Reset Filters - One-click return to full dataset
- Real-time Updates - Charts and metrics recalculate instantly on filter changes
- Auto-populated Options - Filters dynamically populate from your uploaded data
- Color Scheme Editor - Customize 5 brand colors in real-time
- Typography Selector - Choose from 15 Google Fonts
- Chart Visibility Controls - Toggle any chart on/off
- Floating Customize Button - Always-accessible settings via bottom-right FAB
- Persistent Settings - All preferences saved to localStorage
- Drag & Drop Upload - Intuitive file upload interface
- Multiple Formats - CSV, XLSX, XLS support
- Sample Data Included - 60 diverse UK campaign records for testing
- Auto-validation - Checks for required columns
- Fully Responsive - Adapts to mobile, tablet, and desktop (2/3/4 column layouts)
- WCAG 2.1 AA Compliant - Full accessibility support
- No Installation - Works immediately, no build process
- Offline Ready - All functionality available locally
- Fast Loading - Optimized performance
- Smart Grid - Metrics auto-resize to fill available space with no gaps
Primary: #3bd62b /* Caasie green */
Primary Light: #d6ffd2 /* Light green */
Background: #001a23 /* Dark blue-black */
Accent Yellow: #fece00 /* Bright yellow */
Accent Blue: #18265e /* Deep blue */- Poppins (default)
- Roboto
- Open Sans
- Montserrat
- Lato
- Raleway
- Oswald
- Source Sans Pro
- Merriweather
- Playfair Display
- Inter
- Nunito
- Ubuntu
- Work Sans
- DM Sans
- Click the ⚙️ floating button in the bottom-right corner
- Navigate between tabs:
- 🎨 Colors - Adjust color scheme with color pickers
- 🔤 Fonts - Select typography from dropdown
- 📊 Charts - Toggle chart visibility with switches
- Changes apply instantly and save automatically
- Click outside the panel or press the FAB again to close
Your Caasie.co data file must include these columns:
| Column Name | Type | Description |
|---|---|---|
Campaign |
String | Campaign name |
Date (UTC) |
Date | Date in YYYY-MM-DD format |
Board |
String | Board location/identifier |
Venue Type |
String | Type of venue (e.g., outdoor.urban_panels) |
Total Plays |
Number | Number of times ad was played |
Total Audience |
Number | Total audience reached |
Total Cost (Your Currency) |
Number | Cost in your currency |
Total Screen Time (secs) |
Number | Total screen time in seconds |
| Column Name | Type | Description |
|---|---|---|
Latitude |
Number | Geographic latitude |
Longitude |
Number | Geographic longitude |
Average CPP (Your Currency) |
Number | Average cost per play |
- CSV (.csv) - Comma-separated values
- Excel (.xlsx, .xls) - Microsoft Excel files
-
Visit the live page: https://joemighty.github.io/Caasie-Visualiser/
-
Upload your data:
- Drag and drop your Caasie.co file onto the upload zone
- OR click the upload zone to browse files
- Supported formats: CSV, XLSX, XLS
-
Filter your data (optional):
- Select date range to analyze specific time periods
- Filter by venue type to compare performance
- Filter by campaign to focus on specific initiatives
- Combine filters for detailed drill-down analysis
- Click "Reset" to clear all filters
-
View your analytics:
- 8 key metrics update automatically based on filters
- 5 interactive charts visualize filtered data
- Top boards table shows performance rankings
-
Customize appearance:
- Click the ⚙️ floating button (bottom-right corner)
- Adjust colors to match your brand
- Select preferred fonts
- Toggle charts on/off as needed
-
Settings persist:
- Your preferences are saved automatically
- Reload the page - settings remain
- Upload new data anytime
- Filters reset when uploading new data
- Download the files (
index.html,style.css,script.js) - Open
index.htmlin any modern browser - All features work offline
- Upload your own Caasie.co files
- Customizations save to browser localStorage
- Single column layout
- Stacked charts
- 2-column metrics grid (compact spacing)
- Optimized touch targets
- Simplified navigation
- Readable font sizes (minimum 16px)
- 52px floating customize button
- Single column layout
- Stacked charts
- 2-column metrics grid
- Comfortable spacing
- Touch-friendly interface
- Floating customize button bottom-right
- 2-column chart layout
- 3-column metrics grid (auto-fills width)
- Comfortable spacing
- Touch-friendly interface
- Adaptive typography
- Horizontal filter layout
- Full bento grid layout
- 3-column metrics grid
- 2-column large charts
- Excellent screen utilization
- Hover interactions
- Optimal viewing experience
- Full bento grid layout
- 4-column metrics grid (maximum utilization)
- 2-column large charts
- No wasted space
- Perfect for large monitors
- All features visible
- iPhone SE / 12 / 13 Pro Max
- iPad / iPad Pro
- Samsung Galaxy S21 / Tab S7
- Desktop monitors (1920×1080 to 3840×2160)
- 4K displays (optimized for 4-column layout)
This application is fully compliant with WCAG 2.1 Level AA standards.
- ✅ Keyboard Navigation - Full functionality without mouse
- ✅ Screen Reader Support - Proper ARIA labels and semantic HTML
- ✅ Focus Indicators - Clear 3px outlines on interactive elements
- ✅ Color Contrast - All text meets 4.5:1 ratio minimum
- ✅ Reduced Motion - Respects
prefers-reduced-motion - ✅ High Contrast Mode - Support for system preferences
- ✅ Alt Text - Descriptive labels for all visual elements
- ✅ Heading Structure - Logical H1-H6 hierarchy
- ✅ Skip Links - Navigate directly to main content
- ✅ Touch Targets - Minimum 44×44px for all interactive elements
Tab- Navigate forwardShift + Tab- Navigate backwardEnter/Space- Activate buttons and togglesArrow Keys- Navigate within components
- NVDA (Windows)
- JAWS (Windows)
- VoiceOver (macOS/iOS)
- TalkBack (Android)
| File | Size | Compressed | Description |
|---|---|---|---|
index.html |
~12 KB | ~2.5 KB | HTML structure with filters |
style.css |
~18 KB | ~4 KB | All styling + FAB + filters |
script.js |
~50 KB | ~9 KB | Functionality + filtering + sample data |
| Total | ~80 KB | ~15.5 KB | Complete application |
- First Load: < 2 seconds (on 3G)
- Subsequent Loads: < 1 second (cached)
- Interactive Time: < 1 second
- Filter Response: Instant (<50ms)
- Lighthouse Score: 95+ (Performance, Accessibility, Best Practices, SEO)
All dependencies loaded via CDN - no installation required.
| Library | Version | Size | Purpose |
|---|---|---|---|
| Chart.js | 4.4.0 | ~185 KB | Interactive charts |
| PapaParse | 5.4.1 | ~43 KB | CSV parsing |
| SheetJS (xlsx) | 0.18.5 | ~680 KB | Excel file parsing |
| Google Fonts | Latest | ~15-30 KB | Typography |
<!-- Chart.js -->
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>
<!-- PapaParse -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.4.1/papaparse.min.js"></script>
<!-- SheetJS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.5/xlsx.full.min.js"></script>
<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&display=swap" rel="stylesheet">- ✅ All data processed locally in browser
- ✅ No data sent to external servers
- ✅ No tracking or analytics
- ✅ No cookies (except localStorage for settings)
- ✅ HTTPS served via GitHub Pages
- ✅ Content Security Policy compliant
| Browser | Minimum Version | Notes |
|---|---|---|
| Chrome | 90+ | Recommended |
| Edge | 90+ | Chromium-based |
| Firefox | 88+ | Full support |
| Safari | 14+ | macOS & iOS |
| Opera | 76+ | Chromium-based |
| Browser | Platform | Support |
|---|---|---|
| Safari | iOS 14+ | ✅ Full |
| Chrome | Android 90+ | ✅ Full |
| Samsung Internet | Android 14+ | ✅ Full |
| Firefox | Android 88+ | ✅ Full |
- ES6+ JavaScript (Arrow functions, Template literals, Destructuring)
- CSS Grid & Flexbox
- CSS Custom Properties (Variables)
- localStorage API
- FileReader API
- Fetch API (for potential future features)
- Internet Explorer (any version) - EOL
- Opera Mini - Limited JavaScript support
Jobin Bennykutty
- GitHub: @JoeMighty
- Project: Caasie Visualizer
- HTML5 - Semantic markup
- CSS3 - Modern styling with Grid & Flexbox
- JavaScript (ES6+) - Vanilla JS, no frameworks
- Chart.js - Interactive data visualizations
- PapaParse - CSV parsing
- SheetJS - Excel file support
- Caasie.co - Digital out-of-home advertising platform
- GitHub Pages - Free hosting and deployment
- Chart.js contributors for excellent documentation
- MDN Web Docs for web standards reference
- WCAG guidelines for accessibility standards
This work is licensed under a Creative Commons Attribution 4.0 International License.
- ✅ Share - Copy and redistribute the material in any medium or format
- ✅ Adapt - Remix, transform, and build upon the material for any purpose, even commercially
- 📝 Attribution - You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- 🚫 No additional restrictions - You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.
Caasie Data Visualizer by Jobin Bennykutty
Licensed under CC BY 4.0
https://github.com/JoeMighty/caasie-visualizer
Copyright (c) 2025 Jobin Bennykutty
This work is licensed under the Creative Commons Attribution 4.0
International License. To view a copy of this license, visit
http://creativecommons.org/licenses/by/4.0/ or send a letter to
Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
- Chart.js - MIT License
- PapaParse - MIT License
- SheetJS - Apache 2.0 License
- Google Fonts - SIL Open Font License
Have questions or issues? We're here to help!
- GitHub Issues: Open an issue
- Discussions: GitHub Discussions
- Check existing issues
- If new, create an issue with:
- Description of the bug
- Steps to reproduce
- Expected vs actual behavior
- Browser and version
- Screenshots (if applicable)
We welcome suggestions! Please:
- Check if it's already requested
- Open a new issue with "Feature Request" label
- Describe the feature and use case
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
- Follow the CC BY 4.0 license terms
Q: Do I need to install anything?
A: No! Just open the files in a browser or visit the live page.
Q: Can I use this for commercial projects?
A: Yes! CC BY 4.0 allows commercial use with attribution.
Q: Does this work offline?
A: Yes, once loaded. External fonts require internet on first load.
Q: Can I customize the code?
A: Absolutely! Modify colors, fonts, charts - it's your project.
Q: Is my data secure?
A: Yes, all processing happens locally in your browser. Nothing is uploaded.
Q: Can I add more charts?
A: Yes! The code is open and well-documented for easy extension.
Q: Can I embed this in my website?
A: Yes! Use an iframe or integrate the files directly.
- Visit: https://joemighty.github.io/Caasie-Visualiser/
- Upload: Your Caasie.co data file
- Filter: Use date range, venue type, or campaign filters to drill down
- Customize: Click the ⚙️ floating button (bottom-right) to adjust colors and fonts
- Analyze: Interactive charts and metrics update in real-time
That's it! No installation, no configuration, just visualize your data with powerful filtering.
Made with ❤️ by Jobin Bennykutty