← DaloopaCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Daloopa
Snapshot Sep 30, 2026 · 22:51 UTC · version 6.0.0
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "unit-economics",
"description": "Bottoms-up unit economics decomposition for any public company",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 219
}
],
"skill_md_contents": "---\nname: unit-economics\ndescription: Bottoms-up unit economics decomposition for any public company\n---\n\nPerform a bottoms-up unit economics decomposition for the company named in the user's request. If no ticker or company is provided, ask for one before proceeding.\n\n**Before starting, read `../data-access.md` for data access methods and `../design-system.md` for formatting conventions.** Follow the data access detection logic and design system throughout this skill.\n\nFollow these steps:\n\n## 1. Company Lookup\nLook up the company by ticker using `discover_companies`. Capture:\n- `company_id`\n- `latest_calendar_quarter` — anchor for all period calculations below (see `../data-access.md` Section 1.5)\n- `latest_fiscal_quarter`\n- Firm name for report attribution (default: \"Daloopa\") — see `../data-access.md` Section 4.5\n\n## 2. Series Discovery & Business Archetype Detection\nCast a wide net to discover ALL available series for this company. Search with multiple keyword sets to maximize coverage:\n- Financial: \"revenue\", \"income\", \"profit\", \"margin\", \"eps\", \"cost\"\n- Operating KPIs: \"subscriber\", \"user\", \"customer\", \"unit\", \"arpu\", \"retention\", \"churn\"\n- Segment/Product: \"segment\", \"product\", \"service\", \"geographic\"\n- Business-specific: \"store\", \"gmv\", \"order\", \"booking\", \"backlog\", \"premium\", \"loan\", \"aum\", \"room\", \"seat\", \"bed\", \"acreage\"\n\nCollect all unique series IDs. Read every series name and description returned. **This is how you learn what kind of business this is and what unit-level KPIs Daloopa tracks for it.**\n\nBased on series availability, classify the business into one of these archetypes (or a hybrid). This classification drives the entire report structure:\n\n| If you find series like... | Archetype | Unit = |\n|---|---|---|\n| ARR, MRR, net dollar retention, customers, ACV, churn, CAC, LTV | **SaaS / Subscription** | Customer or subscription |\n| Store count, same-store sales, AUV, restaurant-level margin, new openings | **Unit-based retail / Restaurant** | Store or unit |\n| GMV, take rate, orders, AOV, active buyers/sellers | **Marketplace / E-commerce** | Order or transaction |\n| Subscribers, ARPU, churn, content spend per sub | **Consumer subscription (media/streaming)** | Subscriber |\n| Premiums written, loss ratio, combined ratio, policies in force | **Insurance** | Policy |\n| NIM, loans, deposits, provision for credit losses, NCOs | **Banking / Lending** | Loan or account |\n| ASP, units shipped, cost per unit, gross margin per unit | **Hardware / Manufacturing** | Unit shipped |\n| AUM, management fee rate, performance fees, fund flows | **Asset Management** | Dollar of AUM |\n| Revenue per available room (RevPAR), occupancy, ADR | **Hospitality / Lodging** | Room night |\n| RPM, RASM, CASM, load factor, ASMs | **Airlines / Transportation** | Available seat mile |\n| Revenue per user, DAU, MAU, ARPU, engagement | **Digital platform / Advertising** | User |\n| Beds, admissions, revenue per admission, case mix | **Healthcare facilities** | Admission or bed |\n| Acreage, production per acre, realized price per unit | **Commodity / E&P** | Unit of production |\n\nIf the business is a hybrid or doesn't fit neatly, construct a custom framework from the available series. The archetype is a starting guide, not a constraint.\n\n**Edge cases:**\n- **Diversified / multi-segment companies**: Pick the largest or most analytically interesting segment for primary analysis. Note other segments briefly. If the user specifies a segment, focus there.\n- **Pre-revenue / early-stage companies**: Focus on burn rate per unit of growth, cash efficiency, and path to unit profitability.\n- **Financial companies (banks, insurance, asset managers)**: These have specialized unit economics. For banks, the \"unit\" is a dollar of assets — focus on NIM, fee income/assets, efficiency ratio, credit costs. For insurance, focus on the combined ratio decomposition. Don't force a SaaS or retail framework onto financials.\n- **Companies with no obvious unit-level KPIs in Daloopa**: Fall back to a margin bridge / operating leverage analysis using standard income statement data. Decompose revenue into whatever sub-components are available (segment, geography, product line) and analyze profitability at that level. Note the limitation.\n- **Companies that stopped disclosing unit data**: Some major companies (e.g., Apple post-2018) no longer report unit shipments or ASPs. If unit-level data is not available, adapt to the highest-resolution decomposition the data supports (e.g., segment revenue × segment margin). Clearly flag the data gap and explain what proxy you used. Do not fabricate unit estimates.\n\n## 3. Unit Economics Data Pull\nCalculate 10 quarters backward from `latest_calendar_quarter`. Pull all archetype-relevant series identified in Step 2 for those periods, plus standard financials:\n- Revenue (total and segment)\n- COGS / cost of revenue\n- Gross profit\n- Operating income\n- Net income\n- All operating KPIs relevant to the detected archetype\n\n**Derived metrics** (calculate from pulled data, label each as \"(calc.)\" and show formulas):\n- Revenue per unit (Revenue / units)\n- Gross margin per unit\n- Contribution margin per unit (if variable costs are available)\n- Unit growth rate (QoQ and YoY)\n- Revenue per unit growth rate (QoQ and YoY)\n- Any archetype-specific derived metrics (e.g., CAC payback = CAC / (ARPU × gross margin), LTV/CAC, 4-wall margin, take rate, combined ratio)\n\n## 4. Qualitative Research\nSearch SEC filings for context on the unit economics. Use archetype-specific search terms:\n- **SaaS**: Try \"net dollar retention\", \"customer acquisition cost\"; fallback to \"expansion\", \"churn\", \"upsell\"\n- **Restaurant/Retail**: Try \"average unit volume\", \"restaurant-level margin\"; fallback to \"same-store\", \"new unit\", \"unit opening\"\n- **Marketplace**: Try \"take rate\", \"gross merchandise value\"; fallback to \"active buyers\", \"order volume\", \"monetization\"\n- **Hardware/Manufacturing**: Try \"average selling price\", \"units shipped\"; fallback to \"ASP\", \"volume\", \"mix\"\n- **Insurance**: Try \"combined ratio\", \"loss ratio\"; fallback to \"underwriting\", \"premium\", \"policy\"\n- **Banking**: Try \"net interest margin\", \"provision\"; fallback to \"loan growth\", \"credit quality\", \"efficiency\"\n- **Digital platform**: Try \"average revenue per user\", \"monthly active users\"; fallback to \"engagement\", \"monetization\", \"ARPU\"\n- **General (all archetypes)**: Try \"unit economics\", \"pricing\"; fallback to \"profitability\", \"margin\", \"per unit\"\n\nExtract management commentary on pricing, retention, expansion, new unit openings, margin levers, etc. with document citations.\n\n## 5. Analysis & Report Synthesis\n\n**Section 1: Business Model & Unit Definition (brief)**\n- 2-3 sentence description of what the \"unit\" is for this business\n- Why this decomposition matters for understanding the company's economics\n- What the revenue build-up looks like: units × revenue-per-unit, or equivalent\n\n**Section 2: Revenue Decomposition**\n- Show the bottoms-up revenue build: how units × price/rate × utilization (or equivalent) bridges to reported revenue\n- Table: quarterly history (10 quarters) showing each component\n- Highlight which lever is driving growth: volume vs. price vs. mix\n- Include growth rates (YoY) as sub-rows beneath each metric\n\n**Section 3: Unit-Level Profitability**\nThe core of the report. Show margin/profitability at the unit level over time:\n- For SaaS: gross margin per customer, CAC payback period, LTV/CAC ratio\n- For restaurants: 4-wall EBITDA margin, new unit payback, cash-on-cash return\n- For marketplace: contribution margin per order, after accounting for fulfillment/transaction costs\n- For insurance: loss ratio + expense ratio = combined ratio per policy\n- For hardware: gross margin per unit, cost per unit breakdown\n- Adapt to whatever the business actually is\n- Table: historical trend with period-over-period change\n- Explicitly call out whether unit economics are improving or deteriorating and by how much\n\n**Section 4: Cohort / Vintage Analysis (if data supports it)**\n- For subscription businesses: net retention curves, expansion vs. contraction\n- For unit-based businesses: same-store vs. new-store contribution, unit maturation\n- For lending: vintage loss curves, seasoning\n- If insufficient data for true cohort analysis, note this and substitute with proxy analysis (e.g., new customer growth rate vs. retention rate implies cohort behavior)\n\n**Section 5: Scalability & Operating Leverage**\n- How do unit economics change as the business scales?\n- Fixed cost absorption: which costs are truly fixed vs. variable per unit?\n- Show operating leverage by plotting revenue growth vs. cost growth\n- Incremental margins: are they expanding or compressing as the business grows?\n\n**Section 6: Key Drivers & What to Watch**\nThis is the most analytically valuable section. Based on the data, identify:\n- **The 3-5 metrics that matter most** for this company's unit economics, ranked by sensitivity / impact\n- For each metric: current level, historical range, direction of travel, and what would cause it to inflect\n- **Bull case drivers**: what would improve unit economics (e.g., pricing power, mix shift to higher-margin products, operating leverage kicking in, retention improving)\n- **Bear case risks**: what would deteriorate unit economics (e.g., competitive pricing pressure, rising CAC, input cost inflation, regulatory impact on take rates)\n- Connect each driver to its P&L impact: \"a 100bps improvement in net retention would add ~$X to ARR\" or \"each new store generates ~$Xm in 4-wall EBITDA in year 2\"\n\n**Section 7: Summary Assessment**\n- 3-4 sentence verdict on the health and trajectory of the company's unit economics\n- Is this a business with improving, stable, or deteriorating unit economics?\n- What is the single most important thing to monitor going forward?\n\n**Analytical standards:**\n- **Three-layer density**: every data point should have context (vs. prior period, vs. peers if known) and an implication (what it means for the investment case)\n- **Show your math**: when you derive a metric (e.g., implied CAC = S&M expense / new customers added), show the calculation explicitly so the reader can verify\n- **Flag data gaps**: if a key metric for the archetype isn't available in Daloopa's data, say so explicitly and explain what proxy you used or why the analysis is limited\n- **No generic filler**: if you don't have data to support a section, skip it or shorten it. Never pad with boilerplate\n- **Source everything**: every number should be traceable. Use Daloopa source citations per the design system conventions\n- **Prefer rates and ratios over absolutes**: unit economics are about efficiency, not scale. Lead with margins, returns, and per-unit metrics. Include absolutes as context\n\n## 6. Charts\nUse `infra/chart_generator.py` for charts. Include at minimum:\n1. A **revenue decomposition chart** (waterfall or time-series showing units × price → revenue)\n2. A **unit profitability trend chart** (time-series showing the key unit margin metric over time)\n3. Additional charts as warranted by the archetype (e.g., net retention waterfall for SaaS, same-store sales trend for restaurants, take rate trend for marketplaces)\n\n**All charts must be embedded in the HTML as base64 data URIs** (e.g., `<img src=\"data:image/png;base64,...\">`) so the report is fully self-contained with no external file dependencies. After generating each chart PNG, read the file and convert to base64 for embedding. Do not use relative `<img src=\"filename.png\">` paths.\n\nIf chart_generator.py is unavailable, embed simple inline SVG charts directly in the HTML.\n\n## 7. Save Report\nSave to `reports/{TICKER}_unit_economics.html` using the HTML report template from `../design-system.md`. Write the full analysis as styled HTML with the design system CSS inlined. This is the final deliverable — no intermediate markdown step needed.\n\nStructure the report with these sections:\n\n```\n<h1>{Company Name} ({TICKER}) — Unit Economics Analysis</h1>\n<p>Generated: {date}</p>\n\n<h2>Summary</h2>\n{2-3 sentences: What is the \"unit\"? Are unit economics improving or deteriorating? Key takeaway.}\n\n<h2>Business Model & Unit Definition</h2>\n{Section 1 content}\n\n<h2>Revenue Decomposition</h2>\n<table>\n| Component | Q(-9) | Q(-8) | ... | Q(latest) |\n{Units, revenue per unit, revenue — with Daloopa citations and YoY growth sub-rows}\n</table>\n{Commentary on volume vs. price drivers}\n\n<h2>Unit-Level Profitability</h2>\n<table>\n| Metric | Q(-9) | Q(-8) | ... | Q(latest) |\n{Archetype-specific unit margins — with Daloopa citations}\n</table>\n{Commentary on unit economics trajectory}\n\n<h2>Cohort / Vintage Analysis</h2>\n{Section 4 content, or note if insufficient data}\n\n<h2>Scalability & Operating Leverage</h2>\n<table>\n| Metric | Q(-9) | Q(-8) | ... | Q(latest) |\n{Revenue growth vs cost growth, incremental margins}\n</table>\n{Operating leverage assessment}\n\n<h2>Key Drivers & What to Watch</h2>\n{Ranked drivers with sensitivity analysis and bull/bear scenarios}\n\n<h2>Summary Assessment</h2>\n{3-4 sentence verdict}\n```\n\nAll financial figures must use Daloopa citation format: `<a href=\"https://daloopa.com/src/{fundamental_id}\">$X.XX million</a>`\n\nTell the user where the HTML report was saved.\n\nHighlight the 2-3 most important findings about the company's unit economics and what they signal for the investment case.\n"
}SHA-256: d44f7209cc281471a3cc8f0ae5e1992fd559ad208adfd6b174ec5fb37335f948