TrustRosie Business Model & Dashboard Requirements
This document serves as the comprehensive reference for the TrustRosie business model, including detailed cost calculations, revenue distribution formulas, and dashboard implementation specifications. All sections are designed to be reusable as help text within the dashboard interface.
Executive Summary
TrustRosie operates on a three-tier revenue model:
- Rosie Platform Costs: $25/hour for AI query procssing
- Return on Contribution (RoC) Rate: 60% time credits for content contributors
- Intellectual Property Rights (IPR): Licensed content with custom rates
This model incentivizes content contribution while enabling monetization of intellectual property, creating a sustainable ecosystem for AI-powered knowledge sharing.
Business Model Overview
Core Principles
- Fair Attribution: Contributors earn time credits (RoC) when their content is used
- Flexible Monetization: Content owners can license IP at custom rates
- Transparent Costs: All users see exactly what they pay and earn
- Quality Incentives: Better content gets used more, earning more rewards
Transaction Types
- Upload Contribution: Free content that earns RoC when used by others
- Upload IPR Content: Licensed content that generates revenue when used
- Query AI Assistant: Triggers cost calculations based on content used
Revenue Distribution
When a user queries the AI assistant:
- Rosie Platform: Receives $25/hour for AI processing
- Content Contributors: Earn 60% time credits for contribution content used
- IPR Owners: Receive license fees for proprietary content used
- Query User: Pays all costs (Rosie + IPR fees)
Detailed Cost Calculation Models
Rosie Platform Costs
Formula: Duration (seconds) × ($25/hour ÷ 3600 seconds) = Rosie Cost
Rate: $25.00 CAD per hour Per Second Rate: $0.006944 CAD
Example:
- Query Duration: 120 seconds (2 minutes)
- Calculation: 120 × $0.006944 = $0.83
Return on Contribution (RoC) Earnings
RoC Time Credits are non-redeemable minutes earned by contributors when their content is used in other users' AI query responses.
Formula: Duration × Content Portion × RoC Rate (60%) ÷ 60 = Time Credits (minutes)
Components:
- Duration: Query processing time in seconds
- Content Portion: Percentage of response using contributor's content
- RoC Rate: Fixed at 60% of attributed time
- Units: Earned in minutes (non-redeemable time credits)
Example:
- Query Duration: 120 seconds
- Contributor's Content Portion: 66.67%
- Calculation: 120 × 0.6667 × 0.60 ÷ 60 = 0.80 minutes
IPR License Cost
Duration: 10 seconds
Formula : Duration × Content Portion × (IPR Rate/hour ÷ 3600 seconds) = IPR Cost
Components:
- IPR Rate: Custom hourly rate set by content owner
- Content Portion: Percentage of response using IPR content
- Duration: Query processing time in seconds
Example:
- Query Duration: 120 seconds
- IPR Content Portion: 33.33%
- IPR Rate: $45/hour
- Calculation: 120 × 0.3333 × ($45 ÷ 3600) = $0.50
System Configuration
Platform Settings
{
"rosie": {
"hourlyRate": 25.00, // Platform cost per hour
"currency": "CAD", // Canadian Dollars
"rocRate": 0.60 // 60% time credit rate for contributors
},
"calculations": {
"rosieRatePerSecond": 0.006944, // $25/hour ÷ 3600 seconds
"timeCreditsPerMinute": 1.0, // RoC earnings unit
"precisionDecimals": 4 // Financial calculation precision
}
}
License Agreement Structure
{
"iprOwner": "UserB", // Content owner user ID
"userId": "UserC", // Licensed user ID
"hourlyRate": 45.00, // Custom rate in CAD/hour
"currency": "CAD", // Currency code
"dateSigned": "2025-11-01T12:00:00Z", // ISO timestamp
"expiryDate": "2026-11-01T12:00:00Z", // Optional expiry
"agreementType": "standard" // Agreement classification
}
Comprehensive Calculation Examples
Scenario: 2-Minute Query with Mixed Content
Setup:
- Query Duration: 120 seconds (2 minutes)
- Content Mix: 67% Contribution + 33% IPR
- IPR Rate: $45/hour
Step-by-Step Calculations:
Rosie Platform Cost
Duration: 120 seconds
Rate: $25/hour = $0.006944/second
Cost: 120 × $0.006944 = $0.833
RoC Time Credits (for Contributor)
Duration: 120 seconds
Portion: 66.67% (contribution content)
RoC Rate: 60%
Credits: (120 × 0.6667 × 0.60) ÷ 60 = 0.80 minutes
IPR License Fee (for IP Owner)
Duration: 120 seconds
Portion: 33.33% (IPR content)
Rate: $45/hour = $0.0125/second
Cost: 120 × 0.3333 × $0.0125 = $0.50
Total Query Cost (for User)
Rosie Cost: $0.83
IPR Cost: $0.50
Total: $1.33
Calculation Verification Table
| Component | Formula | Value | Result |
|---|---|---|---|
| Query Duration | Given | 120 seconds | 2.00 minutes |
| Rosie Rate | $25/hour | $0.006944/sec | Fixed platform rate |
| RoC Rate | Platform setting | 60% | Time credit percentage |
| IPR Rate | License agreement | $45/hour | $0.0125/sec |
| Content Attribution | |||
| Contribution Portion | Content analysis | 66.67% | 80 seconds |
| IPR Portion | Content analysis | 33.33% | 40 seconds |
| Financial Results | |||
| Rosie Cost | 120 × $0.006944 | $0.83 | User pays |
| RoC Earnings | (80 × 0.60) ÷ 60 | 0.80 min | Contributor earns |
| IPR Revenue | 40 × $0.0125 | $0.50 | IP owner earns |
| Total User Cost | Rosie + IPR | $1.33 | Complete transaction |
Architecture Overview
Prototype System Flow
Production Data Flow
Backend Transaction Logging:
- Upload Content Operations:
- Contributions (free content earning RoC)
- IPR contents (licensed content generating revenue)
- Query AI Assistant Operations:
- Content attribution analysis
- Cost/revenue calculations
- Transaction recording
Dashboard Data Pipeline:
- Dashboard UI calls Backend for User Transactions
- Backend fetches user transactions and calculates:
- Rosie costs (AI query processing fees)
- IPR costs (licensed content usage fees)
- RoC earnings (time credits from contribution usage)
- License agreements between users
- Content attribution and usage analytics
Dashboard Implementation Specifications
Key Performance Indicators (KPIs)
Rosie Costs
- Definition: Total platform fees paid for AI query processing
- Calculation: Sum of all query durations × $25/hour
- Display: Dollar amount with 2 decimal precision
- Help Text: "Platform costs for AI assistant usage at $25/hour"
IPR Costs
- Definition: Total license fees paid for using others' IP content
- Calculation: Sum of IPR portions × respective hourly rates
- Display: Dollar amount with 2 decimal precision
- Help Text: "License fees paid for using proprietary content"
RoC Earnings
- Definition: Time credits earned when others use your contributions
- Calculation: Sum of (duration × portion × 60%) ÷ 60 minutes
- Display: Minutes with 2 decimal precision + " min"
- Help Text: "Time credits earned from content contributions (non-redeemable)"
IPR Revenue
- Definition: License fees earned from others using your IP content
- Calculation: Sum of others' queries using your IPR × your rates
- Display: Dollar amount with 2 decimal precision
- Help Text: "Revenue earned from licensing your intellectual property"
Transaction Table Specifications
Column Definitions
| Column | Data Type | Description | Calculation |
|---|---|---|---|
| Date | DateTime | Transaction timestamp | ISO format, user timezone |
| Type | Enum | Upload/Query | Transaction category |
| Title | String | Content/query description | User-provided or generated |
| Duration | Number | Processing time in seconds | Measured or estimated |
| Rosie Cost | Currency | Platform fee | Duration × $0.006944/sec |
| IPR Cost | Currency | License fees paid | Sum of IPR portions × rates |
| IPR Revenue | Currency | License fees earned | Others' IPR costs for your content |
| RoC Earnings | Time | Time credits earned | (Duration × portion × 60%) ÷ 60 |
| Status | Enum | completed/pending/failed | Transaction state |
Filtering Logic
Activity Filter: Show all Upload and Query transactions
- Purpose: Validate Rosie and IPR costs
- Includes: User's own transactions only
- Sorting: Chronological, newest first
RoC Filter: Show contribution-related transactions
- Upload Contributions: User's content uploads
- Query Earnings: Others' queries using user's contributions
- Purpose: Validate RoC earnings calculations
- RoC values: Specific to selected user
IPR Costs Filter: Show IPR expense transactions
- User's Queries: Using others' IPR content
- Purpose: Validate IPR cost calculations
- Focus: Outgoing license fee payments
IPR Revenue Filter: Show IPR income transactions
- Others' Queries: Using user's IPR content
- Purpose: Validate IPR revenue calculations
- Focus: Incoming license fee payments
User Experience Specifications
User Selection
- Options: Individual users (UserA, UserB, etc.) + "All Users"
- Behavior: Filters all calculations and displays
- Default: Current user context
KPI Card Interactions
- Click Behavior: Apply corresponding filter to transaction table
- Visual Feedback: Highlight selected KPI, update table header
- Data Refresh: Recalculate and redisplay filtered results
Row Click Behavior
- Action: Open modal with complete transaction details
- Content: Full JSON transaction data, formatted for readability
- Purpose: Detailed transaction verification and debugging
Data Structures & API Specifications
Use Case Diagram
TrustRosie Dashboard Prototype Use Case Diagram
Sequence Diagram
Demo User Querying AI Assistant
Business Model
Core Transaction Structure
{
"id": "txn-12345",
"userId": "UserA",
"type": "Query", // Upload, Query
"title": "Query about AI implementation",
"date": "2025-12-01T14:30:00Z",
"duration": 120, // seconds
"status": "completed",
"costs": {
"rosieCost": 0.83,
"iprCosts": [
{
"iprOwner": "UserB",
"hourlyRate": 45.00,
"portion": 0.3333,
"cost": 0.50,
"currency": "CAD"
}
],
"rocEarnings": [
{
"userId": "UserA",
"portion": 0.6667,
"timeCredits": 0.80,
"units": "minutes"
}
]
},
"metadata": {
"sourcesSummary": {
"https://example.com/alice-research": {
"title": "Alice's Research Paper",
"userId": "UserA",
"iprOwner": "",
"contentType": "contribution",
"count": 2,
"tags": ["machine-learning", "AI"]
},
"https://example.com/bob-ipr": {
"title": "Bob's Licensed Content",
"userId": "UserB",
"iprOwner": "UserB",
"contentType": "ipr",
"count": 1,
"tags": ["algorithms", "proprietary"]
}
}
}
}
Upload Transaction Structure
{
"id": "upload-67890",
"userId": "UserA",
"type": "Upload",
"title": "Research Paper on AI Ethics",
"source": "https://example.com/ai-ethics-paper",
"date": "2025-11-15T09:00:00Z",
"duration": 45, // processing time
"status": "completed",
"iprOwner": "", // empty = contribution, userId = IPR content
"costs": {
"rosieCost": 0.31, // upload processing cost
"iprCosts": [], // no IPR costs for uploads
"rocEarnings": [] // no immediate RoC for uploads
},
"metadata": {
"contentType": "contribution", // or "ipr"
"chunkCount": 15,
"fileSize": "2.3MB",
"processingMethod": "auto-chunking"
}
}
License Agreement API
{
"id": "license-001",
"iprOwner": "UserB",
"userId": "UserC",
"hourlyRate": 45.00,
"currency": "CAD",
"dateSigned": "2025-11-01T12:00:00Z",
"expiryDate": "2026-11-01T12:00:00Z", // optional
"agreementType": "standard",
"status": "active", // active, expired, suspended
"autoRenewal": true,
"notificationSettings": {
"expiryWarningDays": 30,
"usageReports": "monthly"
}
}
Business Logic Implementation
Cost Calculation Engine
Primary Calculation Function
function calculateTransactionCosts(transaction) {
const settings = getSystemSettings();
const duration = transaction.duration; // seconds
// 1. Rosie Platform Cost (always applies)
const rosieCost = duration * (settings.rosie.hourlyRate / 3600);
// 2. IPR Costs (for Query transactions using licensed content)
const iprCosts = [];
if (transaction.type === "Query" && transaction.metadata.sourcesSummary) {
for (const [source, info] of Object.entries(
transaction.metadata.sourcesSummary
)) {
if (info.contentType === "ipr" && info.iprOwner !== transaction.userId) {
const license = getLicense(transaction.userId, info.iprOwner);
if (license && isLicenseValid(license)) {
const portion = calculateContentPortion(
info.count,
transaction.metadata.totalChunks
);
const cost = duration * portion * (license.hourlyRate / 3600);
iprCosts.push({
iprOwner: info.iprOwner,
hourlyRate: license.hourlyRate,
portion: portion,
cost: cost,
currency: license.currency,
});
}
}
}
}
// 3. RoC Earnings (for contributors when their content is used)
const rocEarnings = [];
if (transaction.type === "Query" && transaction.metadata.sourcesSummary) {
for (const [source, info] of Object.entries(
transaction.metadata.sourcesSummary
)) {
if (
info.contentType === "contribution" &&
info.userId !== transaction.userId
) {
const portion = calculateContentPortion(
info.count,
transaction.metadata.totalChunks
);
const timeCredits = (duration * portion * settings.rosie.rocRate) / 60; // minutes
rocEarnings.push({
userId: info.userId,
portion: portion,
timeCredits: timeCredits,
units: "minutes",
});
}
}
}
return {
rosieCost: roundCurrency(rosieCost),
iprCosts: iprCosts,
rocEarnings: rocEarnings,
};
}
Content Attribution Logic
function calculateContentPortion(chunkCount, totalChunks) {
if (totalChunks === 0) return 0;
return chunkCount / totalChunks;
}
function isLicenseValid(license) {
if (!license.expiryDate) return true; // perpetual license
return new Date(license.expiryDate) > new Date(); // not expired
}
function roundCurrency(amount, decimals = 4) {
return Math.round(amount * Math.pow(10, decimals)) / Math.pow(10, decimals);
}
KPI Aggregation Functions
User KPI Calculator
function calculateUserKPIs(userId, transactions = null) {
const userTransactions = transactions || getAllUserTransactions(userId);
let rosieCosts = 0;
let iprCosts = 0;
let iprRevenue = 0;
let rocEarnings = 0;
// Sum user's own transaction costs
userTransactions.forEach((txn) => {
if (txn.status === "completed") {
rosieCosts += txn.costs.rosieCost || 0;
if (txn.costs.iprCosts) {
iprCosts += txn.costs.iprCosts.reduce(
(sum, cost) => sum + cost.cost,
0
);
}
}
});
// Find earnings from other users' transactions
const allTransactions = getAllTransactions();
allTransactions.forEach((txn) => {
if (txn.status === "completed" && txn.userId !== userId) {
// IPR Revenue: others paying for user's content
if (txn.costs.iprCosts) {
txn.costs.iprCosts.forEach((cost) => {
if (cost.iprOwner === userId) {
iprRevenue += cost.cost;
}
});
}
// RoC Earnings: others using user's contributions
if (txn.costs.rocEarnings) {
txn.costs.rocEarnings.forEach((earning) => {
if (earning.userId === userId) {
rocEarnings += earning.timeCredits;
}
});
}
}
});
return {
rosie_costs: roundCurrency(rosieCosts, 2),
ipr_costs: roundCurrency(iprCosts, 2),
ipr_revenue: roundCurrency(iprRevenue, 2),
roc_earnings: roundCurrency(rocEarnings, 2),
};
}
Validation & Testing Framework
Expected Values for Testing
const EXPECTED_VALUES = {
UserA: {
rosie: 2.7292, // Platform costs paid
iprCosts: 2.7292, // License fees paid
iprRevenue: 0.0, // No IP content
rocMinutes: 0.0, // No contributions used yet
},
UserB: {
rosie: 1.125, // Platform costs paid
iprCosts: 1.125, // License fees paid
iprRevenue: 1.125, // Earnings from IP licensing
rocMinutes: 0.72, // Time credits from contributions
},
UserC: {
rosie: 1.125, // Platform costs paid
iprCosts: 1.125, // License fees paid
iprRevenue: 0.0, // No IP content
rocMinutes: 0.0, // No contributions used yet
},
};
Audit Functions
function auditAllCalculations() {
const results = {
timestamp: new Date().toISOString(),
tests: [],
summary: { passed: 0, failed: 0, totalTests: 0 },
};
Object.entries(EXPECTED_VALUES).forEach(([userId, expected]) => {
const calculated = calculateUserKPIs(userId);
["rosie_costs", "ipr_costs", "ipr_revenue", "roc_earnings"].forEach(
(metric) => {
const expectedKey =
metric === "rosie_costs"
? "rosie"
: metric === "ipr_costs"
? "iprCosts"
: metric === "ipr_revenue"
? "iprRevenue"
: "rocMinutes";
const expectedValue = expected[expectedKey];
const calculatedValue = calculated[metric];
const tolerance = 0.01; // 1 cent or 0.01 minute tolerance
const passed = Math.abs(expectedValue - calculatedValue) < tolerance;
results.tests.push({
userId,
metric,
expected: expectedValue,
calculated: calculatedValue,
difference: calculatedValue - expectedValue,
passed,
});
if (passed) results.summary.passed++;
else results.summary.failed++;
results.summary.totalTests++;
}
);
});
results.summary.passRate =
(results.summary.passed / results.summary.totalTests) * 100;
results.overallStatus = results.summary.failed === 0 ? "PASS" : "FAIL";
return results;
}
Mock Data Specifications
Prototype Data Requirements
For dashboard prototyping, mock data must include:
- Realistic User Scenarios: Multiple users with different content types and usage patterns
- Date Flexibility:
dateDiffattributes for relative date testing - Complete Transaction Coverage: Upload contributions, IPR content, queries, and license agreements
- Calculation Verification: Known expected values for audit testing
Mock User Profiles
const MOCK_USERS = [
{
id: "UserA",
name: "Alice Chen",
role: "Research Scientist",
profile: "Heavy uploader of academic content, moderate query user",
},
{
id: "UserB",
name: "Bob Martinez",
role: "IP Content Creator",
profile: "Creates licensed content, earns IPR revenue",
},
{
id: "UserC",
name: "Charlie Kim",
role: "Query-Heavy User",
profile: "Primarily consumes content, pays most costs",
},
{
id: "UserD",
name: "Diana Foster",
role: "New User",
profile: "No IPR agreements, limited activity",
},
{
id: "UserE",
name: "Eve Thompson",
role: "Complete Beginner",
profile: "No transactions yet, baseline user",
},
];
Sample Mock Transaction
{
"id": "mock-query-001",
"userId": "UserC",
"type": "Query",
"title": "How to implement machine learning pipelines?",
"date": "2025-12-01T14:30:00Z",
"dateDiff": 5, // 5 days ago from current date
"duration": 180, // 3 minutes
"status": "completed",
"costs": {
"rosieCost": 1.25,
"iprCosts": [
{
"iprOwner": "UserB",
"hourlyRate": 45.00,
"portion": 0.4,
"cost": 0.90,
"currency": "CAD"
}
],
"rocEarnings": [
{
"userId": "UserA",
"portion": 0.6,
"timeCredits": 1.08,
"units": "minutes"
}
]
},
"metadata": {
"totalChunks": 10,
"sourcesSummary": {
"https://example.com/alice-ml-research": {
"title": "Alice's ML Pipeline Research",
"userId": "UserA",
"iprOwner": "",
"contentType": "contribution",
"count": 6,
"tags": ["machine-learning", "pipelines"]
},
"https://example.com/bob-proprietary-algorithms": {
"title": "Bob's Proprietary ML Algorithms",
"userId": "UserB",
"iprOwner": "UserB",
"contentType": "ipr",
"count": 4,
"tags": ["algorithms", "proprietary", "optimization"]
}
}
}
}
Content Attribution Examples
Contribution Content Structure:
{
"source": "https://example.com/alice-research",
"title": "Advanced AI Ethics Guidelines",
"userId": "UserA",
"iprOwner": "", // Empty indicates free contribution
"contentType": "contribution",
"uploadDate": "2025-10-15",
"chunkCount": 25,
"tags": ["AI", "ethics", "guidelines", "research"]
}
IPR Content Structure:
{
"source": "https://example.com/bob-algorithms",
"title": "Proprietary Optimization Algorithms",
"userId": "UserB",
"iprOwner": "UserB", // Same as userId for owned IP
"contentType": "ipr",
"uploadDate": "2025-11-01",
"chunkCount": 15,
"licenseRequired": true,
"defaultRate": 45.00,
"tags": ["algorithms", "optimization", "proprietary"]
}
Implementation Guidelines
Prototype Development Principles
- Backend-Compatible Code: No browser-specific APIs in business logic
- Clear Separation: UI components separate from calculation engine
- Comprehensive Testing: All calculations must have verification tests
- Realistic Data: Mock scenarios must reflect real-world usage patterns
- Maintainable Structure: Code organization supports future backend migration
Dashboard Component Architecture
dashboard-simulated-backend.js // Core business logic (backend-compatible)
├── calculateTransactionCosts() // Primary calculation engine
├── calculateUserKPIs() // KPI aggregation
├── getFilteredTransactions() // Data filtering
├── auditAllCalculations() // Testing framework
└── EXPECTED_VALUES // Validation constants
dashboard-ui-components.js // Frontend-specific code
├── renderKPICards() // KPI display components
├── renderTransactionTable() // Data table management
├── handleUserSelection() // UI interaction handlers
└── updateDashboardView() // View state management
Testing & Validation Requirements
- Calculation Accuracy: All financial calculations must match expected values within 1 cent tolerance
- Time Credit Precision: RoC earnings accurate to 0.01 minutes
- Data Consistency: Transaction sums must equal KPI totals
- Filter Validation: Each filter type must show correct transaction subsets
- Edge Case Handling: Zero amounts, missing data, expired licenses
Testing Tools & Interfaces
- Backend Test Page: Comprehensive backend logic testing with detailed transaction breakdown and calculation verification
- Audit Test System: Complete audit interface with expected vs. calculated values comparison, toggle controls, and comprehensive reporting
Future Production Considerations
Scalability Requirements
- Real-time Calculations: Sub-second KPI updates for active users
- Large Dataset Support: Efficient queries for users with thousands of transactions
- Concurrent Access: Multiple users accessing dashboards simultaneously
- Data Consistency: ACID compliance for financial calculations
Security & Privacy
- Financial Data Protection: Encrypted storage and transmission of cost/revenue data
- User Isolation: Strict access controls preventing cross-user data leaks
- Audit Trails: Complete logging of all financial calculations and changes
- Compliance: GDPR, financial regulations for money handling
Performance Optimization
- Caching Strategy: Pre-calculated KPIs with incremental updates
- Database Indexing: Optimized queries for date ranges and user filtering
- API Efficiency: Minimal data transfer with compressed responses
- Real-time Updates: WebSocket connections for live dashboard updates
Calculation Reference Tables
Standard Rate Schedule
| Component | Rate | Unit | Formula |
|---|---|---|---|
| Rosie Platform | $25.00 | CAD/hour | duration_seconds × ($25 ÷ 3600) |
| RoC Time Credits | 60% | percentage | (duration × portion × 0.60) ÷ 60 |
| IPR Licensing | Variable | CAD/hour | duration × portion × (rate ÷ 3600) |
Precision Standards
| Value Type | Decimal Places | Rounding Method |
|---|---|---|
| Currency (Display) | 2 | Banker's rounding |
| Currency (Calculation) | 4 | IEEE 754 standard |
| Time Credits | 2 | Standard rounding |
| Percentages | 4 | Truncation |
| Duration | 0 | Whole seconds |
Example Calculation Verification
Test Case: 2-Minute Mixed Content Query
| Component | Input | Calculation | Expected Result |
|---|---|---|---|
| Query Duration | 120 seconds | Given | 2.00 minutes |
| Content Mix | 67% + 33% | Content analysis | 100% total |
| Rosie Cost | 120s × $0.006944/s | Platform fee | $0.83 |
| RoC Credits | (80s × 0.60) ÷ 60 | Contributor earnings | 0.80 minutes |
| IPR Cost | 40s × $0.0125/s | License fee | $0.50 |
| Total Cost | $0.83 + $0.50 | User payment | $1.33 |
Verification Formula Reference:
- Rosie:
duration_seconds × ($25 ÷ 3600) - RoC:
(duration × contribution_portion × 0.60) ÷ 60 - IPR:
duration × ipr_portion × (rate ÷ 3600)
Legacy Formula Documentation
The following spreadsheet formulas are maintained for backward compatibility and detailed verification:
Spreadsheet Calculation Matrix
| Row | Component | Hours | Minutes | Seconds | Formula |
|---|---|---|---|---|---|
| 2 | Duration | 0.0333 | 2.00 | 120 | Given |
| 3 | RoC Rate | - | - | 60% | Platform setting |
| 4 | Rosie Rate | $25 | $0.42 | $0.0069 | Rate conversion |
| 5 | IPR Rate | $45 | $0.75 | $0.0125 | License rate |
| 8 | Contribution | 67% | 0.80 | 48.00 | Content portion |
| 9 | IPR Content | 33% | 0.67 | 40.00 | Content portion |
| 11 | Rosie Cost | $0.83 | - | - | Total platform fee |
| 12 | IPR Cost | $0.50 | - | - | Total license fee |
Excel/Sheets Formula Reference
Duration (C2): =D2/60 // Convert minutes to hours
RoC Rate (B3): 0.6 // Fixed at 60%
Rosie Rate (C4): 25, D4: =C4/60 // Hourly rate conversion
IPR Rate (C5): 45, D5: =C5/60 // License rate conversion
Contribution Portion (B8): =2/3 // 66.67% content attribution
IPR Portion (B9): =1/3 // 33.33% content attribution
RoC Time (E8): =E2*C3*B8 // Duration × RoC% × Portion
IPR Duration (E9): =E2*B9 // Duration × IPR Portion
Rosie Cost (C11): =C2*C4 // Hours × Hourly Rate
IPR Cost (C12): =C2*B9*C5 // Hours × Portion × IPR Rate
This documentation serves as a complete reference for the TrustRosie business model, providing both high-level understanding and implementation details suitable for dashboard help text, developer documentation, and financial verification.