CostlyMeetings

Productivity

Original Idea

Meeting Cost Calculator A browser extension that shows the real-time dollar cost of any calendar meeting based on attendee salaries, encouraging shorter, smaller meetings.

Product Requirements Document (PRD): CostlyMeetings

1. Executive Summary

CostlyMeetings is a high-performance browser extension and analytics platform designed to solve the "invisible cost" of organizational meetings. By integrating directly with Google Calendar and Microsoft Outlook, it provides real-time financial transparency to meeting organizers and participants. Leveraging 2026-standard security and real-time data streaming, CostlyMeetings empowers teams to make data-driven decisions about their time, reducing meeting bloat and recovering thousands of dollars in hidden labor costs.


2. Problem Statement

Organizations lose an estimated 15–20% of their collective salary budget to unproductive meetings. The primary cause is the "Invisibility of Cost": organizers view meetings as "free" because the labor expense is not quantified at the point of creation. This leads to over-invitation, excessive duration, and a lack of accountability for the financial ROI of synchronized time.


3. Goals & Success Metrics

  • Goal 1: Provide immediate cost transparency during meeting creation and live calls.
  • Goal 2: Maintain 100% security of sensitive salary data.
  • Goal 3: Reduce average meeting duration across client organizations by 15% within 6 months.

Success Metrics:

  • Adoption Rate: >70% of invited users install the extension within the first 30 days of organizational rollout.
  • Behavioral Change: Average number of meeting attendees per event decreases by >10% over one quarter.
  • Performance: <100ms latency for cost-ticker updates on calendar side panels.

4. User Personas

  1. Olivia (Operations Manager): Needs to track department-wide burn rates and identify "meeting-heavy" teams to optimize operational efficiency.
  2. Tim (Team Lead): Wants to justify shorter stand-ups to his team and avoid "meeting fatigue" while staying within a project’s billable hour budget.
  3. Ellen (Executive): Requires high-level visibility into total company spend on recurring meetings without seeing individual employee salaries.

5. User Stories

  • As an Organizer, I want to see the projected cost of a meeting while I am adding guests, so I can reconsider if everyone’s presence is financially justified.
  • As an Admin, I want to sync salary data from BambooHR automatically, so I don't have to manually update rates every time someone gets a raise.
  • As an Attendee, I want the individual salary details to be hidden while still seeing the total meeting cost, to maintain privacy.
  • As a Finance Lead, I want to export a monthly CSV of meeting costs per department to include in our overhead analysis.

6. Functional Requirements

6.1 Calendar Integration

  • The extension must overlay a "Cost Ticker" on Google Calendar and Outlook Web.
  • It must detect changes in attendee lists or meeting duration in real-time.

6.2 Salary Calculation Engine

  • Support for manual hourly rate input or role-based averages (e.g., "Senior Engineer = $150/hr").
  • Automatic currency conversion based on organization settings.

6.3 Real-Time Cost Ticker

  • A live, counting ticker displayed during Google Meet or Zoom calls showing the dollar amount rising as the clock ticks.

6.4 Analytics Dashboard

  • Historical breakdown of spend by department, meeting type, and organizer.
  • Identification of "Top 10 Most Expensive Recurring Meetings."

6.5 Privacy & Permissions

  • Role-based access control (RBAC) to determine who can see individual vs. aggregate rates.
  • Option for "Zero-Knowledge" local storage of salary data for highly sensitive teams.

7. Technical Requirements

7.1 Frontend (Chrome Extension & Dashboard)

  • Framework: React v19.2.1 (utilizing React Compiler 1.0 for auto-memoization).
  • Styling: Tailwind CSS v4.1.x (utilizing the Oxide Rust engine).
  • Extension Framework: WXT (utilizing Manifest V3).
  • UI Standard: Native Side Panel API for persistent, non-intrusive overlays.

7.2 Backend & Infrastructure

  • Runtime: Node.js v24.x (LTS).
  • Database: PostgreSQL 16+ with Prisma v7.0 (utilizing the TypeScript-native/Wasm runtime).
  • Real-time Data: Server-Sent Events (SSE) for cost-ticker updates.
  • Background Jobs: AWS Lambda Durable Functions for historical calendar syncs.

7.3 API & Integrations

  • Google Calendar API: Utilizing syncToken for incremental delta fetches.
  • Microsoft Graph API: Utilizing @odata.deltaLink for event-driven updates.
  • HRIS Sync: Integration with BambooHR and Workday APIs via custom Node.js middleware.

8. Data Model

| Entity | Attributes | Relations | | :--- | :--- | :--- | | Organization | id, name, currency, avg_rate_default, kek_id (Master Key) | Has many Users, Meetings | | User | id, email, role, encrypted_salary, dek_blob (Encrypted DEK) | Belongs to Org | | MeetingEvent | id, provider_id, start_time, end_time, total_cost | Has many Participants | | Participant | meeting_id, user_id, hourly_rate_at_time | Link User to Meeting |


9. API Specification (Key Endpoints)

GET /api/v1/sync/calendar

  • Description: Triggers incremental delta sync using syncToken.
  • Response: 202 Accepted (Processes via BullMQ).

GET /api/v1/stream/cost/:meetingId

  • Description: SSE stream providing the live cost increment based on active duration.
  • Data Format: event: update \n data: {"currentTotal": 450.25}

10. UI/UX Requirements

  • Pattern: Use Shadow DOM v2 for all calendar injections to prevent style bleed.
  • Visibility: The sidebar should only trigger when an "Event View" or "Event Edit" modal is active (using throttled MutationObserver).
  • Dashboard: Use skeleton loaders for financial reports and Puppeteer for generating "Board-Ready" PDF summaries.

11. Non-Functional Requirements

  • Security: Application-Level Encryption (ALE) with Envelope Encryption for all salary fields.
  • Compliance: SOC2 Type II and ISO 27001 (2026 standards).
  • Performance: Dashboard reports must generate in <2s for datasets up to 100,000 events.
  • Accessibility: WCAG 2.1 Level AA compliance for all dashboard components.

12. Out of Scope

  • Employee payroll processing or direct payment integration.
  • Meeting transcription or AI summarization of meeting content (focus is strictly financial).
  • Support for non-web calendar clients (e.g., legacy Outlook Desktop app).

13. Risks & Mitigations

  • Risk: Salary data leak. Mitigation: Use Post-Quantum Cryptography (ML-KEM) and ensure the Node.js server never sees the master KEK.
  • Risk: Extension slows down Calendar UI. Mitigation: Run all math in MV3 Service Workers and use the native Side Panel API to avoid DOM heavy-lifting.

14. Implementation Tasks

Phase 1: Foundation & Security

  • [ ] Initialize WXT project with React 19.2.1 and Tailwind 4.1.
  • [ ] Configure Prisma 7.0 with PostgreSQL 16.
  • [ ] Implement Application-Level Encryption (ALE) module using AES-256-GCM and AWS KMS.
  • [ ] Set up OAuth 2.1 flow with PKCE for Google/Microsoft.

Phase 2: Core Extension Development

  • [ ] Implement Side Panel API UI for cost visualization.
  • [ ] Build MutationObserver logic for Google Calendar event detection.
  • [ ] Develop the real-time cost-ticker using Server-Sent Events (SSE).
  • [ ] Create Shadow DOM wrappers for calendar detail injections.

Phase 3: Data Sync & HRIS

  • [ ] Implement Google syncToken logic for background event fetching.
  • [ ] Build Microsoft Graph deltaLink synchronization worker.
  • [ ] Create custom middleware for BambooHR webhook ingestion.
  • [ ] Set up AWS Lambda Durable Functions for initial historical data ingestion.

Phase 4: Dashboard & Reporting

  • [ ] Build React 19 dashboard for organizational cost analytics.
  • [ ] Implement ExcelJS for formatted financial exports (.xlsx).
  • [ ] Integrate Puppeteer for high-quality PDF report generation.
  • [ ] Add "Privacy Toggle" logic for masking individual user data.

Phase 5: Launch & Compliance

  • [ ] Conduct SOC2 Type II readiness audit.
  • [ ] Finalize Chrome Web Store Manifest V3 submission.
  • [ ] Implement weekly email summary cron job via Vercel Edge Workflows.
  • [ ] Perform "React2Shell" vulnerability scan and finalize production build.