Business-Tax-ID-PPH21

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN


0.05    2017-11-09  Released-By: PERLANCAR

	- [ux] Set pph21_op as second positional argument.


0.04    2017-05-24  Released-By: PERLANCAR

	- Add function: calc_net_income_from_pph21_op.

	- [ux] Show bracket rates as percent.

	- [ux] Give more helpful message about unsupported year.


0.03    2017-02-09  Released-By: PERLANCAR

	- Update for tax year 2016.


0.02    2015-12-23  Released-By: PERLANCAR

README  view on Meta::CPAN

           200,
           "OK",
           [
             { max => 60000000, rate => 0.05 },
             { xmin => 60000000, max => 250000000, rate => 0.15 },
             { xmin => 250000000, max => 500000000, rate => 0.25 },
             { xmin => 500000000, max => 5000000000, rate => 0.3 },
             { xmin => 5000000000, rate => 0.35 },
           ],
           {
             "table.field_formats" => [undef, undef, ["percent", { sprintf => "%3.0f%%" }]],
             "table.fields"        => ["xmin", "max", "rate"],
           },
         ]

    PPh21 differentiates rates between individuals ("OP", "orang pribadi")
    and statutory bodies ("badan"). Both are progressive. This routine
    returns the tax rates for individuals.

    Keywords: tax rates, tax brackets.

lib/Business/Tax/ID/PPH21.pm  view on Meta::CPAN

    examples => [
        {args=>{year=>2022}},
    ],
};
sub get_pph21_op_rates {
    my %args = @_;
    my $year = $args{year} or return [400, "Please specify year"];
    my $resmeta = {
        'table.fields' => [qw/xmin max rate/],
        'table.field_formats' => [
            undef, undef, ['percent', {sprintf=>'%3.0f%%'}]
        ],
    };
    if ($year >= 2022 && $year <= $latest_supported_year) {
        state $res = [
            200, "OK",
            [
                {                     max=>   60_000_000, rate=>0.05},
                {xmin=>   60_000_000, max=>  250_000_000, rate=>0.15},
                {xmin=>  250_000_000, max=>  500_000_000, rate=>0.25},
                {xmin=>  500_000_000, max=>5_000_000_000, rate=>0.30},

lib/Business/Tax/ID/PPH21.pm  view on Meta::CPAN

   200,
   "OK",
   [
     { max => 60000000, rate => 0.05 },
     { xmin => 60000000, max => 250000000, rate => 0.15 },
     { xmin => 250000000, max => 500000000, rate => 0.25 },
     { xmin => 500000000, max => 5000000000, rate => 0.3 },
     { xmin => 5000000000, rate => 0.35 },
   ],
   {
     "table.field_formats" => [undef, undef, ["percent", { sprintf => "%3.0f%%" }]],
     "table.fields"        => ["xmin", "max", "rate"],
   },
 ]

=back

PPh21 differentiates rates between individuals ("OP", "orang pribadi") and
statutory bodies ("badan"). Both are progressive. This routine returns the tax
rates for individuals.



( run in 0.569 second using v1.01-cache-2.11-cpan-709fd43a63f )