{"id":2353,"date":"2025-04-11T08:32:42","date_gmt":"2025-04-11T08:32:42","guid":{"rendered":"https:\/\/www.picdrop.com\/?page_id=2353"},"modified":"2026-08-24T11:15:20","modified_gmt":"2026-08-24T09:15:20","slug":"photography-day-rate-calculator","status":"publish","type":"page","link":"https:\/\/www.picdrop.com\/web\/photography-day-rate-calculator","title":{"rendered":"Photography Day Rate Calculator"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2353\" class=\"elementor elementor-2353\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-49dfe90 e-flex e-con-boxed e-con e-parent\" data-id=\"49dfe90\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-11a5ec6 e-flex e-con-boxed e-con e-child\" data-id=\"11a5ec6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5034a6d elementor-widget elementor-widget-heading\" data-id=\"5034a6d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Photography Day Rate Calculator<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8ab104b e-flex e-con-boxed e-con e-parent\" data-id=\"8ab104b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-4e6f78b e-con-full e-flex e-con e-child\" data-id=\"4e6f78b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-0be7caa e-con-full e-flex e-con e-child\" data-id=\"0be7caa\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-45e73aa elementor-widget elementor-widget-text-editor\" data-id=\"45e73aa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p dir=\"ltr\">As a photographer, it&#8217;s essential to know your numbers. This calculator helps you find your minimum day rate (the amount you need to cover your yearly costs and actually make a profit). This rate doesn&#8217;t include production costs like travel, equipment rentals or photo assistants. It also doesn&#8217;t factor in additional income from things like usage rights. Still, the rate you calculate is a good benchmark for the least amount of money you should charge to not go bankrupt doing the job you love.<\/p>\n<p dir=\"ltr\">We highly recommend charging more than what this calculator shows. Also, keep in mind that every photographer is different. Your rates should reflect your niche, experience, location and clients. Once you&#8217;ve run the numbers, share your rate and compare notes with fellow pros, then adjust to fit your reality.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4d172f3 e-con-full e-flex e-con e-child\" data-id=\"4d172f3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-43afde6 elementor-widget elementor-widget-image\" data-id=\"43afde6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"960\" height=\"720\" src=\"https:\/\/www.picdrop.com\/web\/wp-content\/uploads\/iStock-2279643522-960x720.jpg\" class=\"attachment-medium size-medium wp-image-8445\" alt=\"\" srcset=\"https:\/\/www.picdrop.com\/web\/wp-content\/uploads\/iStock-2279643522-960x720.jpg 960w, https:\/\/www.picdrop.com\/web\/wp-content\/uploads\/iStock-2279643522-1440x1080.jpg 1440w, https:\/\/www.picdrop.com\/web\/wp-content\/uploads\/iStock-2279643522-720x540.jpg 720w, https:\/\/www.picdrop.com\/web\/wp-content\/uploads\/iStock-2279643522-768x576.jpg 768w, https:\/\/www.picdrop.com\/web\/wp-content\/uploads\/iStock-2279643522-1536x1152.jpg 1536w, https:\/\/www.picdrop.com\/web\/wp-content\/uploads\/iStock-2279643522.jpg 2000w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-57097dd e-flex e-con-boxed e-con e-parent\" data-id=\"57097dd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0e044c1 elementor-widget elementor-widget-html\" data-id=\"0e044c1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"picdrop-rate-calc\" class=\"prc-root\">\n\n  <p class=\"prc-mobile-note\">Tip: this calculator is easier to use on a larger screen.<\/p>\n\n  <div class=\"prc-layout\">\n\n    <!-- Main column -->\n    <div class=\"prc-main\">\n\n      <!-- Photographer type -->\n      <section class=\"prc-card\">\n        <h3 class=\"prc-h3 prc-h3-icon\"><span class=\"prc-icon\" data-prc-icon=\"camera\"><\/span>Select your photography specialization<\/h3>\n        <p class=\"prc-muted\">Pick the closest match to load sensible starting numbers below. You can edit every value afterwards.<\/p>\n        <div class=\"prc-type-grid\" data-prc-type-grid><\/div>\n      <\/section>\n\n      <!-- Deductible expenses group -->\n      <div class=\"prc-group prc-group-deductible\">\n        <h3 class=\"prc-h3\">Enter deductible expenses<\/h3>\n        <p class=\"prc-muted\">These are only expenses that keep your business running. They don't include any personal expenses. Pre-filled with average European numbers, net amounts excluding VAT.<\/p>\n\n        <section class=\"prc-card\" data-prc-section=\"equipment\">\n          <h3 class=\"prc-h3 prc-collapsible\" data-prc-action=\"toggle-section\">Photography equipment <span class=\"prc-chevron\">&#9662;<\/span><\/h3>\n          <div class=\"prc-section-body\">\n            <ul class=\"prc-item-list\" data-prc-list=\"equipment\"><\/ul>\n            <button type=\"button\" class=\"prc-btn prc-btn-ghost\" data-prc-action=\"add-item\" data-prc-cat=\"equipment\">+ Add expense<\/button>\n          <\/div>\n        <\/section>\n\n        <section class=\"prc-card\" data-prc-section=\"business\">\n          <h3 class=\"prc-h3 prc-collapsible\" data-prc-action=\"toggle-section\">Business expenses <span class=\"prc-chevron\">&#9662;<\/span><\/h3>\n          <div class=\"prc-section-body\">\n            <ul class=\"prc-item-list\" data-prc-list=\"business\"><\/ul>\n            <button type=\"button\" class=\"prc-btn prc-btn-ghost\" data-prc-action=\"add-item\" data-prc-cat=\"business\">+ Add expense<\/button>\n          <\/div>\n        <\/section>\n\n        <section class=\"prc-card\" data-prc-section=\"legal\">\n          <h3 class=\"prc-h3 prc-collapsible\" data-prc-action=\"toggle-section\">Legal &amp; admin <span class=\"prc-chevron\">&#9662;<\/span><\/h3>\n          <div class=\"prc-section-body\">\n            <ul class=\"prc-item-list\" data-prc-list=\"legal\"><\/ul>\n            <button type=\"button\" class=\"prc-btn prc-btn-ghost\" data-prc-action=\"add-item\" data-prc-cat=\"legal\">+ Add expense<\/button>\n          <\/div>\n        <\/section>\n      <\/div>\n\n      <!-- Non-deductible \/ living expenses group -->\n      <div class=\"prc-group prc-group-nondeductible\">\n        <h3 class=\"prc-h3\">Enter non-deductible expenses<\/h3>\n        <p class=\"prc-muted\">These are your private expenses. To be able to pay for these, your photography business needs to make a profit first.<\/p>\n\n        <section class=\"prc-card\" data-prc-section=\"living\">\n          <h3 class=\"prc-h3 prc-collapsible\" data-prc-action=\"toggle-section\">Living expenses <span class=\"prc-chevron\">&#9662;<\/span><\/h3>\n          <div class=\"prc-section-body\">\n            <div class=\"prc-subcard prc-target-income\">\n              <div class=\"prc-field-row\">\n                <label for=\"prc-target-income\">My target net income after taxes is<\/label>\n                <span class=\"prc-target-income-value\"><strong data-prc-out=\"targetIncomeMonthly\">0<\/strong> \/ month<\/span>\n              <\/div>\n              <input type=\"range\" id=\"prc-target-income\" min=\"1000\" max=\"20000\" step=\"100\" data-prc-field=\"targetIncome\">\n              <p class=\"prc-hint\">Yearly net income: <strong data-prc-out=\"targetIncomeYearly\">0<\/strong><\/p>\n              <label class=\"prc-switch-row\">\n                <span class=\"prc-toggle\">\n                  <input type=\"checkbox\" data-prc-toggle=\"livingDetailed\">\n                  <span class=\"prc-toggle-track\"><\/span><span class=\"prc-toggle-thumb\"><\/span>\n                <\/span>\n                I want to list my expenses in detail below\n              <\/label>\n            <\/div>\n\n            <div class=\"prc-living-detailed\" data-prc-living-list>\n              <ul class=\"prc-item-list\" data-prc-list=\"living\"><\/ul>\n              <button type=\"button\" class=\"prc-btn prc-btn-ghost\" data-prc-action=\"add-item\" data-prc-cat=\"living\">+ Add expense<\/button>\n            <\/div>\n          <\/div>\n        <\/section>\n      <\/div>\n\n      <!-- Tax rate -->\n      <section class=\"prc-card\">\n        <h3 class=\"prc-h3\">Your tax rate<\/h3>\n        <div class=\"prc-field-row\">\n          <label for=\"prc-tax-rate\">Your income tax rate (%)<\/label>\n          <input type=\"number\" id=\"prc-tax-rate\" class=\"prc-input prc-input-sm\" min=\"0\" max=\"95\" step=\"0.1\" data-prc-field=\"taxRate\">\n        <\/div>\n        <p class=\"prc-hint\">Enter whatever your effective income tax rate actually is, in your own country. We gross up your living expenses so the day rate covers them after tax.<\/p>\n      <\/section>\n\n      <!-- Expense summary -->\n      <section class=\"prc-card\">\n        <h3 class=\"prc-h3\">Annual expenses summary<\/h3>\n        <p class=\"prc-muted\">Overview of your yearly expenses breakdown.<\/p>\n        <div class=\"prc-summary-grid\">\n          <div class=\"prc-summary-box prc-summary-deductible\">\n            <h4 class=\"prc-h4\">Deductible expenses<\/h4>\n            <ul class=\"prc-summary-list\">\n              <li><span>Equipment<\/span><strong data-prc-out=\"sumEquipment\">0<\/strong><\/li>\n              <li><span>Business<\/span><strong data-prc-out=\"sumBusiness\">0<\/strong><\/li>\n              <li><span>Legal &amp; admin<\/span><strong data-prc-out=\"sumLegal\">0<\/strong><\/li>\n              <li class=\"prc-summary-total\"><span>Total deductible<\/span><strong data-prc-out=\"sumDeductible\">0<\/strong><\/li>\n            <\/ul>\n          <\/div>\n          <div class=\"prc-summary-box prc-summary-nondeductible\">\n            <h4 class=\"prc-h4\">Non-deductible expenses<\/h4>\n            <ul class=\"prc-summary-list\">\n              <li><span>Living expenses<\/span><strong data-prc-out=\"sumLiving\">0<\/strong><\/li>\n              <li><span>Tax (<span data-prc-out=\"sumTaxRate\">0<\/span>%)<\/span><strong data-prc-out=\"sumTaxImpact\">0<\/strong><\/li>\n              <li class=\"prc-summary-total\"><span>Total non-deductible<\/span><strong data-prc-out=\"sumNonDeductible\">0<\/strong><\/li>\n            <\/ul>\n          <\/div>\n        <\/div>\n        <div class=\"prc-summary-callout\">\n          <span>Total annual income needed<\/span>\n          <strong data-prc-out=\"sumTotal\">0<\/strong>\n        <\/div>\n        <p class=\"prc-hint\">This is only the revenue implied by your calculated rate. It does not include separately billable items like production costs, equipment rental, travel or assistant fees.<\/p>\n      <\/section>\n\n      <!-- Working days -->\n      <section class=\"prc-card\">\n        <h3 class=\"prc-h3\">Available working days<\/h3>\n        <div class=\"prc-subcard\">\n          <p class=\"prc-muted\">I am able and willing to work on these days each week:<\/p>\n          <div class=\"prc-weekday-grid\" data-prc-weekday-grid><\/div>\n\n          <div class=\"prc-deduction-grid\">\n            <label>Vacation days<input type=\"number\" class=\"prc-input\" min=\"0\" data-prc-field=\"workingDays.vacation\"><\/label>\n            <label>Sick days<input type=\"number\" class=\"prc-input\" min=\"0\" data-prc-field=\"workingDays.illness\"><\/label>\n            <label>Training days<input type=\"number\" class=\"prc-input\" min=\"0\" data-prc-field=\"workingDays.education\"><\/label>\n            <label>Marketing days<input type=\"number\" class=\"prc-input\" min=\"0\" data-prc-field=\"workingDays.marketing\"><\/label>\n            <label>Admin days<input type=\"number\" class=\"prc-input\" min=\"0\" data-prc-field=\"workingDays.administration\"><\/label>\n            <label>Bank holidays<input type=\"number\" class=\"prc-input\" min=\"0\" data-prc-field=\"workingDays.bankHolidays\"><\/label>\n          <\/div>\n\n          <div class=\"prc-effective-days\">\n            <span>Effective working days per year<\/span>\n            <strong data-prc-out=\"effectiveDays\">0<\/strong>\n          <\/div>\n          <div class=\"prc-progress\"><div class=\"prc-progress-bar\" data-prc-out=\"daysBar\"><\/div><\/div>\n        <\/div>\n      <\/section>\n\n      <!-- Realistic shoot days -->\n      <section class=\"prc-card\">\n        <h3 class=\"prc-h3 prc-h3-icon\"><span class=\"prc-icon\" data-prc-icon=\"calendar\"><\/span><span data-prc-out=\"shootsTitle\">Realistic Shoot Days per Week<\/span><\/h3>\n        <p class=\"prc-muted\" data-prc-out=\"shootsDescription\"><\/p>\n\n        <div class=\"prc-unit-toggle\" role=\"group\">\n          <button type=\"button\" class=\"prc-unit-btn\" data-prc-shoots-unit=\"week\">Week<\/button>\n          <button type=\"button\" class=\"prc-unit-btn\" data-prc-shoots-unit=\"month\">Month<\/button>\n          <button type=\"button\" class=\"prc-unit-btn\" data-prc-shoots-unit=\"year\">Year<\/button>\n        <\/div>\n\n        <input type=\"range\" min=\"0\" max=\"7\" step=\"0.1\" data-prc-shoots-slider aria-label=\"Realistic shoot days\">\n        <div class=\"prc-slider-marks\" data-prc-shoots-marks><\/div>\n\n        <div class=\"prc-stat-grid\">\n          <div class=\"prc-stat-tile\"><strong data-prc-out=\"shootsWeek\">0.0<\/strong><span>Days per Week<\/span><\/div>\n          <div class=\"prc-stat-tile\"><strong data-prc-out=\"shootsMonth\">0.0<\/strong><span>Days per Month<\/span><\/div>\n          <div class=\"prc-stat-tile\"><strong data-prc-out=\"shootsYear\">0<\/strong><span>Days per Year<\/span><\/div>\n        <\/div>\n      <\/section>\n\n      <p class=\"prc-disclaimer\">Disclaimer: this tool is provided as-is, for informational purposes only. Always double-check your numbers and consult a professional if you're unsure.<\/p>\n    <\/div>\n\n    <!-- Results sidebar -->\n    <aside class=\"prc-sidebar\">\n      <div class=\"prc-card prc-results\">\n        <span class=\"prc-results-label\">Your day rate<\/span>\n        <span class=\"prc-results-sub\">based on available working days<\/span>\n        <strong class=\"prc-results-value\" data-prc-out=\"dayRateByDays\">&ndash;<\/strong>\n\n        <span class=\"prc-results-label prc-results-label-secondary\">Based on your shoots\/week target<\/span>\n        <strong class=\"prc-results-value prc-results-value-secondary\" data-prc-out=\"dayRateByShoots\">&ndash;<\/strong>\n\n        <p class=\"prc-results-note\">per shoot day, minimum &ndash; covers costs only, no profit margin<\/p>\n\n        <div class=\"prc-results-actions\">\n          <button type=\"button\" class=\"prc-btn\" data-prc-action=\"copy-link\">Copy shareable link<\/button>\n          <input type=\"text\" class=\"prc-input prc-share-output\" data-prc-share-output readonly style=\"display:none\">\n          <button type=\"button\" class=\"prc-btn prc-btn-text\" data-prc-action=\"reset\">Reset to defaults<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"prc-card prc-cta\">\n        <h4 class=\"prc-h4\">Like knowing your numbers?<\/h4>\n        <p>picdrop helps you deliver and get feedback on your shoots without the back-and-forth.<\/p>\n        <a class=\"prc-btn-cta elementor-button elementor-button-link elementor-size-md\" href=\"https:\/\/www.picdrop.com\/sign-up\" target=\"_blank\">\n          <span class=\"elementor-button-content-wrapper\"><span class=\"elementor-button-text\">Try picdrop now<\/span><\/span>\n        <\/a>\n      <\/div>\n    <\/aside>\n  <\/div>\n<\/div>\n\n<style>\n  \/* Custom UI parts only (toggles, colored groups, sliders); typography and\n     buttons otherwise inherit the site's own styles. *\/\n  #picdrop-rate-calc.prc-root {\n    --prc-primary: #1f2937;\n    --prc-accent: #fdd45b;\n    --prc-accent-text: #1a1a1a;\n    --prc-accent-tint: #fff8e6;\n    --prc-row-bg: #f6f4ef; \/* swap for a brand color if you have one *\/\n    --prc-sticky-top: 120px;\n    --prc-border: #e2e5e9;\n    --prc-card-bg: #ffffff;\n    --prc-muted: #6b7280;\n    --prc-radius: 10px;\n    --prc-green-bg: #eef7f0;\n    --prc-green-border: #cfe8d4;\n    --prc-green-text: #1f6b3a;\n    --prc-blue-bg: #eef3fb;\n    --prc-blue-border: #cfdff3;\n    --prc-blue-text: #1f4e8a;\n    box-sizing: border-box;\n    color: #1a1a1a;\n    background: transparent;\n    padding: 0;\n    max-width: 100%;\n  }\n  #picdrop-rate-calc.prc-root *, #picdrop-rate-calc.prc-root *::before, #picdrop-rate-calc.prc-root *::after {\n    box-sizing: border-box;\n  }\n  #picdrop-rate-calc.prc-root ul { margin: 0; padding: 0; list-style: none; }\n  #picdrop-rate-calc.prc-root button { cursor: pointer; }\n\n  \/* Flowing sections with thin dividers, not boxed cards *\/\n  #picdrop-rate-calc .prc-main .prc-card {\n    background: transparent;\n    border: none;\n    border-top: 1px solid var(--prc-border);\n    border-radius: 0;\n    padding: 28px 0;\n    margin-bottom: 0;\n  }\n  #picdrop-rate-calc .prc-main .prc-card:first-child {\n    border-top: none;\n    padding-top: 0;\n  }\n\n  \/* Deductible \/ non-deductible groups, matching the summary cards below *\/\n  #picdrop-rate-calc .prc-group { border-radius: var(--prc-radius); padding: 24px; margin: 28px 0; }\n  #picdrop-rate-calc .prc-group-deductible { background: var(--prc-green-bg); border: 1px solid var(--prc-green-border); }\n  #picdrop-rate-calc .prc-group-nondeductible { background: var(--prc-blue-bg); border: 1px solid var(--prc-blue-border); }\n  #picdrop-rate-calc .prc-group-deductible > .prc-h3 { color: var(--prc-green-text); }\n  #picdrop-rate-calc .prc-group-nondeductible > .prc-h3 { color: var(--prc-blue-text); }\n  #picdrop-rate-calc .prc-group .prc-card { border-top-color: rgba(0,0,0,.08); }\n\n  \/* Sidebar panels stay visually distinct on purpose *\/\n  #picdrop-rate-calc .prc-sidebar .prc-card {\n    background: var(--prc-card-bg);\n    border: 1px solid var(--prc-border);\n    border-radius: var(--prc-radius);\n    padding: 20px;\n    margin-bottom: 16px;\n  }\n  #picdrop-rate-calc .prc-cta {\n    background: var(--prc-accent-tint);\n    border-color: #f3e2ad;\n  }\n\n  \/* Spacing only \u2014 font-size\/weight\/color inherit the theme's h3\/h4 *\/\n  #picdrop-rate-calc .prc-h3 { margin: 0 0 8px; }\n  #picdrop-rate-calc .prc-h3-icon { display: flex; align-items: center; gap: 8px; }\n  #picdrop-rate-calc .prc-h4 { margin: 0 0 6px; }\n  #picdrop-rate-calc .prc-muted { color: var(--prc-muted); font-size: 0.9rem; margin: 0 0 12px; }\n  #picdrop-rate-calc .prc-hint { color: var(--prc-muted); font-size: 0.82rem; margin: 4px 0 16px; }\n\n  #picdrop-rate-calc .prc-icon { display: inline-flex; width: 20px; height: 20px; flex-shrink: 0; }\n  #picdrop-rate-calc .prc-icon svg { width: 100%; height: 100%; }\n  #picdrop-rate-calc .prc-type-btn .prc-icon { width: 22px; height: 22px; margin: 0 auto 6px; }\n\n  #picdrop-rate-calc .prc-mobile-note { display: none; color: var(--prc-muted); font-size: 0.85rem; margin: 0 0 20px; }\n\n  #picdrop-rate-calc .prc-layout { display: grid; grid-template-columns: 1fr 300px; gap: 20px; align-items: start; }\n  #picdrop-rate-calc .prc-sidebar { position: sticky; top: var(--prc-sticky-top); } \/* clears the sticky site nav *\/\n\n  #picdrop-rate-calc .prc-type-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }\n  #picdrop-rate-calc .prc-type-btn {\n    display: flex; flex-direction: column; align-items: center;\n    border: 1px solid var(--prc-border);\n    background: var(--prc-row-bg);\n    border-radius: var(--prc-radius);\n    padding: 14px 8px;\n    text-align: center;\n    font-size: 0.85rem;\n    font-weight: 600;\n  }\n  #picdrop-rate-calc .prc-type-btn[aria-pressed=\"true\"] {\n    border-color: var(--prc-accent);\n    background: var(--prc-accent-tint);\n  }\n\n  #picdrop-rate-calc .prc-field-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }\n  #picdrop-rate-calc .prc-field-row label { font-weight: 600; font-size: 0.9rem; }\n  #picdrop-rate-calc .prc-input {\n    border: 1px solid var(--prc-border);\n    border-radius: 6px;\n    padding: 7px 9px;\n    font-size: 0.9rem;\n    width: 100%;\n  }\n  #picdrop-rate-calc .prc-input-sm { max-width: 140px; }\n\n  #picdrop-rate-calc .prc-subcard { background: var(--prc-row-bg); border-radius: var(--prc-radius); margin-top: 16px; padding: 16px; }\n  #picdrop-rate-calc .prc-weekday-grid { display: flex; gap: 6px; margin-bottom: 16px; }\n  #picdrop-rate-calc .prc-weekday-btn {\n    flex: 1; padding: 10px 0; border: 1px solid var(--prc-border); border-radius: 6px; background: #fff; font-size: 0.8rem; font-weight: 600;\n  }\n  #picdrop-rate-calc .prc-weekday-btn[aria-pressed=\"true\"] { background: var(--prc-accent); color: var(--prc-accent-text); border-color: var(--prc-accent); }\n\n  #picdrop-rate-calc .prc-deduction-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 16px; margin-bottom: 16px; }\n  #picdrop-rate-calc .prc-deduction-grid label { display: flex; flex-direction: column; gap: 4px; font-size: 0.85rem; font-weight: 600; }\n\n  #picdrop-rate-calc .prc-effective-days { display: flex; justify-content: space-between; align-items: baseline; font-size: 0.95rem; margin-bottom: 8px; }\n  #picdrop-rate-calc .prc-effective-days strong { font-size: 1.2rem; }\n  #picdrop-rate-calc .prc-progress { background: var(--prc-border); border-radius: 999px; height: 8px; overflow: hidden; }\n  #picdrop-rate-calc .prc-progress-bar { background: var(--prc-accent); height: 100%; width: 0%; transition: width .2s ease; }\n\n  #picdrop-rate-calc .prc-unit-toggle { display: flex; justify-content: center; gap: 8px; margin-bottom: 20px; }\n  #picdrop-rate-calc .prc-unit-btn { padding: 8px 22px; border: 1px solid var(--prc-border); border-radius: 6px; background: #fff; font-size: 0.85rem; font-weight: 600; }\n  #picdrop-rate-calc .prc-unit-btn[aria-pressed=\"true\"] { background: var(--prc-primary); color: #fff; border-color: var(--prc-primary); }\n\n  #picdrop-rate-calc .prc-slider-marks { position: relative; height: 16px; margin-bottom: 24px; }\n  #picdrop-rate-calc .prc-slider-marks span { position: absolute; top: 0; font-size: 0.78rem; color: var(--prc-muted); white-space: nowrap; }\n\n  #picdrop-rate-calc .prc-stat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }\n  #picdrop-rate-calc .prc-stat-tile { background: var(--prc-accent-tint); border-radius: var(--prc-radius); padding: 14px 8px; text-align: center; }\n  #picdrop-rate-calc .prc-stat-tile strong { display: block; font-size: 1.3rem; font-weight: 800; color: var(--prc-primary); margin-bottom: 4px; }\n  #picdrop-rate-calc .prc-stat-tile span { font-size: 0.8rem; font-weight: 600; }\n\n  #picdrop-rate-calc .prc-collapsible { cursor: pointer; display: flex; align-items: center; justify-content: space-between; user-select: none; }\n  #picdrop-rate-calc .prc-chevron { transition: transform .15s ease; font-size: 0.8rem; }\n  #picdrop-rate-calc [data-prc-section][data-prc-collapsed] .prc-chevron { transform: rotate(-90deg); }\n  #picdrop-rate-calc [data-prc-section][data-prc-collapsed] .prc-section-body { display: none; }\n\n  #picdrop-rate-calc input[type=\"range\"] { width: 100%; margin: 10px 0; accent-color: var(--prc-accent); }\n  #picdrop-rate-calc .prc-target-income-value strong { font-size: 1.05rem; }\n  #picdrop-rate-calc .prc-switch-row {\n    display: flex; align-items: center; gap: 10px; margin-top: 14px; padding-top: 14px;\n    border-top: 1px solid var(--prc-border); font-size: 0.88rem; font-weight: 600; cursor: pointer;\n  }\n  #picdrop-rate-calc .prc-living-detailed { margin-top: 16px; transition: opacity .15s ease; }\n  #picdrop-rate-calc .prc-living-detailed[data-prc-disabled] { opacity: 0.45; pointer-events: none; }\n\n  #picdrop-rate-calc .prc-item-list { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }\n  #picdrop-rate-calc .prc-item-row {\n    display: flex; align-items: center; gap: 8px; flex-wrap: nowrap;\n    background: var(--prc-row-bg); border-radius: 8px; padding: 8px 10px;\n  }\n  #picdrop-rate-calc .prc-item-row .prc-toggle { flex: 0 0 34px; order: 0; }\n  #picdrop-rate-calc .prc-item-row input[type=\"text\"].prc-input {\n    order: 1; flex: 1 1 auto; width: auto !important; min-width: 0;\n  }\n  #picdrop-rate-calc .prc-item-row input[type=\"number\"].prc-input {\n    order: 2; flex: 0 0 90px; width: 90px !important; min-width: 0;\n  }\n  #picdrop-rate-calc .prc-item-row select {\n    order: 3; flex: 0 0 130px; width: 130px !important;\n    border: 1px solid var(--prc-border); border-radius: 6px; padding: 6px; font-size: 0.82rem;\n  }\n  #picdrop-rate-calc .prc-item-remove {\n    order: 4; flex: 0 0 24px;\n    border: none; background: transparent; color: #b3261e; font-size: 1rem; font-weight: 700; line-height: 1; padding: 4px;\n  }\n  #picdrop-rate-calc .prc-toggle { position: relative; width: 34px; height: 20px; flex-shrink: 0; }\n  #picdrop-rate-calc .prc-toggle input { opacity: 0; width: 100%; height: 100%; position: absolute; margin: 0; cursor: pointer; z-index: 1; }\n  #picdrop-rate-calc .prc-toggle-track { position: absolute; inset: 0; background: var(--prc-border); border-radius: 999px; transition: background .15s ease; pointer-events: none; }\n  #picdrop-rate-calc .prc-toggle-thumb { position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; background: #fff; border-radius: 50%; transition: left .15s ease; box-shadow: 0 1px 2px rgba(0,0,0,.3); pointer-events: none; }\n  #picdrop-rate-calc .prc-toggle input:checked ~ .prc-toggle-track { background: var(--prc-primary); }\n  #picdrop-rate-calc .prc-toggle input:checked ~ .prc-toggle-thumb { left: 16px; }\n\n  #picdrop-rate-calc .prc-summary-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-bottom: 16px; }\n  #picdrop-rate-calc .prc-summary-box { border-radius: var(--prc-radius); padding: 16px; }\n  #picdrop-rate-calc .prc-summary-deductible { background: var(--prc-green-bg); border: 1px solid var(--prc-green-border); color: var(--prc-green-text); }\n  #picdrop-rate-calc .prc-summary-nondeductible { background: var(--prc-blue-bg); border: 1px solid var(--prc-blue-border); color: var(--prc-blue-text); }\n  #picdrop-rate-calc .prc-summary-box h4 { color: inherit; }\n  #picdrop-rate-calc .prc-summary-list { display: flex; flex-direction: column; gap: 6px; font-size: 0.88rem; }\n  #picdrop-rate-calc .prc-summary-list li { display: flex; justify-content: space-between; gap: 8px; }\n  #picdrop-rate-calc .prc-summary-total { margin-top: 4px; padding-top: 8px; border-top: 1px solid currentColor; font-weight: 700; }\n  #picdrop-rate-calc .prc-summary-callout {\n    display: flex; align-items: center; justify-content: space-between; gap: 12px;\n    background: var(--prc-primary); color: #fff; border-radius: var(--prc-radius); padding: 16px 20px;\n  }\n  #picdrop-rate-calc .prc-summary-callout strong { font-size: 1.6rem; }\n\n  #picdrop-rate-calc .prc-disclaimer { color: var(--prc-muted); font-size: 0.78rem; margin: 4px 4px 0; }\n\n  #picdrop-rate-calc .prc-btn {\n    border-radius: 6px; border: 1px solid var(--prc-border); background: #fff;\n    padding: 9px 14px; font-size: 0.88rem; font-weight: 600;\n  }\n  #picdrop-rate-calc .prc-btn-ghost { background: transparent; border-style: dashed; width: 100%; margin-top: 10px; }\n  #picdrop-rate-calc .prc-btn-text { border: none; background: transparent; color: var(--prc-muted); }\n  #picdrop-rate-calc .prc-share-output { margin-top: 8px; font-size: 0.78rem; }\n  \/* Styled by Elementor's own .elementor-button classes, not us *\/\n  #picdrop-rate-calc .prc-btn-cta { display: block; text-align: center; width: 100%; margin-top: 8px; }\n\n  #picdrop-rate-calc .prc-results { text-align: center; }\n  #picdrop-rate-calc .prc-results-label { display: block; font-size: 0.85rem; font-weight: 600; color: var(--prc-muted); }\n  #picdrop-rate-calc .prc-results-label-secondary { margin-top: 16px; }\n  #picdrop-rate-calc .prc-results-sub { display: block; font-size: 0.75rem; color: var(--prc-muted); margin-bottom: 4px; }\n  #picdrop-rate-calc .prc-results-value { display: block; font-size: 2.1rem; font-weight: 800; color: var(--prc-primary); }\n  #picdrop-rate-calc .prc-results-value-secondary { font-size: 1.4rem; }\n  #picdrop-rate-calc .prc-results-note { font-size: 0.72rem; color: var(--prc-muted); margin: 6px 0 16px; }\n  #picdrop-rate-calc .prc-results-actions { display: flex; flex-direction: column; gap: 8px; }\n\n  @media (max-width: 900px) {\n    #picdrop-rate-calc .prc-layout { grid-template-columns: 1fr; }\n    #picdrop-rate-calc .prc-sidebar { position: static; }\n  }\n  @media (max-width: 767px) {\n    #picdrop-rate-calc .prc-mobile-note { display: block; }\n    #picdrop-rate-calc .prc-main .prc-card { padding: 22px 0; }\n    #picdrop-rate-calc .prc-type-grid { grid-template-columns: repeat(2, 1fr); }\n    #picdrop-rate-calc .prc-deduction-grid { grid-template-columns: 1fr; }\n    #picdrop-rate-calc .prc-summary-grid { grid-template-columns: 1fr; }\n    #picdrop-rate-calc .prc-stat-grid { grid-template-columns: 1fr; }\n    #picdrop-rate-calc .prc-group { padding: 16px; }\n\n    \/* toggle+remove \/ name \/ amount+freq *\/\n    #picdrop-rate-calc .prc-item-row { flex-wrap: wrap; row-gap: 8px; }\n    #picdrop-rate-calc .prc-item-row .prc-toggle { order: 0; }\n    #picdrop-rate-calc .prc-item-remove { order: 1; margin-left: auto; }\n    #picdrop-rate-calc .prc-item-row input[type=\"text\"].prc-input {\n      order: 2; flex: 1 1 100% !important; width: 100% !important;\n    }\n    #picdrop-rate-calc .prc-item-row input[type=\"number\"].prc-input {\n      order: 3; flex: 1 1 calc(50% - 4px) !important; width: auto !important;\n    }\n    #picdrop-rate-calc .prc-item-row select {\n      order: 4; flex: 1 1 calc(50% - 4px) !important; width: auto !important;\n    }\n  }\n<\/style>\n\n<script>\n(function () {\n  'use strict';\n\n  var root = document.getElementById('picdrop-rate-calc');\n  if (!root || root.getAttribute('data-prc-initialized')) return;\n  root.setAttribute('data-prc-initialized', 'true');\n\n  var ICONS = {\n    camera: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"2\"\/><path d=\"M8 7l1.5-2.5h5L16 7\"\/><circle cx=\"12\" cy=\"13.5\" r=\"3.2\"\/><\/svg>',\n    users: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"9\" cy=\"8\" r=\"3\"\/><circle cx=\"16\" cy=\"9\" r=\"2.4\"\/><path d=\"M3.5 20c0-3.6 2.6-6 5.5-6s5.5 2.4 5.5 6\"\/><path d=\"M14.5 14.3c2.4.3 4.5 2.2 4.5 5.2\"\/><\/svg>',\n    briefcase: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"8\" width=\"18\" height=\"12\" rx=\"2\"\/><path d=\"M8 8V6a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"\/><path d=\"M3 13h18\"\/><\/svg>',\n    userround: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"8.5\" r=\"4\"\/><path d=\"M4.5 20c0-4.1 3.4-7 7.5-7s7.5 2.9 7.5 7\"\/><\/svg>',\n    paintbrush: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3a9 9 0 1 0 0 18c1.2 0 2-1 2-2 0-.6-.2-1-.5-1.4-.3-.4-.5-.8-.5-1.3 0-1 .8-1.8 1.8-1.8H17c2.2 0 4-1.8 4-4C21 6.6 17 3 12 3z\"\/><circle cx=\"7.5\" cy=\"10.5\" r=\"1\"\/><circle cx=\"9.5\" cy=\"7\" r=\"1\"\/><circle cx=\"14\" cy=\"7\" r=\"1\"\/><\/svg>',\n    newspaper: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 4h13a2 2 0 0 1 2 2v13a1 1 0 0 0 1 1H6a2 2 0 0 1-2-2V4z\"\/><path d=\"M17 21a2 2 0 0 0 2-2V7\"\/><path d=\"M8 8h5\"\/><path d=\"M8 11h5\"\/><path d=\"M8 14h3\"\/><\/svg>',\n    shoppingbag: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M6 8h12l-1 12a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2L6 8z\"\/><path d=\"M9 8V6a3 3 0 0 1 6 0v2\"\/><\/svg>',\n    calendar: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\"\/><path d=\"M3 10h18\"\/><path d=\"M8 3v4\"\/><path d=\"M16 3v4\"\/><\/svg>'\n  };\n\n  var FREQ = {\n    yearly:      { label: 'Yearly',          perYear: 1 },\n    monthly:     { label: 'Monthly',         perYear: 12 },\n    quarterly:   { label: 'Quarterly',       perYear: 4 },\n    biannual:    { label: 'Every 6 months',  perYear: 2 },\n    every2years: { label: 'Every 2 years',   perYear: 0.5 },\n    every3years: { label: 'Every 3 years',   perYear: 1\/3 },\n    every4years: { label: 'Every 4 years',   perYear: 0.25 },\n    every5years: { label: 'Every 5 years',   perYear: 0.2 }\n  };\n  var FREQ_ORDER = ['yearly','monthly','quarterly','biannual','every2years','every3years','every4years','every5years'];\n\n  var WEEKS_PER_YEAR = 52;\n  var WEEKS_PER_MONTH = 4.348; \/\/ 52\/12\n\n  var TYPES = [\n    { key: 'events',      label: 'Events, Weddings, Sports',       icon: 'users' },\n    { key: 'advertising', label: 'Advertising, Industry, Corporate', icon: 'briefcase' },\n    { key: 'portrait',    label: 'Portrait',                       icon: 'userround' },\n    { key: 'art',         label: 'Art',                            icon: 'paintbrush' },\n    { key: 'journalism',  label: 'Journalism, Editorial',          icon: 'newspaper' },\n    { key: 'stock',       label: 'Stock, Product',                 icon: 'shoppingbag' }\n  ];\n\n  var CATEGORIES = ['equipment', 'business', 'legal', 'living'];\n\n  var DEFAULT_ITEMS = {\n    equipment: [\n      { name: 'Memory Cards, Batteries, Small Items', amount: 200,  freq: 'yearly',      factors: { events:1,   advertising:1,   portrait:1,   art:1,   journalism:1,   stock:1 } },\n      { name: 'Equipment Insurance',                  amount: 240,  freq: 'yearly',      factors: { events:1.5, advertising:1.5, portrait:0.5, art:1.5, journalism:1.5, stock:1.5 } },\n      { name: 'Maintenance & Repairs',                amount: 240,  freq: 'yearly',      factors: { events:1,   advertising:1,   portrait:1,   art:1,   journalism:1,   stock:1 } },\n      { name: 'Backup Systems',                       amount: 300,  freq: 'yearly',      factors: { events:2,   advertising:2,   portrait:1,   art:0.2, journalism:1,   stock:1 } },\n      { name: 'Studio Equipment',                     amount: 180,  freq: 'yearly',      factors: { events:1,   advertising:1,   portrait:1,   art:1,   journalism:1,   stock:1 } },\n      { name: 'Spare Parts \/ Accessories',             amount: 100,  freq: 'yearly',      factors: { events:1,   advertising:1,   portrait:1,   art:1,   journalism:1,   stock:1 } },\n      { name: 'Licensed Presets \/ LUTs',               amount: 60,   freq: 'yearly',      factors: { events:1,   advertising:1,   portrait:1,   art:1,   journalism:1,   stock:1.5 } },\n      { name: 'Cables, Adapters, Card Readers',        amount: 80,   freq: 'yearly',      factors: { events:1,   advertising:1,   portrait:1,   art:1,   journalism:1,   stock:1 } },\n      { name: 'Lenses',                                amount: 1000, freq: 'yearly',      factors: { events:1.5, advertising:1,   portrait:1,   art:1,   journalism:1,   stock:1 } },\n      { name: 'Battery Wear \/ Replacement Batteries',  amount: 120,  freq: 'every2years', factors: { events:1,   advertising:1,   portrait:1,   art:1,   journalism:1,   stock:1 } },\n      { name: 'Lighting & Flashes',                    amount: 2000, freq: 'every3years', factors: { events:1.5, advertising:1,   portrait:1,   art:1,   journalism:1,   stock:1 } },\n      { name: 'Camera (duplicate for backup)',         amount: 5000, freq: 'every3years', factors: { events:1.5, advertising:1,   portrait:1,   art:1,   journalism:1,   stock:1 } },\n      { name: 'Tethering Equipment',                   amount: 300,  freq: 'every3years', factors: { events:1,   advertising:1,   portrait:1,   art:0,   journalism:1,   stock:1 } },\n      { name: 'Monitor(s)',                            amount: 800,  freq: 'every3years', factors: { events:1,   advertising:1.5, portrait:1,   art:0.5, journalism:1,   stock:1.5 } },\n      { name: 'Drone \/ Specialty Camera',              amount: 2400, freq: 'every4years', factors: { events:1.5, advertising:1,   portrait:0,   art:0,   journalism:1,   stock:0 } },\n      { name: 'Calibration Hardware for Monitors',     amount: 400,  freq: 'every4years', factors: { events:1,   advertising:1,   portrait:1,   art:1,   journalism:1,   stock:1 } },\n      { name: 'Backpack \/ Suitcase \/ Transport Cases', amount: 300,  freq: 'every5years', factors: { events:2,   advertising:2,   portrait:1,   art:0.5, journalism:0.5, stock:0.5 } }\n    ],\n    business: [\n      { name: 'Software Subscriptions (LR, C1, picdrop)', amount: 30,  freq: 'monthly', factors: { events:1, advertising:1,   portrait:1.5, art:1,   journalism:1,    stock:1.5 } },\n      { name: 'Website & Hosting',                         amount: 15,  freq: 'monthly', factors: { events:1, advertising:1,   portrait:1.5, art:1,   journalism:1,    stock:1 } },\n      { name: 'Business Liability Insurance',              amount: 60,  freq: 'monthly', factors: { events:1.5, advertising:1, portrait:1,   art:1,   journalism:1,    stock:1 } },\n      { name: 'Phone & Internet',                          amount: 35,  freq: 'monthly', factors: { events:1, advertising:1,   portrait:1,   art:1,   journalism:1.5,  stock:1 } },\n      { name: 'Co-working \/ Studio Rent',                  amount: 300, freq: 'monthly', factors: { events:0, advertising:2,   portrait:1,   art:0,   journalism:0,    stock:2 } },\n      { name: 'Bank Fees (Business Account \/ Credit Card)',amount: 10,  freq: 'monthly', factors: { events:1, advertising:1,   portrait:1,   art:1,   journalism:1,    stock:1 } },\n      { name: 'Communication Tools (Gmail, Zoom, Slack etc.)', amount: 20, freq: 'monthly', factors: { events:1, advertising:1, portrait:1,   art:1,   journalism:1,    stock:1 } },\n      { name: 'AI Tools',                                  amount: 15,  freq: 'monthly', factors: { events:2, advertising:1,   portrait:1,   art:1,   journalism:1,    stock:1 } },\n      { name: 'Marketing',                                 amount: 600, freq: 'yearly',  factors: { events:1, advertising:1,   portrait:1,   art:0.5, journalism:0.25, stock:1 } },\n      { name: 'Office Supplies & Tech',                    amount: 360, freq: 'yearly',  factors: { events:1, advertising:1,   portrait:1,   art:1,   journalism:1,    stock:1 } },\n      { name: 'Professional Development \/ Education',      amount: 300, freq: 'yearly',  factors: { events:1, advertising:1,   portrait:1,   art:1,   journalism:1,    stock:1 } },\n      { name: 'Accounting Software',                       amount: 180, freq: 'yearly',  factors: { events:1, advertising:1,   portrait:1,   art:1,   journalism:1,    stock:1 } },\n      { name: 'Travel Expenses',                           amount: 480, freq: 'yearly',  factors: { events:1, advertising:1,   portrait:1,   art:1,   journalism:1,    stock:0.5 } },\n      { name: 'Client Meals, Gifts',                       amount: 240, freq: 'yearly',  factors: { events:1, advertising:3,   portrait:1.5, art:0.5, journalism:0.3,  stock:0.5 } },\n      { name: 'Listing Platforms',                         amount: 300, freq: 'yearly',  factors: { events:1, advertising:1,   portrait:1,   art:0,   journalism:0.3,  stock:1 } },\n      { name: 'Mentoring \/ Coaching',                      amount: 500, freq: 'yearly',  factors: { events:1, advertising:1,   portrait:1,   art:1,   journalism:1,    stock:1 } }\n    ],\n    legal: [\n      { name: 'Tax Consulting & Accounting',                     amount: 1200, freq: 'yearly', factors: { events:1,   advertising:1.5, portrait:1,   art:1,   journalism:1,   stock:1 } },\n      { name: 'Chamber Contributions \/ Memberships',             amount: 180,  freq: 'yearly', factors: { events:1,   advertising:1,   portrait:1,   art:1,   journalism:1,   stock:1 } },\n      { name: 'Legal Advice \/ Contract Review',                  amount: 240,  freq: 'yearly', factors: { events:0.5, advertising:1.5, portrait:1,   art:0.5, journalism:1,   stock:1 } },\n      { name: 'Legal Protection Insurance',                      amount: 300,  freq: 'yearly', factors: { events:1.5, advertising:1.5, portrait:0.5, art:0.5, journalism:1.5, stock:1 } },\n      { name: 'GDPR Tools \/ Data Processing Agreements',         amount: 120,  freq: 'yearly', factors: { events:1.5, advertising:1,   portrait:1,   art:1,   journalism:0.3, stock:1 } },\n      { name: 'Legal Update Services \/ Warning Protection',      amount: 60,   freq: 'yearly', factors: { events:0.5, advertising:1.5, portrait:1,   art:0.5, journalism:1,   stock:1 } },\n      { name: 'GDPR \/ Tax Law Training',                         amount: 150,  freq: 'yearly', factors: { events:0.5, advertising:1.5, portrait:1,   art:0.5, journalism:1,   stock:1 } },\n      { name: 'Debt Collection \/ Dunning',                       amount: 100,  freq: 'yearly', factors: { events:1,   advertising:1,   portrait:1,   art:1,   journalism:1,   stock:1 } }\n    ],\n    living: [\n      { name: 'Rent & Utilities',            amount: 1000, freq: 'monthly' },\n      { name: 'Groceries & Daily Life',       amount: 450,  freq: 'monthly' },\n      { name: 'Health Insurance',             amount: 400,  freq: 'monthly' },\n      { name: 'Retirement \/ Private Pension', amount: 250,  freq: 'monthly' },\n      { name: 'Mobility',                     amount: 150,  freq: 'monthly' },\n      { name: 'Leisure, Holidays & Savings',  amount: 150,  freq: 'monthly' },\n      { name: 'Streaming & Media',            amount: 20,   freq: 'monthly' },\n      { name: 'Fitness \/ Health',             amount: 40,   freq: 'monthly' },\n      { name: 'Childcare',                    amount: 100,  freq: 'monthly' },\n      { name: 'Mobile Phone & Internet',      amount: 50,   freq: 'monthly' },\n      { name: 'Pet Costs \/ Insurance',        amount: 25,   freq: 'monthly' },\n      { name: 'Books \/ Magazines \/ Inspiration', amount: 15, freq: 'monthly' },\n      { name: 'Household Insurance',          amount: 45,   freq: 'quarterly' },\n      { name: 'Broadcast License Fee',        amount: 55,   freq: 'quarterly' },\n      { name: 'Clothing',                     amount: 600,  freq: 'yearly' },\n      { name: 'Household \/ Car Repairs',      amount: 300,  freq: 'yearly' },\n      { name: 'Holiday Travel',               amount: 1200, freq: 'yearly' },\n      { name: 'Dental Work \/ Glasses \/ Medical Extras', amount: 400, freq: 'yearly' },\n      { name: 'Gifts',                        amount: 250,  freq: 'yearly' },\n      { name: 'Emergency Buffer',             amount: 2000, freq: 'yearly' },\n      { name: 'School Supplies \/ Kids\\' Leisure', amount: 300, freq: 'yearly' },\n      { name: 'Private Liability Insurance',  amount: 80,   freq: 'yearly' },\n      { name: 'Donations \/ Volunteering',     amount: 120,  freq: 'yearly' },\n      { name: 'Furniture & Household Appliances', amount: 1000, freq: 'every3years' },\n      { name: 'Smartphone \/ Laptop',          amount: 900,  freq: 'every3years' },\n      { name: 'Private Tech',                 amount: 900,  freq: 'every4years' },\n      { name: 'Moving \/ Renovation',          amount: 1500, freq: 'every5years' }\n    ]\n  };\n\n  var uidCounter = 0;\n  function uid() { uidCounter += 1; return 'i' + Date.now() + '_' + uidCounter; }\n\n  function buildItemsForType(cat, type) {\n    return DEFAULT_ITEMS[cat].map(function (def) {\n      var factor = (def.factors && def.factors[type] != null) ? def.factors[type] : 1;\n      return {\n        id: uid(),\n        name: def.name,\n        amount: Math.round(def.amount * factor * 100) \/ 100,\n        freq: def.freq,\n        enabled: true\n      };\n    });\n  }\n\n  function defaultState() {\n    var sections = {};\n    CATEGORIES.forEach(function (cat) {\n      sections[cat] = buildItemsForType(cat, 'portrait');\n    });\n    return {\n      photographerType: 'portrait',\n      sections: sections,\n      workingDays: {\n        weekdays: { Mo: true, Tu: true, We: true, Th: true, Fr: true, Sa: false, Su: false },\n        vacation: 25, illness: 10, education: 5, marketing: 10, administration: 14, bankHolidays: 10\n      },\n      shootsPerWeek: 2,\n      shootsUnit: 'week',\n      taxRate: 8.35,\n      livingDetailed: false,\n      targetIncome: 3216.83\n    };\n  }\n\n  function itemsMatchDefaults(items, defaults) {\n    if (items.length !== defaults.length) return false;\n    for (var i = 0; i < items.length; i++) {\n      var a = items[i], b = defaults[i];\n      if (a.name !== b.name || a.amount !== b.amount || a.freq !== b.freq || a.enabled !== b.enabled) return false;\n    }\n    return true;\n  }\n\n  \/\/ Most links share mostly-default data (a type pick plus a few settings).\n  \/\/ Only include a category's items if they differ from that type's defaults\n  \/\/ \u2014 an untouched full list is ~60 items of near-noise in the URL, and an\n  \/\/ unusually long URL is a known trigger for other scripts on a page (regex\n  \/\/ matching, anchor lookups, etc.) to hang the tab. Keeping links short is\n  \/\/ the actual fix for that, not just a nicety.\n  function packState(state) {\n    var packed = {};\n    for (var key in state) packed[key] = state[key];\n    packed.sections = {};\n    var type = state.photographerType || 'portrait';\n    CATEGORIES.forEach(function (cat) {\n      var defaults = buildItemsForType(cat, type);\n      if (!itemsMatchDefaults(state.sections[cat], defaults)) {\n        packed.sections[cat] = state.sections[cat].map(function (item) {\n          return [item.name, item.amount, item.freq, item.enabled];\n        });\n      }\n    });\n    return packed;\n  }\n  function isValidPackedItem(arr) {\n    return Array.isArray(arr) && arr.length === 4 && typeof arr[0] === 'string';\n  }\n  function unpackState(packed) {\n    var state = {};\n    for (var key in packed) state[key] = packed[key];\n    var type = packed.photographerType || 'portrait';\n    state.sections = {};\n    CATEGORIES.forEach(function (cat) {\n      var catData = packed.sections && packed.sections[cat];\n      \/\/ Only trust it as real data if it's a genuinely non-empty, well-formed\n      \/\/ list \u2014 anything else (missing, empty, malformed) falls back to that\n      \/\/ type's real defaults rather than silently rendering an empty section.\n      if (Array.isArray(catData) && catData.length > 0 && catData.every(isValidPackedItem)) {\n        state.sections[cat] = catData.map(function (arr) {\n          return { id: uid(), name: arr[0], amount: arr[1], freq: arr[2], enabled: arr[3] };\n        });\n      } else {\n        state.sections[cat] = buildItemsForType(cat, type);\n      }\n    });\n    return state;\n  }\n\n  \/\/ utf-8 safe base64 (plain btoa\/atob break on non-Latin1 chars)\n  function encodeState(state) {\n    var json = JSON.stringify(packState(state));\n    var bytes = encodeURIComponent(json).replace(\/%([0-9A-F]{2})\/g, function (_, hex) {\n      return String.fromCharCode(parseInt(hex, 16));\n    });\n    return btoa(bytes);\n  }\n  function decodeState(encoded) {\n    var bytes = atob(encoded);\n    var percentEncoded = bytes.split('').map(function (c) {\n      var code = c.charCodeAt(0).toString(16).padStart(2, '0');\n      return '%' + code;\n    }).join('');\n    return unpackState(JSON.parse(decodeURIComponent(percentEncoded)));\n  }\n\n  \/\/ fragment, not query string: never sent to the server, so it can't hit a\n  \/\/ CDN's request-size limit (a full expense list is too long for that)\n  function loadFromUrl() {\n    try {\n      var params = new URLSearchParams(window.location.hash.replace(\/^#\/, ''));\n      var raw = params.get('prc_data');\n      if (!raw) return null;\n      var data = decodeState(raw);\n      if (!data || !data.sections || !data.workingDays) return null;\n      return data;\n    } catch (e) {\n      console.error('picdrop rate calculator: failed to load shared data', e);\n      return null;\n    }\n  }\n\n  var hadShareHash = window.location.hash.indexOf('prc_data=') !== -1;\n  var state = loadFromUrl() || defaultState();\n\n  \/\/ Scrub only our own hash, and only if it was ours to begin with \u2014 leave\n  \/\/ any unrelated anchor hash on the page untouched. A long fragment's\n  \/\/ replaceState doesn't reliably stick on the first attempt while the\n  \/\/ browser is still settling the initial navigation, so retry a few times\n  \/\/ rather than rely on one specific timing signal.\n  if (hadShareHash) {\n    var scrubHash = function () {\n      if (window.location.hash.indexOf('prc_data=') !== -1) {\n        window.history.replaceState(null, '', window.location.pathname + window.location.search);\n      }\n    };\n    scrubHash();\n    setTimeout(scrubHash, 0);\n    setTimeout(scrubHash, 300);\n    setTimeout(scrubHash, 1000);\n    window.addEventListener('load', scrubHash);\n  }\n\n  \/\/ --- calculations ---\n  function yearlyValue(item) {\n    var f = FREQ[item.freq] ? FREQ[item.freq].perYear : 1;\n    return item.amount * f;\n  }\n  function sectionTotal(items) {\n    return items.filter(function (i) { return i.enabled; })\n      .reduce(function (sum, i) { return sum + yearlyValue(i); }, 0);\n  }\n  function effectiveWorkingDays() {\n    var wd = state.workingDays;\n    var totalDays = Object.keys(wd.weekdays).filter(function (d) { return wd.weekdays[d]; }).length * 52;\n    var used = ['vacation', 'illness', 'education', 'marketing', 'administration', 'bankHolidays']\n      .reduce(function (sum, key) { return sum + (Number(wd[key]) || 0); }, 0);\n    return { totalDays: totalDays, effective: Math.max(0, totalDays - used) };\n  }\n  function taxImpact(livingExpenses, ratePct) {\n    var rate = Math.min(95, Math.max(0, Number(ratePct) || 0));\n    if (rate <= 0) return 0;\n    return (livingExpenses \/ (1 - rate \/ 100)) - livingExpenses;\n  }\n  function calculate() {\n    var equipmentTotal = sectionTotal(state.sections.equipment);\n    var businessTotal = sectionTotal(state.sections.business);\n    var legalTotal = sectionTotal(state.sections.legal);\n    var deductible = equipmentTotal + businessTotal + legalTotal;\n\n    var living = state.livingDetailed ? sectionTotal(state.sections.living) : Number(state.targetIncome || 0) * 12;\n    var impact = taxImpact(living, state.taxRate);\n    var nonDeductible = living + impact;\n    var total = deductible + nonDeductible;\n\n    var days = effectiveWorkingDays();\n    var totalShoots = Math.floor((Number(state.shootsPerWeek) || 0) * 52);\n\n    var dayRateByDays;\n    if (totalShoots > days.effective && days.effective > 0) {\n      dayRateByDays = total \/ totalShoots;\n    } else if (days.effective > 0) {\n      dayRateByDays = total \/ days.effective;\n    } else {\n      dayRateByDays = 0;\n    }\n    var dayRateByShoots = totalShoots > 0 ? total \/ totalShoots : 0;\n\n    return {\n      equipmentTotal: equipmentTotal, businessTotal: businessTotal, legalTotal: legalTotal, deductible: deductible,\n      living: living, impact: impact, nonDeductible: nonDeductible, total: total,\n      days: days, totalShoots: totalShoots, dayRateByDays: dayRateByDays, dayRateByShoots: dayRateByShoots\n    };\n  }\n\n  function formatMoney(n) {\n    if (!isFinite(n)) return '\\u2013';\n    return n.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n  }\n\n  \/\/ --- rendering ---\n  var typeGrid = root.querySelector('[data-prc-type-grid]');\n  TYPES.forEach(function (t) {\n    var btn = document.createElement('button');\n    btn.type = 'button';\n    btn.className = 'prc-type-btn';\n    btn.innerHTML = '<span class=\"prc-icon\">' + ICONS[t.icon] + '<\/span><span>' + t.label + '<\/span>';\n    btn.setAttribute('data-prc-type', t.key);\n    btn.setAttribute('aria-pressed', String(state.photographerType === t.key));\n    typeGrid.appendChild(btn);\n  });\n\n  root.querySelectorAll('[data-prc-icon]').forEach(function (el) {\n    var key = el.getAttribute('data-prc-icon');\n    if (ICONS[key]) el.innerHTML = ICONS[key];\n  });\n\n  var weekdayGrid = root.querySelector('[data-prc-weekday-grid]');\n  ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'].forEach(function (day) {\n    var btn = document.createElement('button');\n    btn.type = 'button';\n    btn.className = 'prc-weekday-btn';\n    btn.textContent = day;\n    btn.setAttribute('data-prc-weekday', day);\n    weekdayGrid.appendChild(btn);\n  });\n\n  function freqOptionsHtml(selected) {\n    return FREQ_ORDER.map(function (key) {\n      return '<option value=\"' + key + '\"' + (key === selected ? ' selected' : '') + '>' + FREQ[key].label + '<\/option>';\n    }).join('');\n  }\n\n  function renderItemRow(cat, item) {\n    var li = document.createElement('li');\n    li.className = 'prc-item-row';\n    li.setAttribute('data-prc-item-id', item.id);\n    li.innerHTML =\n      '<span class=\"prc-toggle\">' +\n        '<input type=\"checkbox\" data-prc-item-field=\"enabled\"' + (item.enabled ? ' checked' : '') + '>' +\n        '<span class=\"prc-toggle-track\"><\/span><span class=\"prc-toggle-thumb\"><\/span>' +\n      '<\/span>' +\n      '<input type=\"text\" class=\"prc-input\" data-prc-item-field=\"name\" value=\"' + escapeAttr(item.name) + '\">' +\n      '<input type=\"number\" class=\"prc-input\" step=\"0.01\" min=\"0\" data-prc-item-field=\"amount\" value=\"' + item.amount + '\">' +\n      '<select data-prc-item-field=\"freq\">' + freqOptionsHtml(item.freq) + '<\/select>' +\n      '<button type=\"button\" class=\"prc-item-remove\" data-prc-action=\"remove-item\" aria-label=\"Remove\">&times;<\/button>';\n    return li;\n  }\n\n  function escapeAttr(str) {\n    return String(str).replace(\/&\/g, '&amp;').replace(\/\"\/g, '&quot;').replace(\/<\/g, '&lt;');\n  }\n\n  function renderSection(cat) {\n    var list = root.querySelector('[data-prc-list=\"' + cat + '\"]');\n    list.innerHTML = '';\n    state.sections[cat].forEach(function (item) {\n      list.appendChild(renderItemRow(cat, item));\n    });\n  }\n\n  function renderAllSections() {\n    CATEGORIES.forEach(renderSection);\n  }\n\n  function renderSetupFields() {\n    root.querySelector('[data-prc-field=\"taxRate\"]').value = state.taxRate;\n    root.querySelector('[data-prc-field=\"targetIncome\"]').value = state.targetIncome;\n    root.querySelector('[data-prc-toggle=\"livingDetailed\"]').checked = state.livingDetailed;\n    root.querySelector('[data-prc-out=\"targetIncomeMonthly\"]').textContent = formatMoney(Number(state.targetIncome || 0)) + '\\u20AC';\n    root.querySelector('[data-prc-out=\"targetIncomeYearly\"]').textContent = formatMoney(Number(state.targetIncome || 0) * 12) + '\\u20AC';\n    var livingList = root.querySelector('[data-prc-living-list]');\n    if (state.livingDetailed) livingList.removeAttribute('data-prc-disabled');\n    else livingList.setAttribute('data-prc-disabled', '');\n    ['vacation', 'illness', 'education', 'marketing', 'administration', 'bankHolidays'].forEach(function (key) {\n      root.querySelector('[data-prc-field=\"workingDays.' + key + '\"]').value = state.workingDays[key];\n    });\n    weekdayGrid.querySelectorAll('[data-prc-weekday]').forEach(function (btn) {\n      var day = btn.getAttribute('data-prc-weekday');\n      btn.setAttribute('aria-pressed', String(!!state.workingDays.weekdays[day]));\n    });\n    typeGrid.querySelectorAll('[data-prc-type]').forEach(function (btn) {\n      btn.setAttribute('aria-pressed', String(btn.getAttribute('data-prc-type') === state.photographerType));\n    });\n  }\n\n  function shootsMaxValues(effectiveDays) {\n    return {\n      week: Math.max(1, Math.min(7, Math.ceil(effectiveDays \/ WEEKS_PER_YEAR) || 1)),\n      month: Math.max(1, Math.min(31, Math.ceil(effectiveDays \/ 12) || 1)),\n      year: Math.max(1, effectiveDays)\n    };\n  }\n  function shootsMarks(maxValue) {\n    var numMarks = Math.min(7, Math.max(2, Math.floor(maxValue)));\n    var step = Math.max(1, Math.floor(maxValue \/ numMarks));\n    var marks = [0];\n    for (var i = step; i < maxValue; i += step) marks.push(Math.floor(i));\n    if (marks[marks.length - 1] !== Math.floor(maxValue)) marks.push(Math.floor(maxValue));\n    return marks;\n  }\n  var SHOOTS_UNIT_LABEL = { week: 'Week', month: 'Month', year: 'Year' };\n\n  function renderShootsSlider() {\n    var unit = state.shootsUnit || 'week';\n    var days = effectiveWorkingDays();\n    var effectiveDaysPerWeek = days.effective \/ WEEKS_PER_YEAR;\n    var weeklyValue = Number(state.shootsPerWeek) || 0;\n    var maxValues = shootsMaxValues(days.effective);\n    var maxValue = maxValues[unit];\n\n    var sliderValue = unit === 'month' ? weeklyValue * WEEKS_PER_MONTH : unit === 'year' ? weeklyValue * WEEKS_PER_YEAR : weeklyValue;\n    sliderValue = Math.min(sliderValue, maxValue);\n\n    var slider = root.querySelector('[data-prc-shoots-slider]');\n    slider.min = 0;\n    slider.max = maxValue;\n    slider.step = 0.1;\n    slider.value = sliderValue;\n\n    root.querySelector('[data-prc-out=\"shootsTitle\"]').textContent = 'Realistic Shoot Days per ' + SHOOTS_UNIT_LABEL[unit];\n    root.querySelector('[data-prc-out=\"shootsDescription\"]').textContent =\n      'So, in average you have ' + effectiveDaysPerWeek.toFixed(1) + ' effective working days per week available. Cool! But how many paid shoot days per ' + unit + ' can you realistically acquire and also manage to execute?';\n\n    \/\/ marks aren't evenly spaced in value, so position by value not by CSS spacing\n    var marksEl = root.querySelector('[data-prc-shoots-marks]');\n    marksEl.innerHTML = shootsMarks(maxValue).map(function (m) {\n      var pct = maxValue > 0 ? (m \/ maxValue) * 100 : 0;\n      var translate = pct <= 1 ? '0%' : pct >= 99 ? '-100%' : '-50%';\n      return '<span style=\"left:' + pct + '%; transform: translateX(' + translate + ');\">' + m + '<\/span>';\n    }).join('');\n\n    root.querySelectorAll('[data-prc-shoots-unit]').forEach(function (btn) {\n      btn.setAttribute('aria-pressed', String(btn.getAttribute('data-prc-shoots-unit') === unit));\n    });\n\n    root.querySelector('[data-prc-out=\"shootsWeek\"]').textContent = weeklyValue.toFixed(1);\n    root.querySelector('[data-prc-out=\"shootsMonth\"]').textContent = (weeklyValue * WEEKS_PER_MONTH).toFixed(1);\n    root.querySelector('[data-prc-out=\"shootsYear\"]').textContent = String(Math.round(weeklyValue * WEEKS_PER_YEAR));\n  }\n\n  function renderResults() {\n    renderShootsSlider();\n    var result = calculate();\n    root.querySelector('[data-prc-out=\"dayRateByDays\"]').textContent = formatMoney(result.dayRateByDays);\n    root.querySelector('[data-prc-out=\"dayRateByShoots\"]').textContent = formatMoney(result.dayRateByShoots);\n    root.querySelector('[data-prc-out=\"effectiveDays\"]').textContent = result.days.effective;\n    var pct = result.days.totalDays > 0 ? Math.min(100, (result.days.effective \/ result.days.totalDays) * 100) : 0;\n    root.querySelector('[data-prc-out=\"daysBar\"]').style.width = pct + '%';\n\n    root.querySelector('[data-prc-out=\"sumEquipment\"]').textContent = formatMoney(result.equipmentTotal);\n    root.querySelector('[data-prc-out=\"sumBusiness\"]').textContent = formatMoney(result.businessTotal);\n    root.querySelector('[data-prc-out=\"sumLegal\"]').textContent = formatMoney(result.legalTotal);\n    root.querySelector('[data-prc-out=\"sumDeductible\"]').textContent = formatMoney(result.deductible);\n    root.querySelector('[data-prc-out=\"sumLiving\"]').textContent = formatMoney(result.living);\n    root.querySelector('[data-prc-out=\"sumTaxRate\"]').textContent = (Number(state.taxRate) || 0).toFixed(2);\n    root.querySelector('[data-prc-out=\"sumTaxImpact\"]').textContent = formatMoney(result.impact);\n    root.querySelector('[data-prc-out=\"sumNonDeductible\"]').textContent = formatMoney(result.nonDeductible);\n    root.querySelector('[data-prc-out=\"sumTotal\"]').textContent = formatMoney(result.total);\n\n    root.querySelector('[data-prc-out=\"targetIncomeYearly\"]').textContent = formatMoney(Number(state.targetIncome || 0) * 12) + '\\u20AC';\n  }\n\n  function renderAll() {\n    renderAllSections();\n    renderSetupFields();\n    renderResults();\n  }\n\n  \/\/ --- events ---\n  root.addEventListener('click', function (e) {\n    var typeBtn = e.target.closest('[data-prc-type]');\n    if (typeBtn) {\n      var type = typeBtn.getAttribute('data-prc-type');\n      state.photographerType = type;\n      ['equipment', 'business', 'legal'].forEach(function (cat) {\n        state.sections[cat] = buildItemsForType(cat, type);\n      });\n      renderAll();\n      return;\n    }\n\n    var shootsUnitBtn = e.target.closest('[data-prc-shoots-unit]');\n    if (shootsUnitBtn) {\n      state.shootsUnit = shootsUnitBtn.getAttribute('data-prc-shoots-unit');\n      renderShootsSlider();\n      return;\n    }\n\n    var weekdayBtn = e.target.closest('[data-prc-weekday]');\n    if (weekdayBtn) {\n      var day = weekdayBtn.getAttribute('data-prc-weekday');\n      state.workingDays.weekdays[day] = !state.workingDays.weekdays[day];\n      renderSetupFields();\n      renderResults();\n      return;\n    }\n\n    var actionEl = e.target.closest('[data-prc-action]');\n    if (!actionEl) return;\n    var action = actionEl.getAttribute('data-prc-action');\n\n    if (action === 'toggle-section') {\n      var section = actionEl.closest('[data-prc-section]');\n      if (section.hasAttribute('data-prc-collapsed')) {\n        section.removeAttribute('data-prc-collapsed');\n      } else {\n        section.setAttribute('data-prc-collapsed', '');\n      }\n      return;\n    }\n\n    if (action === 'add-item') {\n      var cat = actionEl.getAttribute('data-prc-cat');\n      state.sections[cat].push({ id: uid(), name: 'New expense', amount: 0, freq: 'yearly', enabled: true });\n      renderSection(cat);\n      renderResults();\n      return;\n    }\n\n    if (action === 'remove-item') {\n      var row = actionEl.closest('[data-prc-item-id]');\n      var itemId = row.getAttribute('data-prc-item-id');\n      CATEGORIES.forEach(function (cat) {\n        state.sections[cat] = state.sections[cat].filter(function (i) { return i.id !== itemId; });\n      });\n      row.remove();\n      renderResults();\n      return;\n    }\n\n    if (action === 'reset') {\n      state = defaultState();\n      var url = new URL(window.location.href);\n      url.hash = '';\n      window.history.replaceState({}, '', url.toString());\n      root.querySelector('[data-prc-share-output]').style.display = 'none';\n      renderAll();\n      return;\n    }\n\n    if (action === 'copy-link') {\n      var shareUrl = new URL(window.location.href);\n      var hashParams = new URLSearchParams();\n      hashParams.set('prc_data', encodeState(state));\n      shareUrl.hash = hashParams.toString();\n      var text = shareUrl.toString();\n      var fallbackInput = root.querySelector('[data-prc-share-output]');\n\n      var showFallback = function () {\n        fallbackInput.style.display = 'block';\n        fallbackInput.value = text;\n        fallbackInput.focus();\n        fallbackInput.select();\n      };\n      var showCopied = function () {\n        var original = actionEl.textContent;\n        actionEl.textContent = 'Link copied!';\n        setTimeout(function () { actionEl.textContent = original; }, 2000);\n      };\n\n      \/\/ clipboard can silently fail in sandboxed iframes \u2014 fall back to a visible field\n      if (navigator.clipboard && navigator.clipboard.writeText) {\n        navigator.clipboard.writeText(text).then(showCopied, showFallback);\n      } else {\n        showFallback();\n      }\n      return;\n    }\n  });\n\n  root.addEventListener('change', function (e) {\n    var toggleField = e.target.getAttribute('data-prc-toggle');\n    if (toggleField === 'livingDetailed') {\n      state.livingDetailed = e.target.checked;\n      renderSetupFields();\n      renderResults();\n    }\n  });\n\n  root.addEventListener('input', function (e) {\n    if (e.target.hasAttribute('data-prc-shoots-slider')) {\n      \/\/ full precision here, rounded only for display\n      var unit = state.shootsUnit || 'week';\n      var raw = Number(e.target.value);\n      var weekly = unit === 'month' ? raw \/ WEEKS_PER_MONTH : unit === 'year' ? raw \/ WEEKS_PER_YEAR : raw;\n      state.shootsPerWeek = weekly;\n      renderResults();\n      return;\n    }\n\n    var field = e.target.getAttribute('data-prc-field');\n    if (field) {\n      var value = e.target.type === 'number' || e.target.type === 'range' ? Number(e.target.value) : e.target.value;\n      if (field.indexOf('workingDays.') === 0) {\n        state.workingDays[field.split('.')[1]] = value;\n      } else {\n        state[field] = value;\n      }\n      if (field === 'targetIncome') {\n        root.querySelector('[data-prc-out=\"targetIncomeMonthly\"]').textContent = formatMoney(value) + '\\u20AC';\n        root.querySelector('[data-prc-out=\"targetIncomeYearly\"]').textContent = formatMoney(value * 12) + '\\u20AC';\n      }\n      renderResults();\n      return;\n    }\n\n    var itemField = e.target.getAttribute('data-prc-item-field');\n    if (itemField) {\n      var row = e.target.closest('[data-prc-item-id]');\n      var itemId = row.getAttribute('data-prc-item-id');\n      CATEGORIES.forEach(function (cat) {\n        var item = state.sections[cat].find(function (i) { return i.id === itemId; });\n        if (!item) return;\n        if (itemField === 'enabled') item.enabled = e.target.checked;\n        else if (itemField === 'amount') item.amount = Number(e.target.value) || 0;\n        else item[itemField] = e.target.value;\n      });\n      renderResults();\n    }\n  });\n\n  renderAll();\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6fc5e2a e-flex e-con-boxed e-con e-parent\" data-id=\"6fc5e2a\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cc29dce elementor-widget elementor-widget-heading\" data-id=\"cc29dce\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Questions?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-676928b elementor-widget elementor-widget-n-accordion\" data-id=\"676928b\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;default_state&quot;:&quot;all_collapsed&quot;,&quot;max_items_expended&quot;:&quot;multiple&quot;,&quot;n_accordion_animation_duration&quot;:{&quot;unit&quot;:&quot;ms&quot;,&quot;size&quot;:200,&quot;sizes&quot;:[]}}\" data-widget_type=\"nested-accordion.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"e-n-accordion\" aria-label=\"Accordion. Open links with Enter or Space, close with Escape, and navigate with Arrow Keys\">\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-1080\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"1\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-1080\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> What currency should I use? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-up\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"><\/path><\/svg><\/span>\n\t\t\t<span class='e-closed'><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-down\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"><\/path><\/svg><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-1080\" class=\"elementor-element elementor-element-207e17e e-con-full e-flex e-con e-child\" data-id=\"207e17e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-20deb8a elementor-widget elementor-widget-text-editor\" data-id=\"20deb8a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Whatever currency you work in. Just make sure every number you enter uses the same one, and adjust the prefilled defaults to your local market.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-1081\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"2\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-1081\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> Where do the prefilled numbers come from? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-up\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"><\/path><\/svg><\/span>\n\t\t\t<span class='e-closed'><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-down\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"><\/path><\/svg><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-1081\" class=\"elementor-element elementor-element-d2a5046 e-con-full e-flex e-con e-child\" data-id=\"d2a5046\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-804e5f2 elementor-widget elementor-widget-text-editor\" data-id=\"804e5f2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tAverage European values based on our research and years of talking to photographers across Europe. Treat them as a starting point, not a rulebook.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-1082\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"3\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-1082\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> What happens to the data I enter? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-up\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"><\/path><\/svg><\/span>\n\t\t\t<span class='e-closed'><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-down\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"><\/path><\/svg><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-1082\" class=\"elementor-element elementor-element-786a110 e-con-full e-flex e-con e-child\" data-id=\"786a110\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-63c5a84 elementor-widget elementor-widget-text-editor\" data-id=\"63c5a84\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tNothing leaves your browser. Nothing is sent to a server, and we don&#8217;t ask for your name or email. The share link below simply encodes your numbers into a URL.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-1083\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"4\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-1083\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> Who built this tool? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-up\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"><\/path><\/svg><\/span>\n\t\t\t<span class='e-closed'><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-down\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"><\/path><\/svg><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-1083\" class=\"elementor-element elementor-element-6da6c7b e-con-full e-flex e-con e-child\" data-id=\"6da6c7b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e5aa8ef elementor-widget elementor-widget-text-editor\" data-id=\"e5aa8ef\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>This tool is built by the team behind picdrop, an image sharing and feedback tool for professional photographers. You should check it out.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-1084\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"5\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-1084\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> What is picdrop? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-up\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"><\/path><\/svg><\/span>\n\t\t\t<span class='e-closed'><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-down\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"><\/path><\/svg><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-1084\" class=\"elementor-element elementor-element-b96d6c0 e-con-full e-flex e-con e-child\" data-id=\"b96d6c0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8147ed0 elementor-widget elementor-widget-text-editor\" data-id=\"8147ed0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>picdrop is the easiest way to share your photo and video shoots with clients. Create galleries in seconds and clients can comment, mark favorites or download, no login needed.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-1085\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"6\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-1085\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> What if I charge below this rate? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-up\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"><\/path><\/svg><\/span>\n\t\t\t<span class='e-closed'><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-down\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"><\/path><\/svg><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-1085\" class=\"elementor-element elementor-element-f9a4e63 e-con-full e-flex e-con e-child\" data-id=\"f9a4e63\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-619d589 elementor-widget elementor-widget-text-editor\" data-id=\"619d589\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Going low to win jobs rarely pays off long term. It undercuts you and the wider market. We don&#8217;t know a single photographer who built a sustainable business by being the cheapest.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p> This calculator helps you find your minimum day rate as a photographer or creative \u2013 the amount you need to cover your yearly costs and actually make a profit.<\/p>\n","protected":false},"author":18,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-2353","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>The Ultimate Photography Day Rate Calculator | picdrop<\/title>\n<meta name=\"description\" content=\"An interactive Day Rate Calculator for photographers.\" \/>\n<meta name=\"robots\" content=\"noindex, follow\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Ultimate Photography Day Rate Calculator | picdrop\" \/>\n<meta property=\"og:description\" content=\"An interactive Day Rate Calculator for photographers.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.picdrop.com\/web\/photography-day-rate-calculator\" \/>\n<meta property=\"og:site_name\" content=\"picdrop\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/wearepicdrop\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-24T09:15:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.picdrop.com\/web\/wp-content\/uploads\/picdrop-preview.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"900\" \/>\n\t<meta property=\"og:image:height\" content=\"473\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/><meta property=\"og:image\" content=\"https:\/\/www.picdrop.com\/web\/wp-content\/uploads\/iStock-2279643522.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.picdrop.com\\\/web\\\/photography-day-rate-calculator\",\"url\":\"https:\\\/\\\/www.picdrop.com\\\/web\\\/photography-day-rate-calculator\",\"name\":\"The Ultimate Photography Day Rate Calculator | picdrop\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.picdrop.com\\\/web\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.picdrop.com\\\/web\\\/photography-day-rate-calculator#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.picdrop.com\\\/web\\\/photography-day-rate-calculator#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.picdrop.com\\\/web\\\/wp-content\\\/uploads\\\/iStock-2279643522-960x720.jpg\",\"datePublished\":\"2025-04-11T08:32:42+00:00\",\"dateModified\":\"2026-08-24T09:15:20+00:00\",\"description\":\"An interactive Day Rate Calculator for photographers.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.picdrop.com\\\/web\\\/photography-day-rate-calculator#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.picdrop.com\\\/web\\\/photography-day-rate-calculator\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.picdrop.com\\\/web\\\/photography-day-rate-calculator#primaryimage\",\"url\":\"https:\\\/\\\/www.picdrop.com\\\/web\\\/wp-content\\\/uploads\\\/iStock-2279643522.jpg\",\"contentUrl\":\"https:\\\/\\\/www.picdrop.com\\\/web\\\/wp-content\\\/uploads\\\/iStock-2279643522.jpg\",\"width\":2000,\"height\":1500,\"caption\":\"Reflex Cameras with Calculator - Colored Background - 3D Rendering\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.picdrop.com\\\/web\\\/photography-day-rate-calculator#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"picdrop\",\"item\":\"https:\\\/\\\/www.picdrop.com\\\/web\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Photography Day Rate Calculator\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.picdrop.com\\\/web\\\/#website\",\"url\":\"https:\\\/\\\/www.picdrop.com\\\/web\\\/\",\"name\":\"picdrop\",\"description\":\"Best Photo Sharing Platform for Photographers\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.picdrop.com\\\/web\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.picdrop.com\\\/web\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.picdrop.com\\\/web\\\/#organization\",\"name\":\"picdrop\",\"url\":\"https:\\\/\\\/www.picdrop.com\\\/web\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.picdrop.com\\\/web\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"picdrop\"},\"image\":{\"@id\":\"https:\\\/\\\/www.picdrop.com\\\/web\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/wearepicdrop\\\/\",\"https:\\\/\\\/www.instagram.com\\\/wearepicdrop\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/picdrop\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Ultimate Photography Day Rate Calculator | picdrop","description":"An interactive Day Rate Calculator for photographers.","robots":{"index":"noindex","follow":"follow"},"og_locale":"en_US","og_type":"article","og_title":"The Ultimate Photography Day Rate Calculator | picdrop","og_description":"An interactive Day Rate Calculator for photographers.","og_url":"https:\/\/www.picdrop.com\/web\/photography-day-rate-calculator","og_site_name":"picdrop","article_publisher":"https:\/\/www.facebook.com\/wearepicdrop\/","article_modified_time":"2026-08-24T09:15:20+00:00","og_image":[{"width":900,"height":473,"url":"https:\/\/www.picdrop.com\/web\/wp-content\/uploads\/picdrop-preview.jpg","type":"image\/jpeg"},{"width":2000,"height":1500,"url":"https:\/\/www.picdrop.com\/web\/wp-content\/uploads\/iStock-2279643522.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.picdrop.com\/web\/photography-day-rate-calculator","url":"https:\/\/www.picdrop.com\/web\/photography-day-rate-calculator","name":"The Ultimate Photography Day Rate Calculator | picdrop","isPartOf":{"@id":"https:\/\/www.picdrop.com\/web\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.picdrop.com\/web\/photography-day-rate-calculator#primaryimage"},"image":{"@id":"https:\/\/www.picdrop.com\/web\/photography-day-rate-calculator#primaryimage"},"thumbnailUrl":"https:\/\/www.picdrop.com\/web\/wp-content\/uploads\/iStock-2279643522-960x720.jpg","datePublished":"2025-04-11T08:32:42+00:00","dateModified":"2026-08-24T09:15:20+00:00","description":"An interactive Day Rate Calculator for photographers.","breadcrumb":{"@id":"https:\/\/www.picdrop.com\/web\/photography-day-rate-calculator#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.picdrop.com\/web\/photography-day-rate-calculator"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.picdrop.com\/web\/photography-day-rate-calculator#primaryimage","url":"https:\/\/www.picdrop.com\/web\/wp-content\/uploads\/iStock-2279643522.jpg","contentUrl":"https:\/\/www.picdrop.com\/web\/wp-content\/uploads\/iStock-2279643522.jpg","width":2000,"height":1500,"caption":"Reflex Cameras with Calculator - Colored Background - 3D Rendering"},{"@type":"BreadcrumbList","@id":"https:\/\/www.picdrop.com\/web\/photography-day-rate-calculator#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"picdrop","item":"https:\/\/www.picdrop.com\/web"},{"@type":"ListItem","position":2,"name":"Photography Day Rate Calculator"}]},{"@type":"WebSite","@id":"https:\/\/www.picdrop.com\/web\/#website","url":"https:\/\/www.picdrop.com\/web\/","name":"picdrop","description":"Best Photo Sharing Platform for Photographers","publisher":{"@id":"https:\/\/www.picdrop.com\/web\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.picdrop.com\/web\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.picdrop.com\/web\/#organization","name":"picdrop","url":"https:\/\/www.picdrop.com\/web\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.picdrop.com\/web\/#\/schema\/logo\/image\/","url":"","contentUrl":"","caption":"picdrop"},"image":{"@id":"https:\/\/www.picdrop.com\/web\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/wearepicdrop\/","https:\/\/www.instagram.com\/wearepicdrop","https:\/\/www.linkedin.com\/company\/picdrop\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.picdrop.com\/web\/wp-json\/wp\/v2\/pages\/2353","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.picdrop.com\/web\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.picdrop.com\/web\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.picdrop.com\/web\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/www.picdrop.com\/web\/wp-json\/wp\/v2\/comments?post=2353"}],"version-history":[{"count":5,"href":"https:\/\/www.picdrop.com\/web\/wp-json\/wp\/v2\/pages\/2353\/revisions"}],"predecessor-version":[{"id":8666,"href":"https:\/\/www.picdrop.com\/web\/wp-json\/wp\/v2\/pages\/2353\/revisions\/8666"}],"wp:attachment":[{"href":"https:\/\/www.picdrop.com\/web\/wp-json\/wp\/v2\/media?parent=2353"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}