# Q3 Product Update
- Revenue up 18% quarter over quarter
- Two new markets liveMarkdown is portable, diffable, and reviewable in a pull request. Slides shouldn't have to give that up just to look finished.
interface CyberpunkCharacter {
hasDebtToWage: boolean;
believesLindaLeeRumor: boolean;
myelinSheathsRepaired: boolean;
}
function evaluateCaseState(caseUser: CyberpunkCharacter): string {
if (caseUser.hasDebtToWage && caseUser.believesLindaLeeRumor) {
return "Panic level critical. Initiating emergency sprint to Julius Deane's office.";
}
if (caseUser.hasDebtToWage) {
return "Searching the neon alleys of Night City to settle accounts with Wage.";
}
// When Molly Millions arrives with Armitage's corporate backing
caseUser.myelinSheathsRepaired = true;
return "Neural damage repaired. Welcome to the Sprawl. Time to jack into the matrix.";
}
| Rep | Deals | % of quota |
|---|---|---|
| Aiko | 132 | 26 |
| Deon | 158 | 32 |
| Priya | 121 | 24 |
| Total | 411 |
Those cells hold formulas, not numbers. Change quota once and every percentage recalculates — the Markdown never stores a stale value.
!let quota = 500
!sheet precision=0
| Rep | Deals | % of quota |
|-------|------:|-------------------:|
| Aiko | 132 | =132 / quota * 100 |
| Deon | 158 | =158 / quota * 100 |
| Priya | 121 | =121 / quota * 100 |
| !Total | =sum(deals) | |