Hoe facturering werkt

Vibes to Bucks houdt je Cursor AI-tokenkosten bij en zet deze om in factureerbare uren in je urenregistratiesoftware (Moneybird of Harvest). De omzetting is gebaseerd op je uurtarief — de extensie berekent hoeveel uren van jouw tijd de AI-kosten vertegenwoordigen en maakt een tijdinvoer aan voor dat bedrag.

Per klantmapping beheer je drie zaken:

AI-kosten vermenigvuldigen (aanbevolen)

Gebruik dit wanneer je AI-ondersteund werk met een winstmarge wilt factureren. Je stelt een Kosten-naar-Winst Vermenigvuldiger in die de ruwe AI-kosten schaalt voordat ze worden omgezet in uren. Dit vangt de echte waarde die je levert — het maken van prompts, het beoordelen en itereren van output, het integreren van het resultaat, en het nemen van verantwoordelijkheid voor het eindproduct.

De berekening:

cost_eur = cost_usd × multiplier × fx_rate
hours    = cost_eur / hourly_rate

Voorbeeld: €10 aan AI-kosten, vermenigvuldiger 5, uurtarief €120/u:

cost_eur = €10 × 5 = €50
hours    = €50 / €120 = 0.42h (≈ 25 minutes billed)

Een vermenigvuldiger van 5 betekent dat elke €1 aan AI-uitgaven €5 aan factureerbare omzet wordt — een marge die de expertise en tijd weerspiegelt die je investeert rond de AI-output. Begin bij 5 en pas aan om aan je klantafspraken te voldoen.

Doorberekenen tegen nominale waarde

Gebruik dit voor kostendekkende facturatie — de ruwe AI-kosten worden tegen nominale waarde aan de klant doorberekend, omgezet in uren tegen je uurtarief. Er wordt geen marge toegevoegd.

De berekening:

cost_eur = cost_usd × fx_rate
hours    = cost_eur / hourly_rate

Voorbeeld: $12,00 AI-kosten, EUR/USD koers 0,92, uurtarief €120/u:

cost_eur = $12.00 × 0.92 = €11.04
hours    = €11.04 / €120  = 0.092h (≈ 6 minutes billed)

Niet factureerbaar

Vink Factureerbaar uit bij een mapping om AI-kosten voor die klant of dat project bij te houden zonder een tijdinvoer te genereren. De kosten verschijnen in je dashboard zodat je de uitgaven kunt zien, maar er wordt niets gesynchroniseerd naar Moneybird of Harvest. Handig voor interne projecten, R&D, of werk waarbij je de AI-kosten zelf absorbeert.

Wisselkoersen

USD→EUR conversie gebruikt de Frankfurter API, die referentiekoersen van de Europese Centrale Bank levert, dagelijks gepubliceerd rond 16:00 CET. Koersen worden lokaal gecached om overbodige API-aanroepen te vermijden. Wanneer de API onbereikbaar is, valt de extensie terug op de fallback_rate uit je configuratie.

Voor backfill haalt de extensie de historische koers op voor elke specifieke dag, zodat je nauwkeurige conversies krijgt, zelfs voor eerdere data.

Afronden en minimums

Tijdinvoeren worden opgeslagen als start/eind-tijdstempels. De extensie zet uren om in minuten en rondt af naar de dichtstbijzijnde hele minuut, met een minimum van 1 minuut:

Alle invoeren beginnen om 09:00 UTC. De eindtijd wordt berekend op basis van de afgeronde duur. Deze tijdstempels zijn een API-vereiste en weerspiegelen niet de daadwerkelijke werkuren.

Eén invoer per klant per project per dag

De synchronisatie-engine produceert maximaal één tijdinvoer per klant per project per dag. Als er later op dezelfde dag meer gebeurtenissen binnenkomen, werkt de volgende synchronisatie de bestaande invoer bij in plaats van een nieuwe te maken. Dit houdt je urenstaat schoon en voorkomt gefragmenteerde invoeren.

Idempotente synchronisatie

Voordat een invoer wordt aangemaakt, controleert de extensie of er al een bestaat voor dezelfde (dag, contact, project) combinatie:

Twee keer achter elkaar “Nu synchroniseren” uitvoeren levert geen duplicaten op.

Wekelijks budgetplafond

Stel een wekelijkse AI-kostenlimiet in per mapping (Pro). De extensie houdt de uitgaven per repo bij en stuurt Cursor-meldingen bij mijlpalen: 25%, 50%, 75%, 85%, 95% als informatiealerts, oplopend tot een waarschuwing bij 100% en elke 10% daarboven. Elke mijlpaal wordt één keer per week per repo geactiveerd.

Dit is een zacht plafond — het blokkeert nooit AI-gebruik, het houdt je gewoon op de hoogte voordat je eroverheen gaat. De budgetstatus is ook zichtbaar op het Gebruiksdashboard met meters die uitgaven versus limiet tonen.