Skenario Penagihan di Dunia Nyata

Setiap kehidupan penagihan freelancer lebih berantakan daripada yang terlihat dalam file konfigurasi yang rapi. Klien berubah, kontrak diperbarui, kesalahan terjadi, dan terkadang Anda melakukan pekerjaan yang tidak ingin Anda tagih. Skenario-skenario ini menggambarkan situasi nyata dan bagaimana Vibes to Bucks menangani masing-masing.


Skenario 1 — Pembaruan kontrak: klien yang sama, proyek baru

Siapa: Anna, seorang pengembang lepas yang bekerja pada github.com/acme/website untuk Klien Acme.

Apa yang terjadi: Anna telah menagih biaya AI ke proyek Moneybird “Acme Website Q1–Q2” sejak Januari. Pada 1 Juli, kontrak baru selama 6 bulan dimulai. Proyek Moneybird klien berubah menjadi “Acme Website Q3–Q4” — mungkin dengan tarif per jam yang berbeda. Repositori dan cabang tetap sama.

Yang Anna inginkan:

Risiko tanpa panduan: Anna mengubah aturan penagihannya dan menjalankan Sync Now. Ekstensi mengagregasi ulang dari Januari hingga Juni, tidak melihat entri waktu untuk hari-hari tersebut di bawah proyek baru, dan membuat 180 entri duplikat di Moneybird — bersama dengan yang sudah ada di bawah proyek lama.

Bagaimana Vibes to Bucks menanganinya: Ketika Anna mengedit aturan penagihannya untuk menunjuk ke proyek baru, ekstensi menanyakan apa yang harus dilakukan dengan biaya historis. Dia memilih “Terapkan mulai hari ini”. Hari-hari sebelumnya mempertahankan asosiasi mereka dengan proyek lama. Hanya hari ini dan hari-hari mendatang yang disinkronkan di bawah proyek baru. Tidak ada duplikat, tidak perlu pembersihan.


Skenario 2 — Pergantian klien: pindahkan repo ke klien yang berbeda

Siapa: Ben, seorang pengembang yang bekerja pada github.com/org/platform.

Apa yang terjadi: Ben awalnya menagih repo ini ke Klien Alpha, yang mendanai fase R&D. Platform sekarang dalam produksi dan Klien Beta adalah pelanggan yang berkelanjutan. Ben perlu memetakan ulang repositori.

2a — Pemutusan bersih

Yang Ben inginkan: Biaya di masa depan masuk ke Klien Beta. Entri masa lalu yang disinkronkan ke Klien Alpha tetap tidak tersentuh. Tidak ada yang retroaktif.

Bagaimana Vibes to Bucks menanganinya: Ben mengubah kontak aturan penagihan dari Alpha ke Beta. Ekstensi menanyakan apa yang harus dilakukan dengan sejarah. Dia memilih “Terapkan mulai hari ini”. Entri historis Alpha tetap di Moneybird. Beta mulai menerima entri dari hari ini.

2b — Koreksi retroaktif penuh

Yang Ben inginkan: Penagihan Alpha adalah kesalahan — seharusnya semuanya Beta sejak awal. Ben ingin menyinkronkan semuanya di bawah Beta. Dia menerima bahwa dia harus membersihkan entri Alpha secara manual di Moneybird.

Bagaimana Vibes to Bucks menanganinya: Ben memilih “Terapkan untuk semua waktu”. Ekstensi memperingatkan bahwa entri yang ada di bawah Alpha tidak akan dihapus secara otomatis — dia harus menghapusnya di Moneybird. Kemudian membuat entri baru untuk setiap hari historis di bawah Beta.

2c — Sinkronkan hanya celahnya

Yang Ben inginkan: Ben berhenti menyinkronkan dua minggu lalu ketika dia menyadari pemetaan itu salah. Dia memiliki 14 hari biaya yang belum disinkronkan di buku besar. Dia ingin 14 hari tersebut masuk ke Beta, tetapi bulan-bulan yang sudah disinkronkan ke Alpha harus tetap.

Bagaimana Vibes to Bucks menanganinya: Ben memilih “Terapkan hanya untuk hari-hari yang belum disinkronkan”. Ekstensi mengetahui hari mana yang sudah memiliki entri waktu di provider_posts dan melewatkannya. Hanya 14 hari yang belum disinkronkan yang dibuat di bawah Beta.


Skenario 3 — Pemisahan proyek: distribusikan ulang pekerjaan ke sub-proyek

Siapa: Clara, seorang pengembang yang bekerja pada monorepo untuk Klien Gamma.

Apa yang terjadi: Clara telah menagih semua pekerjaan AI ke satu proyek umum “General Development”. Gamma sekarang ingin biaya dipecah berdasarkan area fitur. Clara membuat aturan penagihan berbasis cabang: feature/auth/* → “Auth Module” dan feature/billing/* → “Billing Module”.

3a — Pemisahan ke depan saja

Yang Clara inginkan: Ke depan, biaya diarahkan ke sub-proyek yang benar. Biaya masa lalu yang sudah disinkronkan di bawah “General Development” tetap di sana.

Bagaimana Vibes to Bucks menanganinya: Ketika Clara menambahkan aturan cabang baru, ekstensi menanyakan tentang sejarah untuk masing-masing. Dia memilih “Terapkan mulai hari ini” untuk keduanya. Entri historis di bawah “General Development” tidak tersentuh.

3b — Akurasi historis

Yang Clara inginkan: Dia sebenarnya ingin memindahkan biaya masa lalu secara retroaktif ke sub-proyek yang benar. Dia menerima bahwa dia akan menghapus entri “General Development” lama secara manual di Moneybird.

Bagaimana Vibes to Bucks menanganinya: Clara memilih “Terapkan untuk semua waktu” untuk aturan baru. Ekstensi memperingatkan tentang entri yang ada di bawah proyek lama dan membuat entri yang benar per sub-proyek per hari. Clara membersihkan entri lama di Moneybird.


Skenario 4 — Pekerjaan gratis yang tidak dapat ditagih

Siapa: David, seorang freelancer yang bekerja pada repo Klien Delta.

Apa yang terjadi: David terlibat dalam tinjauan kode internal dan beberapa eksperimen yang bukan bagian dari ruang lingkup Delta — tetapi dia tetap membuka Cursor di repo mereka. Dia tidak ingin 2 jam biaya AI berikutnya dibebankan ke Delta.

Yang David inginkan:

Mengapa per-mapping, bukan global: David mungkin multitasking. Jika dia beralih ke repo Klien Beta sementara Delta tidak dapat ditagih, Beta harus tetap menagih secara normal. Tidak dapat ditagih adalah keputusan per-klien: “biaya ini bukan permintaan klien — saya melakukan ini untuk mereka sebagai kebaikan.”

Bagaimana Vibes to Bucks menanganinya: David membuka panel Pengaturan dan mengaktifkan aturan penagihan Delta ke tidak dapat ditagih. Sebuah dialog menanyakan dua hal: kapan tidak dapat ditagih dimulai (sekarang, atau mundur), dan kapan harus berakhir. David memilih “Mulai sekarang” dan “Akhir hari ini” — penagihan dilanjutkan secara otomatis besok. Bilah status menunjukkan $4.23 hari ini · Delta [tidak dapat ditagih hingga akhir hari] saat dia bekerja di repo Delta. Biaya yang tidak dapat ditagih masih disinkronkan ke Moneybird sebagai entri waktu yang tidak dapat ditagih (terlihat dalam catatan tetapi dikecualikan dari penagihan klien). Dasbor menunjukkan biaya yang dapat ditagih dan tidak dapat ditagih untuk Delta, jelas terpisah.

Jika David memperkirakan pekerjaan gratis ini akan berlangsung lebih lama, dia dapat memilih “Tanggal tertentu” (misalnya tidak dapat ditagih hingga Jumat) atau “Sampai saya melanjutkan secara manual” dengan interval pengingat (setiap 30 menit, 1 jam, 2 jam, dll.) agar dia tidak lupa mengaktifkan kembali penagihan.

Variasi — tidak dapat ditagih secara retroaktif

Yang David inginkan: Dia lupa mengaktifkan sebelum memulai. Dia ingin menandai 90 menit terakhir sebagai tidak dapat ditagih setelah fakta.

Bagaimana Vibes to Bucks menanganinya: David membuka panel Pengaturan, mengaktifkan Delta ke tidak dapat ditagih, dan di bawah bagian Mulai memilih “Mundur” dengan waktu 90 menit yang lalu. Biaya dari titik itu ke depan ditandai sebagai tidak dapat ditagih. Jika entri waktu hari ini sudah disinkronkan ke Moneybird, ekstensi menghitung ulang dan memperbaruinya untuk mencerminkan jumlah yang dapat ditagih yang dikurangi. Mundur dibatasi hingga hari ini — untuk koreksi multi-hari, Buku Besar Sinkronisasi menyediakan kontrol undo-dan-resync.


Skenario 5 — Batalkan sinkronisasi yang salah

Siapa: Eve, seorang freelancer yang mengubah pemetaan dan segera menjalankan Sync Now.

Apa yang terjadi: Eve mengedit aturan penagihan (mengubah proyek) dan menjalankan Sync Now tanpa memikirkan konsekuensinya. Ekstensi membuat 3 bulan entri waktu baru di bawah proyek yang salah di Moneybird, bersamaan dengan entri yang benar yang sudah ada di bawah proyek lama.

Yang Eve inginkan:

Bagaimana Vibes to Bucks menanganinya: Setelah setiap sinkronisasi, ekstensi menunjukkan notifikasi: “Disinkronkan ke Moneybird — Dibuat 87, diperbarui 2, dilewati 14.” Mengklik “Tampilkan detail” membuka Sync Ledger — tampilan khusus yang menunjukkan setiap entri yang disinkronkan dan tertunda, dapat difilter berdasarkan klien, proyek, dan tanggal. Eve dapat melihat dengan tepat entri mana yang baru saja dibuat, memilih yang salah, dan mengklik “Batalkan sinkronisasi.” Ekstensi menghapus entri tersebut dari Moneybird dan menandainya sebagai tertunda lagi sehingga dapat disinkronkan kembali dengan benar setelah dia memperbaiki aturan.


Skenario 6 — Penagihan proyek sementara

Siapa: Frank, seorang pengembang yang bekerja pada github.com/acme/api.

Apa yang terjadi: Frank biasanya menagih ke proyek “API Maintenance”. Selama dua minggu di bulan Maret, dia berada dalam sprint khusus yang ditagih ke “API v2 Migration”. Setelah sprint, dia beralih kembali.

Yang Frank inginkan:

Bagaimana Vibes to Bucks menanganinya: Kedua kali Frank mengubah aturan penagihan, dia memilih “Terapkan mulai hari ini”. Pada 10 Maret, aturan mulai menagih ke “API v2 Migration”. Pada 24 Maret, aturan beralih kembali ke “API Maintenance”. Setiap periode entri tetap dengan proyek yang aktif pada saat itu.


Skenario 7 — Berhenti menagih, tetap melacak

Siapa: Gina, seorang freelancer yang menyelesaikan pekerjaan dengan Klien Eta.

Apa yang terjadi: Kontrak sudah berakhir, tetapi Gina masih melakukan pemeliharaan kecil pada repo Eta. Dia ingin melihat biaya AI di dasbornya — untuk menilai apakah kontrak baru akan bermanfaat — tetapi dia tidak ingin menyinkronkan entri waktu apa pun.

Yang Gina inginkan:

Bagaimana Vibes to Bucks menanganinya: Gina menghapus centang “Billable” pada aturan penagihan Eta. Biaya terus dilacak dan muncul di dasbor di bawah Eta, tetapi tidak ada entri waktu yang dibuat. Ketika kontrak baru tiba, dia mengaktifkan kembali penagihan dan memilih “Terapkan mulai hari ini”. Celah yang tidak dapat ditagih tetap tidak ditagih.


Skenario 8 — Migrasi penyedia

Siapa: Hugo, seorang freelancer yang telah menyinkronkan ke Moneybird selama 6 bulan.

Apa yang terjadi: Firma akuntansi Hugo memindahkannya ke Harvest. Dia mengubah destination: harvest dalam konfigurasinya dan mengatur aturan penagihan Harvest baru.

Yang Hugo inginkan:

Bagaimana Vibes to Bucks menanganinya: Ketika Hugo mengganti penyedia penagihan, ekstensi mendeteksi bahwa Harvest tidak memiliki riwayat sinkronisasi. Tanpa panduan, itu akan mencoba membuat entri untuk setiap hari historis. Sebaliknya, dialog tiga opsi yang sama muncul: “Mulai baru dari hari ini”, “Sinkronkan semua sejarah”, atau “Sinkronkan hanya hari-hari yang belum disinkronkan.” Hugo memilih “Mulai baru.” Ekstensi menetapkan tanggal batas migrasi sehingga mesin sinkronisasi melewati semua hari sebelum hari ini. Hanya hari ini dan hari-hari mendatang yang membuat entri Harvest. Entri Moneybird-nya tidak tersentuh.


Skenario 9 — Penghapusan aturan yang tidak disengaja

Siapa: Ivan, seorang freelancer yang menagih repo Klien Kappa.

Apa yang terjadi: Ivan bermaksud mengedit aturan penagihannya untuk mengubah tarif per jam, tetapi secara tidak sengaja menghapusnya. Dia segera menyadari dan membuat ulang aturan dengan pengaturan yang benar.

Yang Ivan inginkan:

Risiko tanpa panduan: Ivan membuat aturan baru. Ekstensi melihat repo dengan data biaya historis dan tidak ada riwayat aturan penagihan yang cocok. Sinkronisasi naif akan memperlakukan setiap hari sebelumnya sebagai “tidak pernah disinkronkan di bawah aturan ini” dan membuat entri untuk seluruh sejarah.

Bagaimana Vibes to Bucks menanganinya: Ketika Ivan membuat aturan penagihan untuk repo yang sudah memiliki data biaya historis di buku besar, ekstensi mengenali ini dan menyajikan dialog tiga opsi yang sama. Ivan memilih “Terapkan mulai hari ini” — entri masa lalu tetap seperti sebelumnya, dan penagihan dilanjutkan dari hari ini. Tidak ada duplikat, tidak ada celah, tidak ada panik.


Benang merah

Setiap skenario di atas berujung pada satu pertanyaan: ketika Anda mengubah aturan penagihan, apa yang harus terjadi pada masa lalu?

Vibes to Bucks tidak pernah membuat keputusan itu untuk Anda. Setiap kali Anda mengedit aturan penagihan — mengubah klien, proyek, tarif, atau status dapat ditagih — ekstensi meminta Anda untuk memilih:

Pilihan Apa yang dilakukan
Terapkan mulai hari ini Hari-hari sebelumnya mempertahankan penagihan yang ada. Hanya hari ini dan hari-hari mendatang yang menggunakan aturan baru.
Terapkan untuk semua waktu Aturan baru diterapkan secara retroaktif ke setiap hari di buku besar. Memperingatkan tentang entri yang ada yang tidak akan dihapus secara otomatis.
Terapkan hanya untuk hari-hari yang belum disinkronkan Hari-hari yang sudah memiliki entri waktu di penyedia penagihan dibiarkan sendiri. Hanya hari-hari tanpa entri yang ada yang menggunakan aturan baru.

Pilihan yang dipandu ini muncul dalam dialog yang jelas setiap kali perubahan aturan penagihan akan memengaruhi bagaimana biaya historis ditangani. Tidak ada kejutan, tidak ada penagihan ulang retroaktif diam-diam, tidak ada duplikat yang terabaikan.